Ansible基础命令

ansible命令:

ansible all -m ping                       //对主机清单中的所有机器执行ping模块(命令)

ansible all --list                  //查看主机清单中的所有host

ansible my-test --list        //查看主机清单中某个分组(my-test)下的所有host

ansible-doc -l                               //列出所有模块

ansible-doc -l |wc -l                     //统计出总共有多少个模块

ansible-doc ping                         //ping为模块名,表示查看某个模块的内容

ansible "gourpA:&groupB" -m ping         //对同时在两个主机清单分组的机器执行某命令时使用:&来连接,并用单引号或双引号来引用组名

ansible 'gourpA:!groupB' -m ping              //对在组A但不在组B的主机执行某命令,这里必须使用单引号

 ansible all -m ping -u anotheruser                //-u 参数:使用特定用户连接被控机器,默认是root

ansible all -u anotheruser -m command -a 'ls /usr'              // -m 指定了command模块,-a是参数,指定了要在被控机器上执行的命令

[root@localhost ansible]# ansible-doc ping
> PING    (/usr/lib/python2.7/site-packages/ansible/modules/system/ping.py)
返回结果中给出了该模块的路径,可以去查看具体的python代码。

ansible 命令的执行过程:

  • 加载自己的配置文件,默认是/etc/ansible/ansible.cfg
  • 加载自己对应的模块文件,即命令中所用到的模块对应的py文件等。
  • 通过ansible将模块或命令生成相应的py文件,然后将该文件传输至被控机器上。
  • 在被控机器上给该py文件加上可执行权限。
  • 执行该文件并返回结果。
  • 删除该py文件。(该py文件只是临时文件)

为了看命令的具体实现过程,我们可以在执行命令时加上-v/-vv/-vvv来递进式地获取更详细的执行过程。

ansible all -m ping -vvv


在执行信息中可以看到有PUT命令去将生成的py文件放到被控主机上
PUT /root/.ansible/tmp/ansible-local-50690lU4CF/tmp21cRd0 TO /root/.ansible/tmp/ansible-tmp-1628689002.4-269807041363411/AnsiballZ_ping.py



在执行信息中会有chmod u+x关键字表名给py文件加执行权限
SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/59c4b5eeac 192.168.184.129 '/bin/sh -c '"'"'chmod u+x /root/.ansible/tmp/ansible-tmp-1628689002.4-269807041363411/ /root/.ansible/tmp/ansible-tmp-1628689002.4-269807041363411/AnsiballZ_ping.py && sleep 0'"'"''


在执行信息中会有rm -f -r的关键字表名执行完成后会将该py文件删掉,所以说这个py文件是一个临时文件
SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/59c4b5eeac 192.168.184.129 '/bin/sh -c '"'"'rm -f -r /root/.ansible/tmp/ansible-tmp-1628689002.4-269807041363411/ > /dev/null 2>&1 && sleep 0'"'"''

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QYHuiiQ

听说打赏的人工资翻倍~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值