我有一个环境,用户的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你的答案! –