Как запустить playbook на моем сервере приложений, используя sudo? - PullRequest
0 голосов
/ 27 марта 2020

Я пишу Playbook для моего узла Application Tomcat. Он будет копировать, развертывать и останавливать / запускать Tomcat. У меня есть сервер узла прыжка A, сервер другого узла прыжка B и узел tomcat tomcat C. Вручную используя шпаклевку, я использую следующие шаги, чтобы попасть на tomcat

  1. Авторизация на сервере A с использованием userId1

  2. s sh на сервере B с использованием userId2

  3. с sh для tomcat C с использованием userId1

  4. sudo для пользователя tomcat.

Также я могу напрямую подключить sh к кошке C с сервера А, и мой Ansible мастер также является сервером А, откуда я запускаю книги воспроизведения.

Как мне запустить мою книгу игр для этого ? Ниже мой playbook, который я использую на данный момент, но он не работает. ansible-playbook -i my-inventory my-V3.yml --tags=download,copy,deploy -e release_version=5.7 -e target_env=tomcatC -u userId1 --ask-pass. И my-v3.yml выглядит следующим образом -

hosts: '{{ target_env }}' #serial: 1 remote_user: userId1 become: yes become_user: tomcat

Получение этой ошибки СЕЙЧАС -

ФАКТЫ СБОРА ************ ************************************************** * fatal: [tomcatC] => Отсутствует пароль

1 Ответ

0 голосов
/ 27 марта 2020

Вы можете указать пользователю, что команда будет запускаться следующим образом:

- cron:
    name: "Clear Root Mail"
    minute: "0"
    hour: "22"
    job: "sudo rm /var/spool/mail/root"
    user: myuser

Или использовать стать: true, например, так:

- name: Start Server
  shell: "nohup /home/myuser/StartServer.sh &"
  become: true

Вы можете использовать сценарии оболочки для запуска команд вам также нужно запускать ansible звонки из вашей коробки перехода. Ваша проблема выглядит так, как будто вы не применили правильный ключ s sh.

...