我的剧本中有这一行:
- debug: msg="{{ hostvars['127.0.0.1'] }}"
由于某种原因,它只抓取了一些事实,主要是关于主人的设置。
- 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)时间来为我生成的文件添加时间戳。这种行为似乎与我运行它的另一台机器不一致,我不能为我的生活确定原因。任何指导都将不胜感激。
答案 0 :(得分:1)
你不会在你的剧本中收集来自localhost
的事实,所以你不应该指望Ansible拥有它们。
您必须添加一个对setup
执行localhost
(隐式)的游戏,例如:
---
- hosts: localhost
connection: local
- hosts: mfg-pc:master
become: yes
become_method: sudo
gather_facts: True
tasks:
- debug: msg="{{ hostvars['127.0.0.1'] }}"
答案 1 :(得分:0)
将参数 gather_subset 检入配置文件 ansible.cfg 。要返回所有事实,必须将其设置为 all :
Action
如果需要,要本地化配置文件 ansible.cfg ,请输入:
gather_subset = all
必须返回如下所示的行:
ansible --version