在Ansible中,有些类似于Shell,我们既可以在命令行键入命令,也可以把一组脚本保存到一个文件中一起运行。在Ansible中,放在一起的“脚本”叫做Playbook,而单个运行的命令叫做Ansible Ad-Hoc。
ansible-doc
列举出所有核心模块和附加模块:
bash
ansible-doc -l
查看某个具体模块的帮助,比如:
bash
ansible-doc amazon.aws.aws_s3
注意:帮助文档中:
- = 代表是强制选项,必须提供
- 代表是可选选项
command
通过这个模块,可以远程运行一个命令,并返回运行结果。
其实command就是ansible的默认模块,如果不指明模块名,使用的就是这个模块。当然,也可以显式指明:
bash
ansible all -m command -a "uptime"
xxx.xxx.xxx.xxx | CHANGED | rc=0 >>
08:12:05 up 4 days, 13:30, 1 user, load average: 0.01, 0.01, 0.00
不指明的时候仍然是调用command模块:
bash
> ansible all -a "date"
xxx.xxx.xxx.xxx | CHANGED | rc=0 >>
Wed Oct 5 08:18:07 UTC 2022
list
基本用法:
ansible PATTERN [-i inventory] -m module -a argument
这里的PATTERN:
- 可以是组名,比如all,dev
- 也可以是具体的在inventory中定义的主机IP。
- 同时还支持通配符*.
- 两个组的交集:web_servers:&cach_servers
列出一台inventory中定义的主机
bash
ansible 192.168.0.1 --list
如果要指定某个inventory文件的话:
bash
ansible 192.168.0.1 -i /home/lcoding/ansible/inventory --list
列出多台inventory中定义的主机
bash
ansible 192.168.0.1,192.168.0.2 --list
列出所有inventory中定义的主机
bash
ansible all --list
列出dev组中的所有主机
bash
ansible dev --list
ping
bash
ansible node1,node2,node3 -m ping