如何在剧本中混合特权用户和非特权用户?

如何在剧本中混合特权用户和非特权用户?

由于安全原因,我在剧本中为主机使用的用户无法使用sudo,但我仍然需要执行管理任务,例如确保git已安装。 是否可以让 Ansible 在一次运行中以不同的用户连接到同一主机?

答案1

在任务级别指定 remote_user 是自 2013 年起获得支持. 尝试一下(注意:这里的命令只是为了说明其他任务参数的用法):

- name: Playbook with mixed users
  hosts: all
  remote_user: default_user_without_sudo
  become: false

  tasks:
    - name: normal task
      command: /bin/true

    - name: sudo task
      apt:
        name: [git, apache]
        state: present
      remote_user: user_with_sudo
      become: true

一个更好的方法(并且最终更具可读性)是user_with_sudo在整个剧本中使用相同的方法,并且仅become: true在需要时使用。

相关内容