Ansible AD-Hoc
Ansible 的 AD-Hoc 命令是一种可以快速输入的命令。AD-Hoc 命令可以用来做一些快速的事情,而不必编写完整的 playbook。
在学习 playbook 之前,这是一个很好的开始了解 Ansible 的基本功能的地方。
AD-Hoc 和 playbook 都使用相同的模块,都是 ansible 提供的。目前 已经有超过 1000+ 模块可以使用。
常用基本参数
-o 将输出合并为 1 行。
-m 指定模块
-a 模块参数
shell 命令
可以使用 ansible 命令在其他节点上执行 shell 命令,并且可以并行执行。
首先最好配置信任连接,可以免密码登陆其他节点,如果不想要这样的话,可以使用 --ask-pass
(-k
) 参数来输入密码。
现在把一个组里的所有机器都执行一个命令,这下边的这个例子里,使用 -f
参数指定并行数量,把 web 组里的所有机器重启。
ansible 默认使用当前用户,如果你不希望使用当前用户,那么你可以通过命令行指定不同的用户来执行,比如
你不仅希望使用其他用户,还想要使用这个用户提权来执行
或者变成其他用户来执行
或者试用 shell 模块
文件传输
ansible 命令行下可以并行的拷贝大量的文件到多个节点上。
拷贝过程主要使用 copy 模块。文件的变化是通过 MD5 值来判断的。
使用 file 模块 可以改变属组和权限,
或者创建目录
或者删除文件
包管理
对于操作系统场景的包管理都支持,以 yum 为例
比如安装一个包,但是不升级
比如安装一个指定版本的包
安装最新版本
用户和组
user 模块可以方便地创建和操作现有的用户帐户,以及删除可能存在的用户帐户:
管理服务
可以使用服务管理模块来管理服务
比如启动服务
比如重启服务
比如停止服务
收集 Facts
Facts 组件是 Ansible 用于采集被管理机器设备信息的功能。整个 facts 信息被包装在一个 json 格式的数据结构中。
Facts 表示关于系统的已发现变量。这些可以用来实现任务的条件执行,也可以用来获取关于系统的特殊信息。可以通过 setup 模块获取
输出如下:
而且 facts 还支持查看指定信息。比如只查看设备的 IPv4 地址。
版权声明: 本文为 InfoQ 作者【耳东】的原创文章。
原文链接:【http://xie.infoq.cn/article/30e8e2e1099b554e15e70002d】。文章转载请联系作者。
评论