【问题标题】:Usage of async in ansible task raised privileged errors在 ansible 任务中使用 async 会引发特权错误
【发布时间】:2021-08-06 22:50:32
【问题描述】:

我经常对以下问题感到困惑。

我尝试使用 async 功能启动一个进程(这里只是一个愚蠢的 java 版本)。

我使用我的用户运行 ansible-playbook,该用户在 docker 主机中有一个远程帐户作为 sudoer。我想启动命令的另一个帐户是 toto

所以我写了这个

- name: test escalation
  shell: id ; echo "shell says toto"
  become: true
  become_user: "toto"
  tags:
    - escalation
  vars:
    ansible_ssh_pipelining: true

- name: java escalation
  shell:
    cmd: "/data/tools/java/jdk8u232-b09/bin/java -version &"
  async: 10
  # Don't wait
  poll: 0
  become: true
  become_user: "toto"
  tags:
    - escalation
  vars:
    ansible_ssh_pipelining: true

如果我运行这个,我有

TASK [java 升级] ****************************************** ****************************************************** ****************** 致命的:[主要]:失败! => {"msg": "无法设置 Ansible 成为非特权用户时需要创建的临时文件的权限 (rc: 1, err: chown: 更改 '/var/tmp/ansible-tmp-1587484730.23-27264 的所有权-164045960304097/':不允许操作\nchown:更改'/var/tmp/ansible-tmp-1587484730.23-27264-164045960304097/AnsiballZ_command.py'的所有权:不允许操作\nchown:更改'/var/tmp/的所有权ansible-tmp-1587484730.23-27264-164045960304097/async_wrapper.py':不允许操作\n})。有关解决此问题的信息,请参阅https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user"}

有人遇到过同样的问题吗?

ansible --version ansible 2.9.7

【问题讨论】:

  • 我也有同样的问题,只是与异步结合使用。顺便说一句,我在 2.9.4 上,但在 2.9.7 中,正如你所说,它也不起作用。

标签: ansible


【解决方案1】:

如果我不使用异步功能(我可以使用任何值进行轮询)

- name: java escalation
  shell:
    cmd: "/data/tools/java/jdk8u232-b09/bin/java -version &"
  # async: 10
  # Don't wait
  poll: 0
  become: true
  become_user: "toto"
  tags:
    - escalation
  vars:
    ansible_ssh_pipelining: true

效果很好

任务[java升级] ****************************************** ****************************************************** ****************** 已更改:[main] => {“已更改”:true,“cmd”:“/data/tools/java/jdk8u232-b09/bin/java -version &”,“delta”:“0:00:00.034427”, “结束”:“2020-04-21 15:59:46.402081”,“rc”:0,“开始”:“2020-04-21 15:59:46.367654”,“stderr”:“openjdk 版本 \”1.8 .0_232\"\nOpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_232-b09)\nOpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.232-b09, mixed mode)", "stderr_lines": ["openjdk version \" 1.8.0_232\"", "OpenJDK 运行时环境 (AdoptOpenJDK)(build 1.8.0_232-b09)", "OpenJDK 64 位服务器 VM (AdoptOpenJDK)(build 25.232-b09, 混合模式)"], "stdout": "", "stdout_lines": []}

【讨论】:

    猜你喜欢
    • 2022-07-25
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 2021-06-26
    相关资源
    最近更新 更多