앤서블의 호스트 지정 패턴

플레이북의 host 매개 변수에 보통 단일 호스트 또는 그룹을 지정하는데..

hosts: web

단일 호스트 또는 그룹을 지정하는 대신 패턴을 지정할 수도 있다. 이미 all 패턴을 봤었다. all  패턴은 알려진 모든 호스트들에 대해 플레이를 실행할 것이다.

hosts: all

콜론을 사용해 두 그룹의 합집합을 지정할 수 있다. 다음처럼 모든 dev 머신 및 staging 머신을 지정할 수 있다.

hosts: dev:staging

\콜론과 앰퍼샌드(:&)를 사용하여 교집합을 지정할 수 있다. 예를 들어 staging 환경에서 모든 데이터베이스 서버를 지정하려면 다음처럼 지정할 수 있다.

hosts: staging:&database


표 9-1은 앤서블이 지원하는 패턴을 보여준다. 정규식 패턴은 항상 물결 기호(~)로 시작한다.



액션

사용 예시

모든 호스트

all

모든 호스트

*

합집합

dev:staging

교집합

staging:&database

배제

dev:!queue

와일드카드

*.example.com

번호로 지정한 서버의 범위

web[5:10]

정규식

~web\d+\.example\.(com|org)





앤서블은 여러 패턴 조합을 지원한다. 예를 들면 다음과 같다.

hosts: dev:staging:&database:!queue




또한 호스트의 임의 조합을 예시처럼 지정할 수 있다. $ ansible-playbook -l 'staging:&database' playbook.yml


Posted by 김용환 '김용환'

댓글을 달아 주세요