Использование задачи asyn c в ansible вызвало привилегированные ошибки - PullRequest
1 голос
/ 21 апреля 2020

Меня очень озадачивает следующая проблема.

Я пытаюсь запустить процесс (здесь просто глупая версия java), используя asyn c. .

Я запускаю ansible -playbook, используя моего пользователя, который имеет удаленную учетную запись sudoer на хосте docker. Другая учетная запись, с которой я хотел бы запустить команду: 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

Если я запусту это, у меня будет

ЗАДАЧА [java эскалация] ************************************* ************************************************** ********************* фатально: [main]: FAILED! => {"msg": "Не удалось установить разрешения для временных файлов Ansible необходимо создать, когда он становится непривилегированным пользователем (r c: 1, err: chown: смена владельца '/ var / tmp / * 1035) * -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

1 Ответ

1 голос
/ 21 апреля 2020

Если я не использую функцию asyn c (я могу использовать любое значение для опроса)

- 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 "," end ":" 2020-04-21 15: 59: 46.402081 "," r c ": 0," start ":" 2020-04-21 15:59 : 46.367654 "," stderr ":" openjdk version \ "1.8.0_232 \" \ nOpenJDK Runtime Environment (AdoptOpenJDK) (сборка 1.8.0_232-b09) \ nOpenJDK 64-разрядная серверная виртуальная машина (AdoptOpenJDK) (сборка 25.232-b09, смешанная версия mode) "," stderr_lines ": [" openjdk version \ "1.8.0_232 \" "," Среда выполнения OpenJDK (AdoptOpenJDK) (сборка 1.8.0_232-b09) "," 64-разрядная виртуальная машина OpenJDK (AdoptOpenJDK) (сборка) 25.232-b09, смешанный режим) "]," stdout ":" "," stdout_lines ": []}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...