每个角色切换用户

Switching user per role

我正在写一个 Ansible 剧本。

它有一系列命令 运行 作为 root,接着是一系列命令 运行 作为另一个用户(称之为 user1)。

我知道我可以通过附加

切换到 user1
become: yes
become_user: user1

在每个 运行 作为 user1 的命令的末尾,但这会使剧本不必要地冗长和丑陋。

我可以切换到 user1 和 运行 所有任务作为 user1 之后吗?

您可以在 2.x 中使用 block 作为特定用户 运行 多项任务:

- block:
    - task1
    - task2
    - task3
  become: yes
  become_user: user1

- task4

您还可以为角色的任务设置become_user

- hosts: localhost
  connection: local

  roles:
    - role: some-role
      become: true
      become_user: user1