可以通过Ansible使用“ sudo su-<adminusername>”(无密码)更改用户吗?

时间:2019-08-13 14:09:20

标签: ansible privilege-elevation

我正在尝试自动在一些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: "
}

从输出看来,它应该可以工作。谢谢您阅读

0 个答案:

没有答案