gpt4 book ai didi

python - Ansible - 根据条件将不同的变量传递给 with_items

转载 作者:行者123 更新时间:2023-12-01 04:06:39 25 4
gpt4 key购买 nike

我有以下任务来创建 MySQL 用户,并将 database_staging_users 传递给 with_items。我想在 vpc_environment == "生产" 时传递它 database_product_users

- name: Create MySQL users
mysql_user:
name: "{{ item.username }}"
password: "{{ item.password }}"
priv: "{{ item.privileges }}"
host: "%"
state: present
login_host: "{{ hostvars.localhost.rds_db.instance.endpoint }}"
login_user: "{{ rds_db_username }}"
login_password: "{{ rds_db_password }}"
with_items: database_staging_users

有办法做到这一点吗?我不想重复任务并使用 when:

最佳答案

您使用变量的方式表明您没有遵循最佳实践。 stagingproduct 应该是 Ansible 组,并且用户应该定义为 group_vars。然后,您传递的只是一个用户列表,Ansible 会自动从您正在运行 playbook 的正确组中选择该用户列表。

但是要回答你的问题,你可以这样做:

with_items: "{{ database_production_users if vpc_environment == 'production' else database_staging_users }}"

关于python - Ansible - 根据条件将不同的变量传递给 with_items,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35484129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com