在我的ansible playbooks中反复出现的主题是我经常必须使用sudo privileges(sudo: yes)执行命令,因为我想为某个用户执行此操作.理想情况下,我宁愿使用sudo切换到该用户并正常执行命令.因为那时我不需要做我常用的post命令清理,例如chowning目录.这是我的一本剧本的摘录:
- name: checkout repo
git: repo=https://github.com/some/repo.git version=master dest={{ dst }}
sudo: yes
- name: change perms
file: dest={{ dst }} state=directory mode=0755 owner=some_user
sudo: yes
Run Code Online (Sandbox Code Playgroud)
理想情况下,我可以将命令或命令集作为不同的用户运行,即使它需要sudo给该用户.
是否可以在Ansible中将特定角色应用为sudo?
具体来说,这些是从ansible-galaxy获取的角色,因此源不在我的控制之内.
这个例子表明传递sudo:yes给角色应该有效,但我认为必须首先定义角色以期望参数.
更改日志的此部分建议sudo true可以在角色级别设置,但是,以下操作无效:
---
- remote_user: "vagrant"
tasks: []
hosts: "all"
roles:
- role: "mysql"
sudo: yes
Run Code Online (Sandbox Code Playgroud)
但是,在顶层应用sudo会使角色起作用:
---
- remote_user: "vagrant"
tasks: []
hosts: "all"
sudo: yes
roles:
- role: "mysql"
Run Code Online (Sandbox Code Playgroud)
注-我既试过sudo: true和sudo: yes,其结果是一样的.
ansible ×2