add_host-添加所有主机

问题描述 投票:-1回答:1

我制作了一部剧本,将主机划分为Windows和Linux组。这是脚本(目前仅是Linux,并打印该组中的项目):

---
 - name: firstPlaybook
   hosts: all
   gather_facts: true

   tasks:
   - name: Linux Group
     add_host:
       name: "{{ item }}"
       group: LinuxGroup
     when: hostvars[item].ansible_system == 'Linux'
     with_items: "{{ ansible_play_hosts }} "
     run_once: yes

   - name: dubug
     debug:
       msg: "{{ item }}"
     with_items: LinuxGroup

并且当我使用-vvv运行脚本时,这就是我在任务本身中看到的内容:

TASK [Linux Group] *************************************************************
task path: /home/opc/playbooks/playbook.yml:7
skipping: [windowsserver] => (item=windowsserver)  => {
    "ansible_loop_var": "item",
    "changed": false,
    "item": "windowsserver",
    "skip_reason": "Conditional result was False"
}
creating host via 'add_host': hostname=linuxserver
changed: [windowsserver] => (item=linuxserver) => {
    "add_host": {
        "groups": [
            "LinuxGroup"
        ],
        "host_name": "linuxserver",
        "host_vars": {
            "group": "LinuxGroup"
        }
    },
    "ansible_loop_var": "item",
    "changed": true,
    "item": "linuxserver"
}
Perform task: TASK: dubug (N)o/(y)es/(c)ontinue: y

Perform task: TASK: dubug (N)o/(y)es/(c)ontinue: *******************************

TASK [dubug] *******************************************************************
task path: /home/opc/playbooks/playbook.yml:15
ok: [windowsserver] => (item=LinuxGroup) => {
    "msg": "LinuxGroup"
}
ok: [linuxserver] => (item=LinuxGroup) => {
    "msg": "LinuxGroup"
}

为什么将linux组中的Windows服务器添加到Windows组中,甚至认为它应该被跳过(我将ips更改为我将不会发布的Windows Server和linuxserver)?

ansible ansible-inventory ansible-facts
1个回答
0
投票

所有程序都按预期工作。看看

- debug:
    msg: "{{ groups.LinuxGroup }}"
© www.soinside.com 2019 - 2024. All rights reserved.