Remote-Access

Ansible:對不同的主機使用不同的 sudo 使用者

  • January 5, 2017

最近開始使用ansible。我們有在不同使用者下設置應用程序的伺服器,例如在伺服器 xyz.com 中,unix 使用者是 xyz_user 等等。

所以在 xyz.com 的情況下,

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

我們如何在 ansible config 中設置 sudo 使用者,以便自動 sudo 到為伺服器定義的特定使用者?

你可以利用 ansible playbooks 來處理這些東西。

例如

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

希望對你有幫助 :)

我建議使用基於清單或組變數的主機變數。這允許您為每個主機或每組主機設置 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

引用自:https://serverfault.com/questions/559154