ansible 切換用戶問題

ansible 切換用戶問題

​ 在實際生產環境中,應用程序的用戶爲不容許用戶直接登錄,即爲登錄用戶user1 ,操做應用程序爲user2,須要完成對應用程序的啓動關閉,須要登錄user1 切換user2 操做應用程序。shell

​ 在ansible 實際應用中怎麼解決此類問題呢,經過多方查看資料發現能夠ansible_become這個參數能夠完美的解決這個問題。ssh

配置文件修改成一下ide

[pro1]
192.168.0.226   ansible_ssh_user=user1  ansible_ssh_pass='passwd' ansible_become=true ansible_become_user=user2  ansible_become_pass='passwd'
[pro2]
10.111.36.72  ansible_ssh_user=manager  ansible_ssh_pass='O5e2#L9w'

註釋以下:測試

ansible_user # ssh用戶
ansible_ssh_pass # 密碼
ansible_port # ssh端口
ansible_become # true or false,是否切換用戶
ansible_become_method # 切換用戶使用的方法,如sudo、su
ansible_become_user # 要切換的用戶
ansible_become_pass # 切換用戶是須要的密碼

注意:
這裏還有一個很是重要的問題!!!
博主今天遇到了!!!
就是同一臺主機,同一個用戶登錄操做不一樣的應用程序
user1 能夠正常登錄 正常操做應用程序
user1 能夠正常登錄 切換user2 操做應用程序
這裏就出現了衝突矛盾的問題!!!
在ansible 應用組裏面 即便指定了組 可是user1 執行任何程序的時候仍是會自動切換成user2 用戶!!code

須要怎麼如何解決這個問題呢????
經過查看資料以及好友的幫助有兩條解決問題的方法:ip

方法一:it

在hosts 文件中不使用bcome 參數,在語句中進行附加class

ansible-playbook /etc/ansible/pro1.yml -e "ansible_become='yes'ansible_become=true ansible_become_user='user2' ansible_become_pass='passwd'"

方法二:配置

這裏博主是使用了方法二,由於密碼有特殊字符很差處理。程序

當查看主機的時候發現主機有多網卡,因而就把pro2的ip地址改爲另外一個內網地址,通過測試,兩個項目都能正常使用了!!!

總結:

通過測試,ansible_become=true 這個參數,對同一個主機地址,同一個用戶都會有效果,即便指定不一樣的分組,優先級甚是高!解決問題方法的思路不少種,有時候換一下角度考慮,問題就能迎刃而解。

相關文章
相關標籤/搜索