当前位置:  开发笔记 > 运维 > 正文

获取Ansible控制机器IP地址的最佳方法

如何解决《获取Ansible控制机器IP地址的最佳方法》经验,为你挑选了1个好方法。

我正在使用Ansible并ufw在服务器上设置防火墙。作为ufw规则的一部分,我希望允许来自Ansible控制机器的SSH,但不允许任何其他地方的SSH。我的问题是-获取控制机器本身的IP地址的最佳方法是什么,以便我将其放入规则中?

我知道我可以使用事实来获取正在运行该剧本的计算机的IP地址,但是我看不到任何简单的方法可以为运行ansible的计算机自动获取它。

我想避免添加一个新变量来表示此变量,因为如果可以自动发现它将会很好,尽管如果这是唯一已知的最佳方法,那么我将这样做。

编辑:我发现这个重复的问题与我的相同,但是它也没有得到答案,因此将对此保留一些时间。



1> belonesox..:
{{ ansible_env['SSH_CLIENT'].split() | first }}

可以,但是您必须从默认用户那里收集有关连接变量的事实,因此,也许是:

在剧本级别设置“收集事实:是”,而不是 “成为:是”

更加可靠:运行«setup»任务(不使用«become:yes”,并且在使用«ansible_env»之前,最好在«pre_tasks»部分使用)。

如果您用“ become”运行“ gather / setup”,则稍后将获得“一个或多个未定义的变量:'dict object'没有属性'SSH_CLIENT'»(这是因为sudoed的” setup»只能捕获少量变量)。

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有