Ansible hosts 파일에 정의 된대로 현재 머신의 호스트 이름을 얻는 방법은 무엇입니까?


166

몇 대의 서버를 설정하기 위해 Ansible 플레이 북을 설정하고 있습니다. 현재 호스트가 호스트 파일에 "local"이라는 로컬 로컬 호스트 인 경우에만 실행하려는 몇 가지 작업이 있습니다. 어떻게해야합니까? 설명서의 어느 곳에서도 찾을 수 없습니다.

when 문을 시도했지만 ansible_hostname호스트 파일에 정의한 이름이 아닌 컴퓨터를 만들 때 생성 된 호스트 이름으로 확인 되므로 실패 합니다.

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

답변:



2

인벤토리의 특수 호스트 레이블 'local'에 의존하지 않고 플레이에서 호스트 헤더를 변경하여 플레이 북의 범위를 제한 할 수 있습니다. 로컬 호스트는 인벤토리에 특별한 줄이 필요하지 않습니다.

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

hosts: !localhost아마 작품처럼 --limit '!dev'작동합니다
timdiels

0

이것은 대안입니다.

- name: Install this only for local dev machine
  pip: name=pyramid
  delegate_to: localhost
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.