Как я могу выполнить команду nohup в задании ANSIBLE PlayBook? - PullRequest
0 голосов
/ 16 ноября 2018

Я в значительной степени начинающий с ansible.Я пытаюсь перенести сценарии Linux для запуска удаленного сервера с помощью команды nohup, и она не работает должным образом.Изменение состояния ANSIBLE результатов: true, но когда я проверяю, запущен ли процесс, это не так.Таким образом, я должен перезапустить его вручную.

Спасибо за вашу помощь.


Вот что я делаю:

- name: "Performing remote startup on server {{ SERVER }}"
  command: nohup {{ JAVA_HOME }}/bin/java {{ DYNATRACE_AGENT_REUS }} -jar -Dengine={{ ENGINE_NAME }} name-{{ ENGINE_JAR_VERSION }}.jar --server.port={{ ENGINE_PORT }} >{{ CONSOLE_LOG }} 2>&1 &
  args:
    chdir: "{{ SOMEVAR_HOME }}"
    async: 75
    poll: 0
    register: out
  - debug: 
      msg: '{{ out }}'

Результаты:

TASK [Performing remote startup on server] ***********************************************************************************************************************************************************************************
changed: [servername]

TASK [debug] ********************************************************************************************************************************************************************************************************************************
ok: [servername] => {
    "msg": {
        "ansible_job_id": "160551828781.28405",
        "changed": true,
        "failed": false,
        "finished": 0,
        "results_file": "/home/admindirectory/.ansible_async/160551828781.28405",
        "started": 1
    }
}

1 Ответ

0 голосов
/ 17 ноября 2018

Попробуйте использовать shell вместо command модуля. Перенаправления Bash не работают с command.

P.S. Вы используете ansible странным образом. Создайте системный модуль (системный или пользовательский уровень) и используйте модуль systemd, чтобы включить / запустить его.

...