首页 > 解决方案 > 如何避免在ansible中重复项目列表

问题描述

我的剧本中有 2 个主机,我想添加一个包含我的用户项目。

##remote servers
- hosts: test
  remote_user: ansible
  vars:
    users:
    - username: "user1"
      groups: "users,wheel"
    - username: "user2"
      groups: "users,wheel"

  tasks:
  - name: "Create user accounts"
    user:
      name: "{{ item.username }}"
      groups: "{{ item.groups }}"
    with_items: "{{ users }}"

##local ansible server
- hosts: 127.0.0.1
  vars:
    users:
    - username: "user1"
      groups: "users,wheel"
    - username: "user2"
      groups: "users,wheel"

  tasks:
  - name: "Create user accounts"
    user:
      name: "{{ item.username }}"
      groups: "{{ item.groups }}"
    with_items: "{{ users }}"

是否有一些语法可以避免项目列表的重复?

我试图将我的项目放在一个新文件(users.yml)中,我尝试使用此代码/包含:

  -hosts:test
   remote_user: ansible
   include_vars:
      file: users.yml
   tasks:
   -name: "create user accounts"

但我得到一个错误!冲突的操作语句:include_vars,用户

是否有一些语法可以避免项目列表的重复?

标签: ansible

解决方案


这应该是一项任务。

 - hosts:test
   remote_user: ansible
   tasks:
    - name: Include vars
      include_vars:
        file: users.yml
    - name: "create user accounts"
      ...
      ...

推荐阅读