Remote-Access
Ansible:對不同的主機使用不同的 sudo 使用者
最近開始使用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