申请条件become/become_user

Condition for applying become/become_user

- name: Create database if database does not exist
  shell: "createdb -h {{ db_host }} -O analytics {{ database }}"
  become: yes
  become_user: analytics
  when:
    database_exists.stdout != "1"

目前我有一个像上面那样的游戏,但我想要的是 become/become_user 属性也是有条件的。我想要这样当 ansible_env.USER = 'analytics' 设置为 no,当它不是 'analytics' 时设置为 yes。有人知道这在 ansible 中是否可行吗?

您可以在 Jinja2 表达式中使用不同的条件 ({{ ... }}):

- name: Create database if database does not exist
  shell: "createdb -h {{ db_host }} -O analytics {{ database }}"
  become: "{{ 'yes' if ansible_env.USER == 'analytics' else 'no' }}"
  become_user: analytics
  when:
    database_exists.stdout != "1"