首页 文章

如何获取Ansible主机文件中定义的当前计算机的主机名?

提问于
浏览
142

我正在设置一个Ansible手册来设置几个服务器 . 如果当前主机是我的本地开发主机,在我的主机文件中名为“local”,那么我只想运行几个任务 . 我怎样才能做到这一点?我在文档中的任何地方都找不到它 .

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

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

2 回答

  • 242

    必要的变量是inventory_hostname .

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

    它有点隐藏在文档at the bottom of this section中 .

  • 0

    您可以通过更改其播放中的主机 Headers 来限制播放簿的范围,而无需依赖清单中的特殊主机标签“本地” . Localhost在库存中不需要特殊行 .

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

相关问题