ansible 是否收集有关本地主机操作系统(而非远程操作系统)的事实

ansible 是否收集有关本地主机操作系统(而非远程操作系统)的事实

我正在编写角色,其中包括一些要使用dedicate_to: localhost语句在本地机器上执行的任务。

在收集事实时,ansible 会注册一些有关远程主机的变量(例如ansible_os_familyansible_system

我如何检测本地(而非远程)操作系统/操作系统系列?可以通过收集事实来实现吗?或者还有其他合适的方法吗?

答案1

Ansible 可以收集您告诉它的任何主机的事实,无论它是远程服务器还是您执行 ansible/ansible-playbook 的本地主机。

例子

样品清单:

$ cat local_inv
[local]
localhost   ansible_connection=local

示例剧本:

$ cat os.yml
- name: OS family
  hosts: all

  tasks:
    - name: print OS Family
      debug: var=ansible_os_family

示例运行:

$ ansible-playbook -i local_inv os.yml

PLAY [OS family] *********************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [print OS Family] ***************************************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "ansible_os_family": "Darwin"
}

PLAY RECAP ***************************************************************************************************************************************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0

相关内容