[問題] ansible ssh相關問題

作者: raynoz (Rayoz)   2023-01-03 18:23:08
公司最近請我研究用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 不知道怎麼改
不知道該怎麼解決....
求大大們指教
作者: holishing   2023-01-03 22:06:00
以前我可以用 ansible.cfg 設定 remote_user主要是你要確定那個遠端帳號可以提權(become)
作者: chang0206 (Eric Chang)   2023-01-04 11:05:00
1. 在安裝系統時,就先指定一個帳號可以做sudo你的被控端已經都設定不接受 root ssh 這個不解 後面就沒沒辦法自動,除非你的每一台機器上面都有一個帳號可以變成root , ansible 可以在inventory檔案指定user或者是用-u user_name 來指定或許該考慮那種可以同時在多個tab下指令的terminal ??
作者: raynoz (Rayoz)   2023-01-04 15:27:00
c大 我的每一台機器都有一個帳號可以變成root我也有測試ssh到該帳號 並輸入passwd改密碼是OK的但Ansible改密碼的方式似乎不一樣錯誤訊息會顯示usermod: Permission denied.\nusermod: cannot lock/etc/passwd;
作者: LinBuoRen (林博仁)   2023-01-04 15:58:00
ansible_become_password 有設定嗎?劇本或劇本改密碼的 task 有設定 become: True 嗎?
作者: raynoz (Rayoz)   2023-01-04 16:21:00
後來成功了 ansible-playbook指令加參數-b --become-user root --become-method sudo剛開始學ANSIBLE 要花時間理解理解了..再次感謝各位大大
作者: asdfghjklasd (好累的大一生活)   2023-01-05 00:39:00
YP NIS
作者: mgdesigner (機槍設計師)   2023-01-05 17:23:00
linxu ? 林蘇??
作者: chang0206 (Eric Chang)   2023-01-06 09:55:00
樓上看好細!!

Links booklink

Contact Us: admin [ a t ] ucptt.com