我有一個環境,用戶的sudo密碼在多臺服務器上不一樣。這可以被看作是一種安全功能:-D是否可以做動態查詢
我想保存須藤密碼(在時間點保管庫/安全除外)在文件中:
- host1.sudopwd
- host2.sudopwd
- ...
- hostn.sudopwd
,我使用類似的東西:
---
- hosts: all
tasks:
- include: '{{ inventory_hostname }}'
vars:
ansible_become: true
ansible_become_user: root
ansible_become_pass: "{{ lookup('file','{{ inventory_hostname }}.sudopwd') }}"
而且,如果我爲每個主機創建一個文件,它就會運行良好。 現在我怎樣才能讓它更「動態」?
假設我有一個名爲searchsudopwd
的腳本,它是一個簡單的bash腳本(事實上可以是任何語言)。
#!/usr/bin/env bash
if [[ "$1" == "host1" ]]; then
echo "pwd1"
elif [[ "$1" == "host2" ]]; then
echo "pwd2"
else
echo "default pwd"
fi
如何與ansible使用它呢?我的劇本中需要改變什麼才能使其工作?
我已經試過類似:
---
- hosts: all
tasks:
- include: '{{ inventory_hostname }}'
vars:
ansible_become: true
ansible_become_user: root
ansible_become_pass: "{{ item }}"
with_lines: searchsudopwd '{{ inventory_hostname }}'
但它不工作...
如果我的想法是不行的,是有辦法,有一個像一個「默認」的密碼,並只獲得特定主機的密碼?
謝謝你的幫助和時間!
謝謝:-)在我不知道的「host_vars」!我已經測試過它,並且正如我期待的那樣工作! 我沒有檢查答案的其他部分,但與host_vars/group_vars解決方案相比,它看起來「太複雜了」 –
一旦我有足夠的聲望,我會+1你的答案! –