,ansible,privilege-elevation"/>

首页 > 解决方案 > 可以使用“sudo su -”更改用户"(无密码)与 Ansible?

问题描述

我正在尝试将节点导出器自动放置在某些 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: "
}

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

标签: ansibleprivilege-elevation

解决方案


推荐阅读