? 在實際生產(chǎn)環(huán)境中,應用程序的用戶為不允許用戶直接登陸,即為登陸用戶user1 ,操作應用程序為user2,需要完成對應用程序的啟動關(guān)閉,需要登陸user1 切換user2 操作應用程序。
創(chuàng)新互聯(lián)是一家專業(yè)提供北林企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、成都網(wǎng)站建設、H5建站、小程序制作等業(yè)務。10年已為北林眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
? 在ansible 實際應用中怎么解決此類問題呢,通過多方查看資料發(fā)現(xiàn)可以ansible_become這個參數(shù)可以完美的解決這個問題。
配置文件修改為一下
[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 # 切換用戶是需要的密碼
注意:
這里還有一個非常重要的問題?。。?br/>博主今天遇到了?。?!
就是同一臺主機,同一個用戶登陸操作不同的應用程序
user1 可以正常登陸 正常操作應用程序
user1 可以正常登陸 切換user2 操作應用程序
這里就出現(xiàn)了沖突矛盾的問題?。。?br/>在ansible 應用組里面 即使指定了組 但是user1 執(zhí)行任何程序的時候還是會自動切換成user2 用戶??!
需要怎么如何解決這個問題呢????
通過查看資料以及好友的幫助有兩條解決問題的方法:
方法一:
在hosts 文件中不使用bcome 參數(shù),在語句中進行附加
ansible-playbook /etc/ansible/pro1.yml -e "ansible_become='yes'ansible_become=true ansible_become_user='user2' ansible_become_pass='passwd'"
方法二:
這里博主是使用了方法二,因為密碼有特殊字符不好處理。
當查看主機的時候發(fā)現(xiàn)主機有多網(wǎng)卡,于是就把pro2的ip地址改成另一個內(nèi)網(wǎng)地址,經(jīng)過測試,兩個項目都能正常使用了?。?!
總結(jié):
經(jīng)過測試,ansible_become=true 這個參數(shù),對同一個主機地址,同一個用戶都會有效果,即使指定不同的分組,優(yōu)先級甚是高!解決問題方法的思路很多種,有時候換一下角度考慮,問題就能迎刃而解。