Ansible';寄存器';返回一个空结果

Ansible';寄存器';返回一个空结果,ansible,Ansible,我使用Ansible play book远程进行API调用,将其注册为变量,然后将其写入本地主机上的文本文件 - name: Find the the tag (register it to HOTFIXTAG) shell: curl https://nginx.service.gc.guardicore/version.js -k -s | grep -oE build_.*\' | tr -d \'\" register: HOTFIXTAG 得到我想要的: ok:

我使用Ansible play book远程进行API调用,将其注册为变量,然后将其写入本地主机上的文本文件

- name: Find the the tag (register it to HOTFIXTAG)
  shell: curl https://nginx.service.gc.guardicore/version.js -k -s | grep -oE build_.*\' | tr -d \'\"
  register: HOTFIXTAG 
得到我想要的:

ok: [mgmt] => {
    "HOTFIXTAG": {
        "changed": true,
        "cmd": "curl https://nginx.service.gc.guardicore/version.js -k -s | grep -oE build_.*\\' | tr -d \\'\\\"",
        "delta": "0:00:00.029626",
        "end": "2020-07-19 17:34:23.577904",
        "failed": false,
        "rc": 0,
        "start": "2020-07-19 17:34:23.548278",
        "stderr": "",
        "stderr_lines": [],
        "stdout": "build_v31_20200610_41620_hf_20200706_1",
        "stdout_lines": [
            "build_v31_20200610_41620_hf_20200706_1"
然后使用HOTFIX.stdout在远程计算机上运行特定命令,该命令更改 API调用,然后

- name: Register the new, updated tag to NEWTAG
  shell: curl https://nginx.service.gc.guardicore/version.js -k -s | grep -oE build_.*\' | tr -d \'\"
  register: NEWTAG ```
但是当我进行第二次调用并注册时,NEWTAG.stdout返回为空

   ok: [mgmt] => {
    "NEWTAG": {
        "changed": true,
        "cmd": "curl https://nginx.service.gc.guardicore/version.js -k -s | grep -oE build_.*\\' | tr -d \\'\\\"",
        "delta": "0:00:03.216042",
        "end": "2020-07-19 17:35:01.842620",
        "failed": false,
        "rc": 0,
        "start": "2020-07-19 17:34:58.626578",
        "stderr": "",
        "stderr_lines": [],
        "stdout": "",
        "stdout_lines": [],


我不知道为什么,有什么想法吗?

我建议您使用-vvv进行详细输出。它有助于调试和理解错误:)

Hi,您是否执行了命令
curlhttps://nginx.service.gc.guardicore/version.js -k-s | grep-oE构建.*\''tr-d'\“
本地检查是否生成了所需的输出?与此问题无关,但您应该使用模块
uri
来创建httpcalls@error404“curl”命令在这两种情况下都远程运行。我确实去了远程主机并运行了它,它运行得很好