Ansible Ad-Hoc命令

执行命令

ansible命令都是并发执行,我们可以针对目标主机执行任何命令。默认的并发数目由ansible.cfg中的forks值来控制。当然,也可以在运行ansible命令的时候通过-f指定并发数。如果遇到执行任务时间很长的情况,也可以使用ansible的异步执行功能。

这里写图片描述

注:在1.X的版本中使用异步执行功能,-P 0的情况下会直接返回job_id的。但在2.x版本中ansible使用-P 0无法直接显示出这个job_id,但是在对端远程的节点上.ansible_async中是存在jod_id的,也可以通过async_status模块查看异步任务的状态和结果:

这里写图片描述

注:-a 为导入module参数, -B为每间隔多少秒异步运行 -P轮询访问结果 -f 指定每次异步执行节点数,-o 输出为一行

在被执行的节点上会在执行用户的目录下有一个ansible_async的隐藏文件夹,如果远程执行ansible的用户身份是root,那么其路径为:/root/.ansible_async
在其中可以看到很多id,这些就是你每执行ansible指令的时候会在远端节点留下的信息。
这里写图片描述

在执行如下命令也可以查看以某个特定的job_id内所执行的信息:

#ansible hostname -m async_status -a 'jid=job_id'

这里写图片描述

简单Ansible示例

通过Ad-Hoc命令我们可以做一些简单的批量操作,当然这个不是Ansible的精髓,只是我们要学的基础。下面举出几个例子来直观查看我们如何使用Ad-Hoc命令。

复制文件

ansible ansible -m copy -a 'src=/root/ansible_inventory/web dest=/root/web owner=root group=root mode=644 backup=yes' -o

这里写图片描述

在远程被执行的节点上查看结果
这里写图片描述

再来验证文件下发功能:

#ansible ansible -m shell -a 'md5sum /root/web' -f 5 -o

这里写图片描述

包和服务管理

ansible web -m yum -a 'name=httpd state=latest' -f 5 -o

这里写图片描述

验证是否安装完成:

#ansible web -m shell -a 'systemctl start httpd' -f 5

这里写图片描述

验证服务是否开启
这里写图片描述

用户管理

首先通过openssl命令来生成一个密码,因为ansible user的password参数需要接受加密后的值,如下所示:

# echo ansible | openssl passwd -1 -stdin

因为ansible user的password参数需要接受加密后的值,所以我们先需要用openssl来进行加密。
# echo ansible | openssl passwd -1 -stdin
$1$LIWIAhG5$BqDqObL0aBZJUNAB381.x0

# ansible ansible -m user -a 'name=ansible password="$1$LIWIAhG5$BqDqObL0aBZJUNAB381.x0"' -f 5 -o

这里写图片描述

关于更多的Ad-Hoc模块或者模块用法,可以通过ansible-doc -l和 ansible-doc模块名进行查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值