Ansible系列命令
command:
- ansible
ansible-doc
ansible-playbook
ansible-vault
ansible-console
ansible-galaxy
ansible-pull
ansible-doc: 显示模块帮助
- ansible-docs [option] [moudle...]
- -a: 显示所有模块的文档
- -l: --list 列出可用模块
- -s: --snippet 显示指定模块的playbook片段
示例:
- ansible-doc -l 列出所有模块
- ansible-doc ping 查看指定模块的文档
- ansible-doc -s ping 查看指定模块的用法
ansible: ansible通过ssh实现配置管理、应用部署、任务执行等功能
- 用法: ansible <host-pattern> [-m moudle_name] [-a args]
- --version: 显示版本
- -m: moudle 指定模块,默认为command
- -v: 详细过程,-vv -vvv更加详细
- --list-hosts: 显示主机列表,可简写--list
- -k: --ask-pass 提示输入ssh连接密码,默认使用key验证
- -K: --ask-become-pass 提示输入sudo时的口令
- -C: --check 检查但是不执行
- -T: --timeout=n 执行超时时间,默认10s
- -u: --user=remote_user 远程执行用户
- -b: --become 代替旧版本的sudo切换
Ansible的Host匹配
---
Hosts:
- All: 表示所有主机
- *通配符:
- ansible "*" -m shell -a "echo 123"
- ansible "192.168.1.*" -m shell -a "echo 123"
- 逻辑与: 使用:&符号,注意需要使用单、双引号引起来
- ansible "web:&db" -m shell -a "echo 123"
- 或关系: 使用冒号:隔开
- ansible "web:db" -m shell -a "echo 123"
- ansible "192.168.1.2:192.168.1.3" -m shell -a "echo 123"
- 逻辑非: 使用:!符号
- ansible "web:!db" -m shell -a "echo 123"
- 正则表达式:
- ansible "we[ab]" -m shell -a "echo 123"
ansible命令执行过程
过程如下:
- 1、加载自己的配置文件,默认/etc/ansible/ansible.cfg
- 2、加载自己对应的模块文件,如command
- 3、通过ansible将模块或者命令生成对应的临时py文件,并将该文件传输至远程服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-$N/xxx.py
- 4、给文件执行权限
- 5、执行并返回结果
- 6、删除临时py文件,sleep 0 退出
执行状态说明:
- 绿色: 执行成功并且不需要做改变的动作
- 黄色: 执行成功并且变更了主机
- 红色: 执行失败