首页 > 其他分享 >2.ansible常用的模块01

2.ansible常用的模块01

时间:2023-05-07 21:56:31浏览次数:38  
标签:shell 01 ansible command ssh 模块 root

1.模块?

  模块实际上就是脚本,是ansible调用的对象,主要是用来通过调用它去远程执行某些命令功能。

2.常用的模块

  2.1 shell模块

     ansible默认的模块是command,其中shell模块与command模块区别:

     1. command模块的命令不启动shell,直接通过ssh执行命令

     2.command不支持bash的特性,如管道和重定向等功能

     3.所有需要调用shell的功能都无法使用command模块

  另外shel模块会启动shell执行命令,不可以使用shell模块执行交互命令,如vim、top等  

[root@db04 ansible]# ansible test -m command -a 'ps|wc -l'        # 报错
db02 | FAILED | rc=2 >>
[Errno 2] No such file or directory
db01 | FAILED | rc=2 >>
[Errno 2] No such file or directory
[root@db04 ansible]# ansible test -m shell  -a 'ps |wc -l'        # shell模块可以
db01 | CHANGED | rc=0 >>
6
db02 | CHANGED | rc=0 >>
6

  当执行shell模块后,退出ssh后所有状态失效。

  • chdir  
[root@db04 ansible]# ansible db01 -m shell -a "chdir=/tmp touch my.txt"

  这里可以通过chdir(该参数用于切换工作目录)执行要到哪个目录下创建文件。

  • creates、removes  支持判断

     creates文件名:文件存在,不执行shell命令

     removes 文件名:文件不存在,不执行shell命令

[root@db04 ansible]# ansible test -m shell -a "ssh-keygen -f ~/.ssh/id_rsa -N '' creates=~/.ssh/id_rsa"
# 如果已经有密钥文件id_rsa,则不创建密钥(skip跳过)
[root@db04 ansible]# ansible test -m shell "unzip xxx.zip removes=/bin/unzip"
# 如果没有安装unzip软件包,则不执行解压命令(skip)

 

 2.2 script模块

     script允许在本地写脚本,拷贝到被管理端并执行脚本,脚本不一定非要是shell脚本(也可以是python、perl脚本),可以没有-x权限

   script模块主要用来执行脚本的

[root@db04 ansible]# ansible test -m script -a "./t.sh"

# 注意脚本执行过程中都必须是非交互式的

小结:

  • command模块、shell模块区别?

     command不开启shell解释器,直接通过ssh执行命令,不支持bash一些特性,如重定向

  • script模块

    可以将提前编写好的脚本发送给远程主机,批量执行一组命令

 

   

标签:shell,01,ansible,command,ssh,模块,root
From: https://www.cnblogs.com/zmc60/p/17380244.html

相关文章

  • 内置模块
    认识模块什么是模块?常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。但其实import加载的模块分为四个通用类别:1使用python编写的代码(.py文件)2已被编译为共享库或DLL的C或C++扩展3包好一组模块的包4使用C......
  • Vulnhub-dpwwn01-WP
    前言点击>>下载靶机靶机kalilinux:ip地址为192.168.20.200靶机探测使用nmap探测靶机nmap192.168.20.0/24靶机ip为192.168.20.131使用nmap进行详细扫描nmap-A-p-192.168.20.131点击查看扫描结果rootin/home/kalivia☕v17.0.6…➜nmap-A-p-192.168.2......
  • poj018(2)
    再贴一版poj1018,其实与之前的那一版差不多,只是去掉了注释,这样可能看起来会舒服一点packagecom.njupt.acm;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.util.Arrays;importjava.util.Scanner;publicclassTestPOJ1018{pu......
  • poj1018(1)
    其实这道题我也没有完全的弄明白,糊里糊涂就ac了 大致题意:某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m1、m2、m3、...、mn个厂家提供生产,而每个厂家生产的同种设备都会存在两个方面的差别:带宽bandwidths和价格prices。现在每种设备都各需要1个,考虑......
  • poj1013
    大致题意:有一打(12枚)硬币,其中有且仅有1枚假币,11枚真币用A~L作为各个硬币的代号假币可能比真币略轻,也可能略重现在利用天枰,根据Input输入的3次称量,找出假币,并输出假币是轻还是重。 解题思路:模拟法要考虑的情况较繁琐,可利用简单的逻辑推理进行解题。  注意Input一行代......
  • MyBatis-02CRUD操作及配置解析01
    上集回顾:第一个程序namespace将上面案例中的UserMapper接口改名为UserDao;将UserMapper.xml中的namespace改为为UserDao的路径.再次测试结论:配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致!1CRUD操作及配置解析1.1selectselect标......
  • Web自动化测试-01
    一、什么是Web自动化测试?让程序代替人工,去验证网页上功能的过程。Web自动化执行的测试用例是手工测试的子集,其优点是测试效率高,缺点是不具备发人的散性思维。二、什么场景适合做Web自动化测试?进行Web自动化测试的前提是,没有频繁的需求变更,且程序版本稳定。在冒烟测试和回归测试......
  • sprint 第一个例子-User类创建-01
     packagecom.sz.model;publicclassUser{privateStringname;privateintAge;publicvoidsetAge(intage){this.Age=age;}publicintgetAge(){returnAge;}publicvoidsetName(Stringname){thi......
  • NC20545 [HEOI2012]采花
    题目链接题目题目描述萧芸斓是Z国的公主,平时的一大爱好是采花。今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花。花园足够大,容纳了\(n\)朵花,花有\(c\)种颜色(用整数\(1-c\)表示),且花是排成一排的,以便于公主采花。公主每次采花后会统计采到的花的颜色数,颜色数......
  • k01_idea解决超过三十天无法登录问题
    idea过期问题当IDEA过期了无法进入程序的时候我们大可不必卸载重新安装只需要删除指定文件即可!1、寻找目录如:C:\Users\zhangsan(您的主机目录)\AppData\Roaming\JetBrains\IntelliJIdea2020.1\eval2、删除文件删除指定的那个文件即可!对于不同的idea版本号会不同!根据实际情况删......