ansible成为一组任务的成员

Pra*_*tal 4 ansible ansible-playbook ansible-2.x

目前,对于给定任务,ansible-2.x提供了一个调用选项become_user,允许在运行上下文中的任务之前更改用户.例如:

- name: Run Django database migrations
  django_manage:
    command: migrate
    app_path: "{{ project_path }}"
    settings: "{{ django_settings_file }}"
  become_user: "{{ project_user }}"
Run Code Online (Sandbox Code Playgroud)

become_user这里只适用于任务上下文,也不适用于那些除非在此之后运行的所有后续任务become_user是在这些任务中使用也作了明确规定.在playbook中的给定任务之后,我们如何成为一组任务/后续任务的另一个用户?

注意: 我可以想到一种方法,这是:将这些后续任务重构为新角色,并become_user根据需要将该新角色应用于单个任务.是否有其他替代/更简单的方法来更改活动用户以用于后续任务而不将这些任务放入单独的角色?

udo*_*dan 11

这可以通过Ansible 2中引入的功能来完成:

- block:
    - task 1
    - task 2
    - task N
  become_user: ...
Run Code Online (Sandbox Code Playgroud)