Ошибка Ansible Общее соединение с myhost1 закрыто. при использовании модуля raw

#shell #ansible #runtime-error #shellexecute #raw

Вопрос:

Мой целевой сервер ansible-SunOS.

Я получаю ошибку Ansible Shared connection to myhost1 closed. при использовании необработанного модуля.

Ошибка не отображается, когда я меняю модуль на shell «однако», выполнение скрипта start.sh не происходит (очевидно из вывода ps команды), поэтому я хочу использовать raw

 - name: "START ADP SERVICES"
  raw: "source ~/.profile; sh /web/external_products/springboot/{{ vars[ environ   '_folder'] }}/veladpservice/bin/start.sh veladpservice.jar {{ vars[ environ   '_folder'] }} {{ allpass }}"
 

Вывод при использовании shell модуля:

 TASK [START ADAPTER SERVICES] **************************************************
task path: /web/playbooks/automation/veladp/va_action.yml:32
changed: [myhost1] => {"changed": true, "cmd": "source ~/.profile; sh /web/external_products/springboot/stg/veladpservice/bin/start.sh veladpservice.jar stg WEB_USER apps_user_2021_2378 MSPW435 MSPW435 MSPW445 MSPW445 PETWEB440 Temp_45678 MSPW460 Temp_3456789012 MSPW430 Temp_1234567890 MSPW455 Temp_09876", "delta": "0:00:01.009433", "end": "2021-10-28 05:47:51.277868", "rc": 0, "start": "2021-10-28 05:47:50.268435", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
 

При использовании raw модуля:

 TASK [START adp SERVICES] *********************************************************************************
task path: /web/playbooks/automation/veladprestart/va_action.yml:32
<myhost1> ESTABLISH SSH CONNECTION FOR USER: myuser1
<myhost1> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="myuser1"' -o ConnectTimeout=10 -o StrictHostKeyChecking=no -o ControlPath=/home/myuser1/.ansible/cp/cc89a5347e -tt myhost1 'source ~/.profile; /web/external_products/springboot/stg/veladpservice/bin/start.sh veladpservice.jar stg MSP_WEB_USER Marsh_apps_user_2021_2378 MSPW435 MSPW435 MSPW445 MSPW445 PETWEB440 Temp_345678 MSPW460 Temp_3456789012 MSPW430 Temp_1234567890 MSPW455 Temp_0987654321'
<myhost1> (0, b'', b"OpenSSH_8.4p1 (CentrifyDC build 5.7.1-346) , OpenSSL 1.1.1g  21 Apr 2020rndebug1: Reading configuration data /etc/centrifydc/ssh/ssh_configrndebug1: /etc/centrifydc/ssh/ssh_config line 3: Applying options for *rndebug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/myuser1/.ssh/known_hosts'rndebug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/myuser1/.ssh/known_hosts2'rndebug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disablingrndebug1: auto-mux: Trying existing masterrndebug2: fd 3 setting O_NONBLOCKrndebug2: mux_client_hello_exchange: master version 4rndebug3: mux_client_forwards: request forwardings: 0 local, 0 remoterndebug3: mux_client_request_session: enteringrndebug3: mux_client_request_alive: enteringrndebug3: mux_client_request_alive: done pid = 21893rndebug3: mux_client_request_session: session request sentrndebug1: mux_client_request_session: master session id: 2rndebug3: mux_client_read_packet: read header failed: Broken piperndebug2: Received exit status from master 0rnShared connection to myhost1 closed.rn")
changed: [myhost1] => {
    "changed": true,
    "rc": 0,
    "stderr": "OpenSSH_8.4p1 (CentrifyDC build 5.7.1-346) , OpenSSL 1.1.1g  21 Apr 2020rndebug1: Reading configuration data /etc/centrifydc/ssh/ssh_configrndebug1: /etc/centrifydc/ssh/ssh_config line 3: Applying options for *rndebug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/myuser1/.ssh/known_hosts'rndebug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/myuser1/.ssh/known_hosts2'rndebug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disablingrndebug1: auto-mux: Trying existing masterrndebug2: fd 3 setting O_NONBLOCKrndebug2: mux_client_hello_exchange: master version 4rndebug3: mux_client_forwards: request forwardings: 0 local, 0 remoterndebug3: mux_client_request_session: enteringrndebug3: mux_client_request_alive: enteringrndebug3: mux_client_request_alive: done pid = 21893rndebug3: mux_client_request_session: session request sentrndebug1: mux_client_request_session: master session id: 2rndebug3: mux_client_read_packet: read header failed: Broken piperndebug2: Received exit status from master 0rnShared connection to myhost1 closed.rn",
    "stderr_lines": [
        "OpenSSH_8.4p1 (CentrifyDC build 5.7.1-346) , OpenSSL 1.1.1g  21 Apr 2020",
        "debug1: Reading configuration data /etc/centrifydc/ssh/ssh_config",
        "debug1: /etc/centrifydc/ssh/ssh_config line 3: Applying options for *",
        "debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/myuser1/.ssh/known_hosts'",
        "debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/myuser1/.ssh/known_hosts2'",
        "debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling",
        "debug1: auto-mux: Trying existing master",
        "debug2: fd 3 setting O_NONBLOCK",
        "debug2: mux_client_hello_exchange: master version 4",
        "debug3: mux_client_forwards: request forwardings: 0 local, 0 remote",
        "debug3: mux_client_request_session: entering",
        "debug3: mux_client_request_alive: entering",
        "debug3: mux_client_request_alive: done pid = 21893",
        "debug3: mux_client_request_session: session request sent",
        "debug1: mux_client_request_session: master session id: 2",
        "debug3: mux_client_read_packet: read header failed: Broken pipe",
        "debug2: Received exit status from master 0",
        "Shared connection to myhost1 closed."
    ],
    "stdout": "",
    "stdout_lines": []
}
 

Обновление предложения по публикации:

Я также попытался отключить процесс, используя disown , как показано ниже, но по ps -прежнему не отображается запущенный процесс:

 - name: "START ADAPTER SERVICES"
  shell: "source ~/.profile amp;amp; sh /web/external_products/springboot/{{ vars[ environ   '_folder'] }}/velocityadapterservice/bin/start.sh velocityadapterservice.jar {{ vars[ environ   '_folder'] }} {{ allpass }} amp;; disown %%"
 

~/.profile amp; start.sh но у вас 744 разрешения, и владелец myuser1

Примечание: Работает тот же процесс, что и вручную!!

Не могли бы вы, пожалуйста, предложить?

Комментарии:

1. Предложение состоит в том , чтобы использовать .../start.sh ... amp; и disown , чтобы SIGHUP не убивал ваш процесс при выходе из оболочки ansible, или, еще лучше, использовать systemd как разумную настройку

2. Можете ли вы рассказать мне больше об отречении и о том, как его использовать здесь

3. gnu.org/software/bash/manual/html_node/…

4. raw модуль @mdaniel по-прежнему выходит из строя с той же ошибкой. shell Модуль работает, но скрипт не запускается. Ниже приведено то, что я сделал по вашему предложению. ` — имя: «ЗАПУСК СЛУЖБ АДАПТЕРА» оболочка: «источник ~/.профиль amp;amp; sh /web/внешние продукты/springboot/{{ vars[ environ ‘_folder’] }}/velocityadapterservice/bin/start.sh velocityadapterservice.jar {{ vars[ окружающая среда ‘_folder’] }} {{ allpass }} amp;; откреститься %%» `

Ответ №1:

Предложение @mdaniel дало мне ключ к разгадке. Однако nohup помог решить проблему и до сих пор не уверен в disown этом . Ниже приведено решение.

 - name: "START ADAPTER SERVICES"
  shell: "source ~/.profile amp;amp; nohup /web/external_products/springboot/{{ vars[ environ   '_folder'] }}/velocityadapterservice/bin/start.sh velocityadapterservice.jar {{ vars[ environ   '_folder'] }} {{ allpass }} amp;"