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