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

最近开始使用ansible。 我们有服务器的应用程序在不同的用户下设置,如服务器xyz.com,Unix用户是xyz_user等。

所以在xyz.com的情况下,

ansible xyz.com -a 'command' -u xyz_user -K 

我们怎样才能将sudo用户设置为合理的configuration,以便自动sudo到为服务器定义的特定用户?

你可以利用这些types的东西的有力的剧本。

例如

 --- - 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 

希望对你有帮助 :)

我build议使用基于库存或组variables的主机variables。 这使您可以为每台主机或每组主机设置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