Ansible';寄存器';返回一个空结果
我使用Ansible play book远程进行API调用,将其注册为变量,然后将其写入本地主机上的文本文件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:
- 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”命令在这两种情况下都远程运行。我确实去了远程主机并运行了它,它运行得很好