localhost 的 hostvars(Ansible master)只抓住了一些事实
hostvars for localhost (Ansible master) only grabbing a few facts
我的剧本中有这行:
- debug: msg="{{ hostvars['127.0.0.1'] }}"
出于某种原因,它只抓取了少数事实,主要是围绕 master 的设置。
- hosts: mfg-pc:master
become: yes
become_method: sudo
gather_facts: True
tasks:
- debug: msg="{{ hostvars['127.0.0.1'] }}"
收集的事实示例:
{
"msg": {
"ansible_check_mode": false,
"ansible_connection": "local",
"ansible_python_interpreter": "/usr/bin/python",
"ansible_version": {
"full": "2.2.0.0",
"major": 2,
"minor": 2,
"revision": 0,
"string": "2.2.0.0"
},
"group_names": [
"ungrouped"
],
"groups": {
"all": [
不幸的是,它没有获取我得到的完整变量列表:
ansible -m setup 127.0.0.1
我需要完整的事实列表,因为我正在尝试利用主机(Ansible master)时间来为我生成的文件添加时间戳。这种行为似乎与我 运行 使用的另一台机器不一致,我无法确定原因。任何指导将不胜感激。
将参数 gather_subset 检查到您的配置文件 ansible.cfg 中。要 returns 所有事实,它必须设置为 all:
gather_subset = all
如果需要,要本地化您的配置文件 ansible.cfg,请键入:
ansible --version
必须returns这样一行:
config file = /home/.../ansible.cfg
您不会在您的剧本中从 localhost
收集事实,因此您不应该期望 Ansible 拥有它们。
您必须添加一个将针对您的 localhost
(隐含地)执行 setup
的游戏,例如:
---
- hosts: localhost
connection: local
- hosts: mfg-pc:master
become: yes
become_method: sudo
gather_facts: True
tasks:
- debug: msg="{{ hostvars['127.0.0.1'] }}"
我的剧本中有这行:
- debug: msg="{{ hostvars['127.0.0.1'] }}"
出于某种原因,它只抓取了少数事实,主要是围绕 master 的设置。
- hosts: mfg-pc:master
become: yes
become_method: sudo
gather_facts: True
tasks:
- debug: msg="{{ hostvars['127.0.0.1'] }}"
收集的事实示例:
{
"msg": {
"ansible_check_mode": false,
"ansible_connection": "local",
"ansible_python_interpreter": "/usr/bin/python",
"ansible_version": {
"full": "2.2.0.0",
"major": 2,
"minor": 2,
"revision": 0,
"string": "2.2.0.0"
},
"group_names": [
"ungrouped"
],
"groups": {
"all": [
不幸的是,它没有获取我得到的完整变量列表:
ansible -m setup 127.0.0.1
我需要完整的事实列表,因为我正在尝试利用主机(Ansible master)时间来为我生成的文件添加时间戳。这种行为似乎与我 运行 使用的另一台机器不一致,我无法确定原因。任何指导将不胜感激。
将参数 gather_subset 检查到您的配置文件 ansible.cfg 中。要 returns 所有事实,它必须设置为 all:
gather_subset = all
如果需要,要本地化您的配置文件 ansible.cfg,请键入:
ansible --version
必须returns这样一行:
config file = /home/.../ansible.cfg
您不会在您的剧本中从 localhost
收集事实,因此您不应该期望 Ansible 拥有它们。
您必须添加一个将针对您的 localhost
(隐含地)执行 setup
的游戏,例如:
---
- hosts: localhost
connection: local
- hosts: mfg-pc:master
become: yes
become_method: sudo
gather_facts: True
tasks:
- debug: msg="{{ hostvars['127.0.0.1'] }}"