Google cloud platform 创建GCP资源并获取IP地址
我必须在GCP上创建新的nexus服务器。我已决定使用nfs点进行数据存储。所有这些都必须使用ansible完成(已使用terraform创建实例) 我必须获得GCP设置的动态IP并创建挂载点 使用gcloud命令可以正常工作,但是如何仅获取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
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}}"