Ansible包自带了很多有用工具,分别有着不同的功能
- /usr/bin/ansible 主程序,临时命令执行工具
- /usr/bin/ansible-doc 查看配置文档,模块功能查看工具,相当于man
- /usr/bin/ansible-playbook 定制自动化任务,编排剧本工具,相当于脚本
- /usr/bin/ansible-pull 远程执行命令的工具
- /usr/bin/ansible-vault 文件加密工具
- /usr/bin/ansible-console 基于Console界面与用户交互的执行工具
- /usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台
ansible-doc
此工具用来显示模块帮助,相当于man
ansible-doc [options] [module...]
-l, --list #列出可用模块
-s, --snippet #显示指定模块的playbook片段
用法
ansible-doc -l #列出所有模块
ansible-doc ping #查看指定模块的帮助
ansible-doc -t connection -l #查看指定的插件
ansible
Ansible Ad-Hoc 的执行方式的主要工具就是 ansible
ansible <host-pattern> [-m module_name] [-a args]
选项
--version #显示版本
-m module #指定模块,默认为command
-v #详细过程 -vv -vvv更详细
--list-hosts #显示主机列表,可简写 --list
-C, --check #检查,但不执行
-T, --timeout=TIMEOUT #执行命令的超时时间,默认10s
-k, --ask-pass #提示输入ssh连接密码,默认Key验证
-u, --user=REMOTE_USER #执行远程执行的用户,默认root
-b, --become #代替旧版的sudo切换
--become-user=USERNAME #指定sudo的runas用户,默认为root
-K, --ask-become-pass #提示输入sudo时的口令
-f FORKS, --forks FORKS #指定并发同时执行ansible任务的主机数
Host-pattern
用于匹配被控制的主机的列表
all
所有的Inventory中的所有主机
ansible all -m ping
通配符*
ansible "*" -m ping
ansible 192.168.1.* -m ping
或关系
ansible "webservers:appservers" -m ping
ansible "192.168.1.10:192.168.1.20" -m ping
逻辑与
ansible "webservers:&dbservers" -m ping
逻辑非
ansible 'webservers:!dbservers' -m ping
正则表达式(~开头)
ansible "~(web|db).*\.frogvps\.com" -m ping
ansible命令的执行过程
- 加载自己的配置文件,默认/etc/ansible/ansible.cfg
- 加载自己对应的模块文件,如:command
- 通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服务器的对应执行用户
$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件 - 给文件加执行权限(+x)
- 执行并返回结果
- 删除临时py文件,退出
ansible 的执行状态
- 绿色:执行成功并且不需要做改变的操作
- 黄色:执行成功并且对目标主机做变更
- 红色:执行失败
ansible-console
此工具可交互执行命令
提示符
执行用户@当前操作的主机组 (当前组的主机数量)[f:并发数]$
子命令
forks n #设置并发数
cd group #切换到group组
list #列出当前组的所有主机
?|help #查看帮助
ansible-playbook
此工具用于执行编写好的 playbook 任务
ansible-playbook xxx.yml
ansible-vault
此工具可以用于加密解密yml文件
ansible-vault [create|decrypt|edit|encrypt|rekey|view]
范例
ansible-vault encrypt xxx.yml #加密
ansible-vault decrypt xxx.yml #解密
ansible-vault view xxx.yml #查看
ansible-vault edit xxx.yml #编辑加密文件
ansible-vault rekey xxx.yml #修改口令
ansible-vault create xxx.yml #创建新文件
ansible-galaxy
Galaxy 是一个免费网站,类似于github网站, 网站上发布了很多的共享的roles角色