任务跳过“条件结果为假”

时间:2019-04-17 10:18:47

标签: ansible

我将设置一个新的角色来创建新的IPA用户和组。 用户创建工作正常,但我在组中挣扎。

这是我的大学和剧本的摘录。 Ansible版本是2.4.2.0

vars

ipagroups:
  ansible_group_test1:
    group: ansible_group_test1
    users:
    - ansible_test1
    - ansible_test2
  ansible_group_test2:
    group: ansible_group_test2
    users:
    - ansible_test1
    - ansible_test2
  ansible_group_test3:
    group: ansible_group_test3
    users:
    - ansible_test1
    - ansible_test2

任务:

- name: adding ipa groups and  users
  ipa_group:
    name: "{{item.value.group}}"
    state: present
    user: "{{item.value.users}}"
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: xxx
  with_dict: "{{ ipagroups }}"
  when: item.key == "ipagroups.keys()"

我希望创建组,但是得到:  “ skip_reason”:“条件结果为假”

注意:如果我尝试例如当:item.key =='ansible_group_test1'正常工作

1 个答案:

答案 0 :(得分:1)

我认为您需要when: item.key in ipagroups.keys()

我将您的变量 verbatim 放在group_vars/all中,并且有一个空的inventory file。这本剧本:


- hosts: localhost
  connection: local

  tasks:
  - name: Show vars
    debug:
      var: item.value.group
    when: item.key in ipagroups.keys()
    with_dict: "{{ ipagroups }}"

给我:

TASK [Show vars] ***************************************
ok: [localhost] => (item=None) => {
    "item.value.group": "ansible_group_test2"
}
ok: [localhost] => (item=None) => {
    "item.value.group": "ansible_group_test3"
}
ok: [localhost] => (item=None) => {
    "item.value.group": "ansible_group_test1"
}