由于安全原因,我在剧本中为主机使用的用户无法使用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
在需要时使用。