Отображение статуса слушателя MQ с использованием Ansible не работает - PullRequest
0 голосов
/ 17 июня 2020
---
- hosts: all
  become_user: mqm
  become_method: sudo
  tasks:
    - name: Execute a MQ Command
      shell: 
        cmd:  "echo 'DISPLAY LSSTATUS(TCP) STATUS' | runmqsc QMGR"
        chdir: /opt/mqm/bin/runmqsc
      register: mqstat

    - debug: 
        var: mqstat.stdout_lines

** Ошибка: **

TASK [Execute a MQ Command] ****************************************************************************************************************************************
fatal: [QMGR]: FAILED! => {"changed": false, "module_stderr": "Shared connection to xyz.pqr.com closed.\r\n", "module_stdout": "Traceback (most recent call last):\r\n  File \"/tmp/ansible_UASQnG/ansible_module_command.py\", line 213, in <module>\r\n    main()\r\n  File \"/tmp/ansible_UASQnG/ansible_module_command.py\", line 152, in main\r\n    os.chdir(chdir)\r\nOSError: [Errno 20] Not a directory: '/opt/mqm/bin/runmqsc'\r\n", "msg": "MODULE FAILURE", "rc": 0}

1 Ответ

2 голосов
/ 17 июня 2020

chdir: / opt / mqm / bin / runmqs c

Если это должен быть каталог для выполнения команды, runmqs c не является каталогом name, так что это не должно быть просто chdir: / opt / mqm / bin. В дополнение к комментариям помните, что если вы используете конвейер для runmqs c, то runmqs c должен быть на пути. Если это не так, то вам необходимо полностью квалифицировать его, то есть попробуйте:

  shell: 
    cmd:  "echo 'DISPLAY LSSTATUS(TCP) STATUS' | ./runmqsc QMGR"
    chdir: /opt/mqm/bin

или

  shell: 
    cmd:  "echo 'DISPLAY LSSTATUS(TCP) STATUS' | /opt/mqm/bin/runmqsc QMGR"
    chdir: /opt/mqm/bin
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...