ユーザーのsudoパスワードが複数のサーバーで同じでない環境があります。動的ルックアップが可能です
- host1.sudopwd
- host2.sudopwd:これは、セキュリティ機能:-D私は、ファイル内(の時点で脇ボールト/セキュリティ)sudoのパスワードを保存したい
として見ることができます私ansible脚本で
- ...
- hostn.sudopwd
、私はそのようなものを使用しています:
---
- hosts: all
tasks:
- include: '{{ inventory_hostname }}'
vars:
ansible_become: true
ansible_become_user: root
ansible_become_pass: "{{ lookup('file','{{ inventory_hostname }}.sudopwd') }}"
ホストごとに1つのファイルがあるとうまく動作します。 これをもっと「ダイナミック」にするにはどうすればよいですか?
私はsearchsudopwd
というスクリプトを持っているとします。これは単純なbashスクリプトです(実際にはどの言語でも可能です)。
#!/usr/bin/env bash
if [[ "$1" == "host1" ]]; then
echo "pwd1"
elif [[ "$1" == "host2" ]]; then
echo "pwd2"
else
echo "default pwd"
fi
どうすればいいですか?プレイブックで何を変更して機能させる必要がありますか?
私は何かのように試してみました:
---
- 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します! –