gpt4 book ai didi

shell - Ansible IP 地址变量 - 主机部分

转载 作者:行者123 更新时间:2023-12-04 00:21:27 24 4
gpt4 key购买 nike

我有以下问题:

我正在编写用于在 Ansible 的命令行上设置 IP 地址的剧本。让我们说 10.10.10.x。我需要获取公共(public) IP 的最后一部分,比如说 x.x.x.15 并将其分配给私有(private) IP:10.10.10.15。有这个变量吗?我可以抓一些吗?我试过使用类似的东西:

shell: "ip addr show | grep inet ...." 
register: host_ip

但这不是我需要的。它有效,但仅适用于有限数量的服务器。

整个事情应该是这样的:
"shell: /dir/script --options 10.10.10.{{ var }}"

{{ var }}应该是公共(public) IP 的主机部分。

编辑:

谢谢!这是我的最终解决方案:
- name: Get the host part of the IP 
shell: host {{ ansible_fqdn }} | awk '{print $4}'
register: host_ip


{{ host_ip.stdout.split('.')[3] }}

稍后在剧本中使用它。

最佳答案

您可以使用 ansible facts 而不是使用系统实用程序尽管您会发现接口(interface)名称因服务器而异。

你特意提到了我公网IP的最后一部分

如果您的意思是您的公共(public) IP,您将需要使用外部服务来获取它,因为您的服务器可能在 NAT 后面。这是一种选择

shell: wget -qO- http://ipecho.net/plain ; echo
register: host_ip

这将为您提供公共(public) IP,接下来获得最后一个八位位组,您可以执行以下操作:
{{ host_ip.stdout.split('.')[3] }}

关于shell - Ansible IP 地址变量 - 主机部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com