如何获得当前计算机的主机名称,如安塞尔主机文件中定义的?

我正在建立一个安赛波战术手册来建立几个服务器。只有当当前主机是我的本地开发主机(在我的主机文件中命名为“ local”)时,我才想运行几个任务。我怎么能这么做?我在文件里找不到。

我尝试了 when 语句,但是失败了,因为 ansible_hostname解析为创建机器时生成的主机名,而不是您在主机文件中定义的主机名。

- name: Install this only for local dev machine
pip: name=pyramid
when: ansible_hostname == "local"
210138 次浏览

必要的变量是 inventory_hostname

- name: Install this only for local dev machine
pip: name=pyramid
when: inventory_hostname == "local"

它隐藏在文档 在这一部分的底部中。

您可以通过改变剧本中的主机标题来限制剧本的范围,而不需要依赖您库存中的特殊主机标签“ local”。本地主机不需要特殊的库存线。

- name: run on all except local
hosts: all:!local

这是另一种选择:

- name: Install this only for local dev machine
pip: name=pyramid
delegate_to: localhost