一、Ansible Ad-Hoc命令集
1 Ad-hoc 使用场景
Ansible提供两种方式去完成任务
,一是 ad-hoc 命令
,一是写 Ansible playbook
,在学习了 playbooks 之后,你才能体会到 Ansible 真正的强大之处在哪里。
- Ad-hoc更注重于解决一些简单或者平时工作中临时遇到的任务,相当于Linux系统命令行下的Shell命令,后者更适合于解决复杂或需固化下来的任务,相当于Linux系统的Shell Scripts。
- 使用场景:
- 关闭所有不必要的服务器
- 临时更新Apache或Nginx的配置文件
2 Ansible的并发特性
Ansible和Ansible-playbook默认会fork 5个线程并发执行命令,如果同时操作的主机数比较多的话,可以调整到一个更大的值。
Ansible为我们提供了便捷的选项,-f指定线程数。默认是5个
ansible webserver -m ping -f 3
**
ansible有许多模块,默认是 command,也就是命令模块,我们可以通过 -m 选项来指定不同的模块。
3 Ansible-doc用法
ansible的模块非常之多,Ansible也提供了类似于man功能的help说明工具ansible-doc。
正式学习Ansible模块使用前,有必要先了解ansible-doc用法:
- 显示所有可用模块
ansible-doc -l
- 显示指定模块的playbook片段
ansible-doc -s
- 获取yum模块帮助
ansible-doc yum
4 ansible命令运行方式及常用参数
格式:
ansible 清单 -m 模块 -a 模块参数
常用参数
--version 显示版本
-m module 指定模块,默认为command模块
-v 详细过程 -vv -vvv更详细过程
--list 显示主机列表,也可以用--list-hosts
-k 提示输入ssh连接密码,默认key认证
-C 预执行检测
-T 执行命令的超时时间,默认10s
-u 指定远程执行的用户
-b 执行sudo切换身份操作
-become-user=USERNAME 指定sudo的用户
-K 提示输入sudo密码
5 ansible的基本颜色代表
绿色 执行成功但为对远程主机做任何改变
黄色 执行成功并对远程主机做改变
红色 执行失败
6 ansible中的常用模块
command模块
功能: 在远程主机执行命令,此模块为默认模块
常用参数
chdir 执行命令前先进入到指定目录
cmd 运行命令指定
creates 如果文件存在将不运行
removes 如果文件存在在将运行
free_form 在远程主机中执行的命令,此参数不需要加
可以用命令 ansible-doc command -s
来查看其参数及含义
示例:
chdir
表示先进入指定目录,再执行命令。
进入 /etc 目录下,查看passwd文件
creates
表示当文件存在时将不执行动作
removes
表示当文件不存在时便不执行动