【问题标题】:Using Ansible loop to create multiple users: Undefined error使用 Ansible 循环创建多个用户:未定义的错误
【发布时间】:2020-01-26 13:07:18
【问题描述】:

我正在使用以下ansible 代码来创建多个 unix 用户帐户

--- - hosts: test become: true tasks: - name: more complex items to add several users user: name: "{{ item.name }}" uid: "{{ item.uid }}" groups: "{{ item.groups }}" state: present with_items: "{{ user_details }}"

我通过使用单独的变量文件来存储用户信息,如下所示

  `cat /etc/ansible/vars.yml
   ---

   user_details:
       - { name: testuser1, uid: 1002, groups: "admin, logs" }
       - { name: testuser2, uid: 1003, groups: logs: }`

要执行上面的剧本,我尝试了以下两个命令

   sudo ansible-playbook /etc/ansible/userloop.yml -e /etc/ansible/vars.yml
   sudo ansible-playbook /etc/ansible/userloop.yml

但两个命令都失败并出现以下错误

 fatal: [host-003]: FAILED! => {"msg": "'user_details' is undefined"}
 fatal: [host-004]: FAILED! => {"msg": "'user_details' is undefined"}

如何解决问题?我想维护一个单独的变量文件来存储用户信息,而不是将它们放在同一个 playbook 文件中。

【问题讨论】:

    标签: ansible rhel user-accounts


    【解决方案1】:

    您也可以参考以下 playbook 中的多个变量文件

    - hosts: all
      become: true
      vars_files:
          - /etc/ansible/vars.yml
      tasks:
          - name: more complex items to add several users
            user:
             name: "{{ item.name }}"
             uid: "{{ item.uid }}"
             groups: "{{ item.groups }}"
             state: present
            with_items: "{{ user_details }}"
    

    【讨论】:

      【解决方案2】:

      变量的类型在模块user的“参数”列中。试试下面的数据结构

          user_details:
            - {name: 'testuser1', uid: 1002, groups: ['admin', 'logs']}
            - {name: 'testuser2', uid: 1003, groups: ['logs']}
      

      【讨论】:

        【解决方案3】:

        您在传递 vars.yml 时缺少 @。因此,ansible 没有读取文件。试试下面的命令。它对我有用。

        sudo ansible-playbook /etc/ansible/userloop.yml -e @/etc/ansible/vars.yml
        

        【讨论】:

          猜你喜欢
          • 2017-07-03
          • 2022-09-29
          • 1970-01-01
          • 2018-10-21
          • 2015-01-02
          • 2018-02-20
          • 2021-12-01
          • 2022-01-01
          相关资源
          最近更新 更多