ansible - 使用 Ansible 循环创建多个用户 : Undefined error

标签 ansible rhel user-accounts

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

--- - 主持人:测试 成为:真实 任务: - 名称:添加多个用户的更复杂的项目 用户: 名称:“{{ item.name }}” uid:“{{ item.uid }}” 组:“{{ item.groups }}” 状态:现在 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"}

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

最佳答案

您还可以在下面的剧本中引用多个变量文件

- 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 }}"

关于ansible - 使用 Ansible 循环创建多个用户 : Undefined error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58113653/

相关文章:

regex - 使用ansible和regex_replace过滤器提取字符串的最后一个字符

rest - Ansible 从 REST 获取响应 header

java - 抑制 "Picked up _JAVA_OPTIONS"消息

python - 如何在 Ansible 中使用 lxc_container 模块?

database - Piwik - 使用 Oracle DB 而不是 mysql 进行设置

linux - rhel 4中有存在/sbin/lilo吗?

python - 多个租户的帐户管理

mysql - 在 mysql 或更好的 algothrim 中将每笔交易的借方与贷方相匹配?

ruby-on-rails - 如何始终为 Rails 中的帐户范围设置值?

Docker 服务未在 Ansible 中启动