显示MQ侦听器状态USING Ansible not working

显示MQ侦听器状态USING Ansible not working,ansible,ibm-mq,ansible-facts,Ansible,Ibm Mq,Ansible Facts,**错误:** --- - 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

**错误:**

---
- 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[执行MQ命令]****************************************************************************************************************************************
致命:[QMGR]:失败!=>{“changed”:false,“module\u stderr”:“与xyz.pqr.com的共享连接已关闭。\r\n”,“module\u stdout”:“回溯(最近一次调用):\r\n File\”/tmp/ansible\u UASQnG/ansible\u module\u command.py\”,main()\r\n File\“/tmp/ansible\u UASQnG/ansible\u module\u command.py\”中第213行,main\r\n os.chdir(chdir)\r\r\n错误:[20]不是目录:'/opt/mqm/bin/runmqsc'\r\n,“msg”:“模块故障”,“rc”:0}
chdir:/opt/mqm/bin/runmqsc

如果这应该是执行命令的目录,那么runmqsc不是一个目录名,所以它不应该只是chdir:/opt/mqm/bin。除了注释之外,请记住,如果通过管道连接到runmqsc,那么runmqsc必须位于路径上。如果不是,则您需要完全限定它,即尝试:

chdir:/opt/mqm/bin/runmqsc

如果这应该是执行命令的目录,那么runmqsc不是一个目录名,所以它不应该只是chdir:/opt/mqm/bin。除了注释之外,请记住,如果通过管道连接到runmqsc,那么runmqsc必须位于路径上。如果不是,则您需要完全限定它,即尝试:


你能澄清你到底想做什么吗?只有一些行和错误,其他用户将很难帮助您。此剧本将用于检索队列管理器的侦听器状态。作为MQ管理员,我们遵循的基本方法是登录到服务器,将用户切换到“mqm”并执行以下命令。命令:echo'DISPLAY LSSTATUS(TCP)STATUS'| runmqsc QMGR,我们在下面几行中收到状态,我需要将其打印出来。您能确切地说明您正在尝试做什么吗?只有一些行和错误,其他用户将很难帮助您。此剧本将用于检索队列管理器的侦听器状态。作为MQ管理员,我们遵循的基本方法是登录到服务器,将用户切换到“mqm”并执行以下命令。命令:echo'DISPLAY LSSTATUS(TCP)STATUS'| runmqsc QMGR,我们在下面几行中收到状态,我需要将其打印出来。事实上,问题中的错误也表明:
[Errno 20]不是目录:'/opt/mqm/bin/runmqsc'\r\n“
致命:[QMGR]:失败!=>{“更改”:true,“cmd”:“echo”DISPLAY LSSTATUS(TCP)状态“| runmqsc QMGR”,“delta”:“0:00:00.010684”,“end”:“2020-07-03 03:24:18.563220”,“msg”:“非零返回码”,“rc”:127,“start”:“2020-07-03:24:18.552536”,“stderr”:“/bin/sh:runmqsc:command not found”,“stderr行”:[“/bin/sh:runmqsc:command not found”],“stdout”:“stdout行”[])如果它不在路径上,则根据您的错误运行它将失败,即未找到命令。相反,要么完全限定该命令,要么突出显示它在当前目录中,因为存在chdir-在Unix上,当前目录不会自动搜索程序,不像在Windows上那样…我已编辑了我的答案,以使其更清晰,并且确实问题中的e错误也表示:
[Errno 20]不是目录:'/opt/mqm/bin/runmqsc'\r\n“
致命:[QMGR]:失败!=>{“changed”:true,“cmd”:“echo'DISPLAY LSSTATUS(TCP)STATUS'| runmqsc QMGR”,“delta:“0:00:00.010684”,“end:“2020-07-03 03:24:18.563220”,“msg:“non-zero return code”,“rc”:127,“start:“2020-07-03:24:18.552536”,“stderr:”/bin/sh:runmqsc:command not found”,“stderr”:[“/bin/sh:runmqsc:command not found”],“stdout”,“stdout_行”:[]}如果它不在路径上,则根据您的错误运行它将失败,即找不到命令。相反,由于chdir,请完全限定该命令或突出显示它在当前目录中-在Unix上,不会自动搜索当前目录中的程序,这与在Windows上不同…我编辑了我的答案以使其更清晰
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}
  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