Ansible 具有旋转 sudo 密码

问题描述 投票:0回答:1

我有一个系统,它有一个基于旋转令牌的 sudo 密码,该密码每 30 秒左右更改一次。 我正在使用 Ansible 进行权限升级。 我知道我可以传递

--ask-su-pass
选项 - 但我遇到的问题是在询问密码时是一回事 - 但当 Ansible 实际尝试 sudo 时它会发生变化。

有没有办法在

sudo
-ing时得到提示?

Ansible 脚本

---
- name: Install & Setup Docker
  hosts: ece
  become: true

  tasks:
    - name: Install Required Packages
      yum:
        name:
          - "yum-utils"
          - "device-mapper-persistent-data"
          - "lvm2"
        state: latest
      register: yum_result

    - debug:
        var: yum_result
        verbosity: 2

当我跑步时会发生什么:

玩【安装和设置 Docker】


任务[收集事实] ****************************************************** ****************************************************** ****************************************************** *** 致命:[xxxx]:失败! => {“已更改”:错误,“module_stderr”: “与 xxxx 的共享连接已关闭。 ”,“模块标准输出”: “sudo:需要密码 ", "msg": "模块故障 看 stdout/stderr 获取确切的错误", "rc": 1} 要重试,请使用:--limit

很明显我需要

sudo
的密码。 问题是 sudo 密码是一个轮换密码,所以每 30 秒左右就会改变一次

我可以使用

--ask-su-pass
标志来输入 sudo 密码 - 但当我第一次使用它时,我得到:

致命:[xxxx]:失败! => {"msg": "sudo 密码不正确"}

因为自从我输入密码以来密码已更改。 试图弄清楚我是否可以在尝试在远程系统上输入

sudo
密码时收到提示

ansible
1个回答
0
投票

稍微基于 在变量中使用 Ansible

--ask-become-pass
为什么 Ansible 会忽略 ansible_become_password
变量?
pause
模块 – 暂停 playbook 执行
,一个最小的示例 playbook

--- - hosts: test gather_facts: false become: false tasks: - name: --ask-become-pass pause: prompt: "Password:" echo: false register: password - shell: cmd: id register: result become: true vars: ansible_become_password: "{{ password.user_input }}" - debug: var: result.stdout
实现您正在寻找的功能,从而产生

的测试输出

ansible-playbook --ask-pass become.yml SSH password: PLAY [test] ***************************************************** [--ask-become-pass] Password: (output is hidden): TASK [--ask-become-pass] **************************************** ok: [test.example.com] TASK [shell] **************************************************** changed: [test.example.com] TASK [debug] **************************************************** ok: [test.example.com] => result.stdout: uid=0(root) gid=0(root) groups=0(root) <omitted>
    
© www.soinside.com 2019 - 2024. All rights reserved.