Мне нужно войти в систему Oracle Linux и запустить команду от имени пользователя root для приложения поставщика.После тестирования SSHing и запуска процесса вручную я теперь использую Ansible для оркестровки.
Я должен войти в систему как другой пользователь «admin», используя сертификат, а затем, в соответствии с инструкциями поставщика, ввести «sudo -s ", чтобы стать пользователем root, прежде чем я смогу запустить скрипт оболочки.Поскольку я использую сертификат, мне не нужно вводить пароль для повышения
Я обнаружил, что «становиться: да» не работает для «sudo -s».
Я пытался использовать ответные модули «raw», «shell» и «command», чтобы обойти проблему, но время ожидания истекло, поскольку они могут ожидать ответа.
Вот вывод
TASK [run bash system status] **************************************************
fatal: [server-sandpit]: FAILED! => {"changed": true, "msg": "non-zero return code", "rc": 3, "stderr": "Shared connection to server-sandpit closed.\r\n", "stderr_lines": ["Shared connection to server-sandpit closed."], "stdout": "This script cannot be run under sudo, try running under 'sudo -s'\r\n", "stdout_lines": ["This script cannot be run under sudo, try running under 'sudo -s'"]}
Вот книга воспроизведения:
---
- hosts: sl-aio-sandpit
tasks:
- name: run bash system status
script: system_status.sh
args:
executable: bash
become: yes
Обратите внимание, что я не могу запустить скрипт, используя только sudo в ssh:
[admin@server-sandpit tmp]$ sudo ./system_status.sh
This script cannot be run under sudo, try running under 'sudo -s'
Я либо получаю ошибку выше, либо, для некоторых обходных путей, таких как использование "shell" или "command", книга воспроизведения никогда не разрешается и должна быть отменена.