Google cloud platform 创建GCP资源并获取IP地址

Google cloud platform 创建GCP资源并获取IP地址,google-cloud-platform,ansible,nexus,Google Cloud Platform,Ansible,Nexus,我必须在GCP上创建新的nexus服务器。我已决定使用nfs点进行数据存储。所有这些都必须使用ansible完成(已使用terraform创建实例) 我必须获得GCP设置的动态IP并创建挂载点 使用gcloud命令可以正常工作,但是如何仅获取IP信息 代码: 结果: ok: [nexus-ppd.preprod.d-aim.com] => { "changed": false, "msg": { "ansib

我必须在GCP上创建新的nexus服务器。我已决定使用nfs点进行数据存储。所有这些都必须使用ansible完成(已使用terraform创建实例)

我必须获得GCP设置的动态IP并创建挂载点

使用gcloud命令可以正常工作,但是如何仅获取IP信息

代码:

结果:

ok: [nexus-ppd.preprod.d-aim.com] => {
    "changed": false,
    "msg": {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python3"
        },
        "changed": true,
        "cmd": "gcloud filestore instances describe nfsnexus --project=xxxxx --zone=xxxxx  --format='get(networks.ipAddresses)'",
        "delta": "0:00:00.763235",
        "end": "2021-03-14 00:33:43.727857",
        "failed": false,
        "rc": 0,
        "start": "2021-03-14 00:33:42.964622",
        "stderr": "",
        "stderr_lines": [],
        "stdout": "['1x.x.x.1xx']",
        "stdout_lines": [
            "['1x.x.x.1xx']"
        ]
    }
}

谢谢

只需使用正确的格式字符串,例如获取第一个IP:

--format='get(networks.ipAddresses[0])'

找到解决方案只需添加以下内容:

- name:
  debug:
    msg:  "{{ip.stdout_lines}}"
我觉得自己很愚蠢:(,我必须在凌晨2点后停止工作:)


Thx

亲爱的,返回空行。我最初使用的命令工作正常,我只需要从ansible Result中获得正确的返回。注释掉的行已经有了IP:
“stdout”:“['1x.x.x.1x']””
。正确:D,我正在寻找让stdout在var中注册它。应该使用一些行“{IP.stdout}”?
- name:
  debug:
    msg:  "{{ip.stdout_lines}}"