Ansible-doc里面的一些简单模块使用

ansible-doc  -l |grep 模块名                  //模块搜索

ansible-doc  模块名  =============>    /EXAMPLE      //查看帮助

针对于普通用户在命令行执行ansible命令:

       ansible 主机或主机集合   -m    模块  -u  普通用户  -a    '远程命令'    -become=true

eg:

ansible 10.10.31.100 -m apt -a 'name="safe-rm" state=present' -become=true 

在ansible.cfg配置文件的同级目录下执行

1.command模块:    远程执行命令,并返回结果到ansible主机

ansible 主机或主机集合   -m(模块) command -a(命令) '远程命令'

“<” ,“>”, “|”(管道), “;", “&”,“ $” 都只能在shell模块中执行,该模块不支持|管道命令

  • chdir:切换目录

ansible 主机 -m command -a 'chdir=/opt/test ls'                   //切换目录执行命令

  • creates:当文件存在则不执行命令,可用于判断,不会真的创建

ansible 主机 -m command -a 'creates=/opt/test ls'                //目录存在则不执行命令

  • removes:当文件不存在则不执行命令,可用于判断,不会真的删除

ansible 主机 -m command -a 'removes=/opt/test ls'       //目录如果不存在,则不执行命令

 

2.shell模块:同于command模块 ,但shell模块是通过调用远程主机的shell解释器执行命令的,可以执行shell的各种功能命令

eg:

ansible webs -m shell -a 'echo ${HOSTNAME}'                 //取消本地的结果输出,直接在ansible远程主机上执行echo ${HOSTNAME}

ansible webs -m shell -a "echo ${HOSTNAME}"                 //在本机事先执行echo ${HOSTNAME},再输出到远程的ansible被管理主机上

3.yum模块

ansible 主机或主机集合   -m yum -a 'name=软件包名  state=状态'

                                                                                             installed emoved

4.service模块

ansible 主机或主机集合  -m service -a 'name=服务名     enabled=yes o     state=状态’

                                                                                           开机是否自启         state: started    stopped   restarted   reloaded

5.copy模块:同于rsync 中的/                      //只能拷贝文件,或压缩包

/opt/test/    /mnt                   把/opt/test/下的内容拷贝到/mnt下

/opt/test     /mnt                   把/opt下的test拷贝到/mnt下

ansible 主机或主机集合  -m copy -a 'src=本地文件   dest=ansible远程主机文件路径'

  • content:用于替换src,可以直接指定文件的值

ansible 主机集合 -m copy -a 'content="内容信息 "  dest=目标路径  mode=0644'

  

6.fetch模块   从远程拷贝文件到本机              //只能拷贝文件,或压缩包

ansible 主机或主机集合 -m fetch -a "src=远程主机上的文件 dest=本机路径

force=yes                                    强制复制文件。YES:覆盖,NO:远程主机存在不复制

backup=yes"                          备份源文件,备份文件包含时间信息

7.lineinfile模块  : 类似于sed中的s(替换)

ansible 主机或主机集合  -m lineinfile -a 

'path=要修改的文件                  "/etc/my.cnf"

regexp="正则表达式 "                "^binlog_format"

line="替换的新值 "  '                    "binlog_format=row"

8.replace模块  修改匹配的字段

ansible 主机或主机集合 -m replace -a 

'path=修改文件                           "/etc/my.cnf"

regexp=正则表达式                    "row"

replace=替换的新值'                   "mixed"

9.setup模块 (用于获取主机的信息

ansible 主机或主机集合 -m setup

eg:

ansible webs -m setup -a 'filter= 过滤条件’      filter只能是过滤某个字段的信息,

====ansible webs -m setup|grep 过滤条件

ansible 主机集合  -m setup|grep 过滤条件  --tree    /opt/data                         //将setup的过滤信息保存到文件中,文件名为托管主机IP或域名

                                                                                                            ansible主机上自动创建                                                                                                  

10.script模块

帮助我们在远程主机上执行 ansible 管理主机上的脚本,也就是说,脚本一直存在于 ansible 管理主机本地,不需要手动拷贝到远程主机后再执行

ansible 主机或主机集合 -m script -a '脚本绝对路径'

11.file模块

ansible 主机或主机集合 -m file -a 'path=目录或文件路径   state=状态

recurse:是否递归

state:

directory:目录,不存在则创建

file:文件,不存在也不创建

link:创建软链接        dest=指定链接的路径

hard:创建硬链接

touch:文件不存在的时候,创建一个新的文件

absent:删除目录、文件或者是取消链接文件

 

link:创建软连接 ln -s

ansible 主机集合  -m file -a 'path=目标路径/连接文件名   src=源链接的文件   state=link'

ansible  wwe   -m  file  -a  'path=/usr/bin/rm  src=/usr/bin/safe-rm  state=link force=yes' -become=true 

           ==ln -s /usr/bin/safe-rm /usr/bin/rm

force=yes   :强制覆盖

-become=true :成为root用户执行

原文地址:https://www.cnblogs.com/krystal-LA-zx/p/13073099.html