我正在尝试自动在一些UAT服务器上放置node-exporter。我们向管理员用户提供的特权升级方法是“ sudo su-”
一个有趣的文档清楚地表明不可能将链接变成方法,但是是否有一种解决方法https://github.com/ansible/ansible/issues/12686暗示可能存在?
我曾经尝试过将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: "
}
从输出看来,它应该可以工作。谢谢您阅读