最近开始使用 ansible。我们的服务器中的应用程序以不同的用户设置,例如在服务器 xyz.com 中,unix 用户是 xyz_user,等等。
因此,对于 xyz.com 来说,
ansible xyz.com -a 'command' -u xyz_user -K
我们如何在 ansible 配置中设置 sudo 用户以便自动 sudo 到为服务器定义的特定用户?
答案1
您可以利用 ansible 剧本来处理这些事情。
例如
---
- hosts: host1:host2
user: user1
sudo: yes
tasks:
- name: update package list
action: command /usr/bin/apt-get update
- name: upgrade packages
action: command /usr/bin/apt-get -u -y dist-upgrade
- hosts: host3
user: ubuntu
sudo: yes
tasks:
- name: update package list
action: command /usr/bin/apt-get update
- name: upgrade packages
action: command /usr/bin/apt-get -u -y dist-upgrade
希望对你有帮助 :)
答案2
我建议使用基于清单或组变量的主机变量。这样您就可以为每个主机或每个主机组设置 ssh 用户。这种方法的优点是它对您的剧本来说是透明的。在剧本中,您只需担心安装东西,而不必担心访问。
如何按主机和组设置用户的示例:
[xyz]
www.xyz.com ansible_ssh_user=xyz_user
[abc]
www.abc.com
[abc:vars]
ansible_ssh_user=abc_user
这里有一份文档,比我解释得更好,解释了它是如何工作的:http://docs.ansible.com/intro_inventory.html