作者raynoz (Raynoz)
看板Linux
標題[問題] ansible ssh相關問題
時間Tue Jan 3 18:23:08 2023
公司最近請我研究用ansible批量修改linxu server的密碼
其中有遇到一個問題
當我使用ansible-playbook指令跑yml
會需要SSH到我在/etc/ansible/hosts指定的機器動作
但是會使用root user
都會遇到permission denied的問題 就直接 unreachable
這個問題先前在用ansible部屬K8S的時候有解決
當時是要先到各個被控端
1.輸入passwd root 更改一次密碼
2.編輯 /etc/ssh/sshd_config並新增PermitRootLogin yes
3.重啟sshd systemctl restart sshd
4.ansible端設定無密碼 ssh-keygen (按下4次enter 設定無密碼)
5.ansible端跑 ssh-copy-id root@ip (ip為各個被控端)
就可以ssh root@被控端IP
而K8S node才幾台 去跑上面步驟OK
但我今天是要跑全公司Linux機器 有幾百台...
想問問看有沒有別的方式
其中有想到可能是可以讓ansible用非root去SSH(但不確定會不會遇到SSH可以通 但進去後沒權限的問題)
但是ansible似乎都是用root去ssh 不知道怎麼改
不知道該怎麼解決....
求大大們指教
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.6.134 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1672741390.A.D26.html
推 holishing: 以前我可以用 ansible.cfg 設定 remote_user 01/03 22:06
→ holishing: 主要是你要確定那個遠端帳號可以提權(become) 01/03 22:08
推 chang0206: 1. 在安裝系統時,就先指定一個帳號可以做sudo 01/04 11:05
→ chang0206: 你的被控端已經都設定不接受 root ssh 這個不解 後面就 01/04 11:06
→ chang0206: 沒沒辦法自動,除非你的每一台機器上面都有一個帳號 01/04 11:06
→ chang0206: 可以變成root , ansible 可以在inventory檔案指定user 01/04 11:07
→ chang0206: 或者是用-u user_name 來指定 01/04 11:07
→ chang0206: 或許該考慮那種可以同時在多個tab下指令的terminal ?? 01/04 11:08
→ raynoz: c大 我的每一台機器都有一個帳號可以變成root 01/04 15:27
→ raynoz: 我也有測試ssh到該帳號 並輸入passwd改密碼是OK的 01/04 15:29
→ raynoz: 但Ansible改密碼的方式似乎不一樣 01/04 15:30
→ raynoz: 錯誤訊息會顯示usermod: Permission denied 01/04 15:32
→ raynoz: .\nusermod: cannot lock 01/04 15:32
→ raynoz: /etc/passwd; 01/04 15:33
推 LinBuoRen: ansible_become_password 有設定嗎? 01/04 15:58
→ LinBuoRen: 劇本或劇本改密碼的 task 有設定 become: True 嗎? 01/04 15:58
→ raynoz: 後來成功了 ansible-playbook指令加參數 01/04 16:21
→ raynoz: -b --become-user root --become-method sudo 01/04 16:22
→ raynoz: 剛開始學ANSIBLE 要花時間理解理解了..再次感謝各位大大 01/04 16:22
→ asdfghjklasd: YP NIS 01/05 00:39
→ mgdesigner: linxu ? 林蘇?? 01/05 17:23
→ chang0206: 樓上看好細!! 01/06 09:55