Ansible教程:Inventory


在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

文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !