ansible setup任务

在Ansible中,
setup
模块是一个非常有用的工具,它用于收集远程主机的信息,这些信息被称为facts。这些facts可以用于后续的任务中,以便更精确地控制你的自动化流程。
如何使用
setup
模块
直接执行
setup
模块
:
你可以直接使用
ansible
命令来运行
setup
模块,这样可以查看特定主机的facts。例如:
ansible all -m ansible.builtin.setup
这将收集所有主机的facts。如果你想要收集特定主机的信息,可以使用:
ansible -m ansible.builtin.setup
在Playbook中使用
setup
模块
:
在Playbook中,你可以将
setup
作为一个任务来使用,这样可以在执行其他任务之前先收集facts。例如:
“`yaml
name: Gather facts
ansible.builtin.setup:
”`
过滤和收集特定的facts
:
你可以使用
filter
参数来指定只收集特定的facts。例如,如果你只对内存相关的facts感兴趣,可以使用:
ansible all -m ansible.builtin.setup -a ‘filter=ansible_*_mb’
委派facts收集
:
你可以将facts收集的任务委派给其他主机。这在你想要从一组数据库服务器收集facts,但这些服务器并不直接在Playbook的主机列表中时非常有用。例如:
“`yaml
hosts: app_servers
tasks:
– name: Gather facts from db servers
ansible.builtin.setup:
delegate_to: “{{ item }}”
delegate_facts: true
loop: “{{ groups[‘dbservers’] }}”
”`
限制收集的facts
:
你可以使用
gather_subset
参数来限制收集的facts。例如,如果你只想收集网络和虚拟相关的facts,可以使用:
ansible all -m ansible.builtin.setup -a ‘gather_subset=network,virtual’
注意事项
setup
模块是自动调用的,每当你运行一个Playbook时,Ansible都会先收集facts。
你可以在
ansible.cfg
配置文件中设置
gather_facts
为
no
来禁用自动收集facts。
使用
delegate_to
和
delegate_facts
时,确保你理解这些选项如何影响你的Playbook的执行。
通过这些方法,你可以有效地利用
setup
模块来收集和管理你的远程主机的信息。这些信息将帮助你在Playbook中做出更明智的决策,从而提高自动化的效率和准确性。