使用 ansible 在 GCP 计算引擎上访问虚拟机的外部 IP



这就是我如何试图检索虚拟机的外部IP地址:

{{hostvars[inventory_hostname]['ansible_env'].SSH_CONNECTION.split(' ')[2]}}
下面是查看与一个节点关联的所有IP地址的另一种方法:Ansible -m setup -i hosts -u

结果:

ansible [hostname (or) hostgroup] -m setup -i hosts -u [user name] | grep SSH
"SSH_CLIENT": "<ip a> 57894 22",
"SSH_CONNECTION": "<ip a> 57894 <internal ip> 22",
"SSH_TTY": "/dev/pts/0",

使用第一个代码片段返回的是第二个IP即VM的内部IP。可见如何拉VM的外部IP?还有,IP是什么?这肯定不是虚拟机的外部IP地址。

我相信'ansible_host'变量可以做到这一点。下面的playbook输出虚拟机的ip地址。

- name: Show vm's ip
hosts: gcp
tasks:
- debug:
msg: "{{ansible_host}}"

最新更新