
我正在嘗試使用 sudo 在一組伺服器上從 cron 運行 Ansible 劇本(因此不可能進行互動)。網路上的一些教學和貼文建議以明文形式設定 sudo 密碼,或設定 Ansible-Vault(這也需要在某處以明文形式提供 ansible-valt 密碼文件,所以沒有交易)。有些人建議在 sudoers 檔案上為執行 sudo 命令的使用者設定 NOPASSWD,我也不能這樣做。所有這些解決方案都存在安全問題。
所以我想知道是否有辦法解決它?也許以 Ansible 可以解密和讀取的方式加密明文密碼?
先致謝!
答案1
如果密碼是雜湊形式,Ansible 將接受。我使用 python 創建了一個哈希密碼
python -c 'import crypt; print crypt.crypt("password", "$6$random_salt")'
python3 -c 'import crypt; print(crypt.crypt("password", crypt.mksalt(crypt.METHOD_SHA512)))'
更換密碼使用您的密碼,然後您可以將上述命令的輸出貼到您的 Ansible 任務中。
- name: name
become: true
task:
password: hashed password