我正在尝试将节点导出器自动放置在某些 UAT 服务器上。我们提供给管理员用户的权限提升方法是“sudo su -”
Ansible 文档清楚地表明,链接成为方法是不可能的,但是否有解决方法,https://github.com/ansible/ansible/issues/12686暗示可能存在?
我尝试将 become vars 更改为各种值但没有成功,下面是我基于评论https://github.com/ansible/ansible/issues/12686#issuecomment-190797861的最后一次尝试
我现在已经花了几天的时间,现在我迫切需要任何建议。
主机文件
[uat]
<hostname> ansible_ssh_host=<ip> ansible_become_method=su ansible_become_exe="sudo su -"
游戏中的任务
...
- block:
- name: make directory for node-exporter binary
file:
path: "{{ item }}"
state: directory
with_items:
- "/path/to/node_exporter/"
- "/path/to/node_exporter/{{ node_exporter_file_version }}/"
- name: Copy in node_exporter binaries
copy:
src: "/source/path/to/node-exporter/"
dest: "/path/to/node_exporter/{{ node_exporter_file_version }}/"
mode: 0755
become: yes
become_user: <adminusername>
使用命令运行
ansible-playbook -vvv -i hosts.yml -u myusername playbook.yml --key-file "/path/to/mykey/key.pem"
预期的输出是我能够通过“sudo su -”解决和切换用户
实际输出
'/bin/sh -c '"'"'sudo su - <adminusername> -c '"'"'"'"'"'"'"'"'/bin/sh -c '"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-rxcfkqxtswaomrarlagdciztyugguruj; /usr/bin/python /var/tmp/ansible-tmp-1565704895.88-81237659333192/stat.py'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"' && sleep 0'"'"''
fatal: [<hostname>]: FAILED! => {
"msg": "Timeout (12s) waiting for privilege escalation prompt: "
}
从输出来看,它看起来应该可以工作。感谢您阅读