Ansible:对不同的主机使用不同的 sudo 用户

Ansible:对不同的主机使用不同的 sudo 用户

最近开始使用 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

相关内容