如何在启动 ansible-playbook 时覆盖循环变量

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

我有这个剧本可以通过循环创建多个用户

- name: creation des users
  become: yes
  become_method: sudo
  become_user: root
  user:
    name: "{{ item.username }}"
    shell: /bin/bash
    groups: admin
    append: yes
    state: present
    password: "{{ 'some_password' | password_hash('sha512') }}"
    update_password: on_create
  with_items: "{{ users }}"
  register: createaccount

和我 vars/main.yml

# vars file for linux_users_saas_create
users:
  - username: user1
  - username: user2
  - username: user3
  - username: user4

现在我希望能够覆盖此循环变量以创建一个不在列表中的其他用户,因为它是临时用户

像这样:ansible-playbook -i inventory -e“username=user5”

你能帮我吗

loops variables ansible blackberry-playbook
1个回答
0
投票

如果只是暂时的,请勿覆盖它。
只需设置默认的空

temp_user
,然后覆盖即可。

name: "{{ item.username + temp_user | default('') }}"

然后在cli上,您可以添加它们:

ansible-playbook -i inventory -e "temp_user=user5"

-- 编辑 --

顺便说一句,将列表定义为更清晰:

users:
  - user1
  - user2

请注意,每个创建的用户的每个密码都是相同的,我想说,这并不真正安全。

© www.soinside.com 2019 - 2024. All rights reserved.