ansible 普通用戶執行root權限操作

ansible -h可以看到有

--become (-b)

--become-method  

--become-user

--ask-become-pass (-K)大寫K

四個參數,利用這四個參數可以在ansible命令和playbook中用普通用戶執行root操作。

 

命令: ansible 10.12.3.27,10.31.2.38 -m shell -a 'date' -b --become-method su --become-user root --ask-become-pass(-K)大寫K

輸入密碼後,相當於用root執行了date命令,可以把date換成 cat /etc/shadow驗證root權限。 多個ip(主機列表)的主機需要相同的root密碼(只用輸入一次),密碼不同可以分多次或者直接配好密碼。

如果想配好密碼,可以在/etc/ansible/hosts爲每個機器添加密碼或者爲組添加密碼。例如:

[groupa]

10.10.10.1 ansible_become_pass=rootpwd1

10.10.10.2 ansible_become_pass=rootpwd2

[groupb]

10.10.10.3

10.10.10.4

[groupb:vars]

ansible_become_pass=rootpwd34

 

如果失敗可能是ssh過去後,執行su -後沒有提示輸入密碼,應該是編碼問題,在受控機器上執行echo export en_CN.utf-8 >>~/.bashrc,然後再執行ansible命令試試。

 

 

playbook:

---
- hosts: 10.12.3.28,10.12.3.27
  become: yes
  become_user: root
  become_method: su
  tasks:
  - name: date
    shell: date

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章