2016-06-20 1 views
1

내 그룹 파일에 여러 호스트가있는 복잡한 설정이 있습니다. 이 같은.책임있는 사람 : 방글라데시에서 특정 호스트를 운영하는 방법?

# hosts/groups 

[local] 
127.0.0.1 

[server1] 
server1.domain.com 

[server2] 
server2.domain.com 

[group1] 
local 
server1 

[group2] 
local 
server2 

이 방법은, 내가 로컬 호스트에 대해 두 그룹을 실행할 수 있습니다 내 방랑 상자입니다 2222, 그러나, 그들은 모두 실행 될 것입니다. 테스트를 위해 나는 선택하기를 매우 좋아할 것이며, 어떤 설정을 테스트하고 싶습니다. 저는 --extra-vars 인수와 조건문을 실험했습니다. 이것은 꽤 추악합니다. 호스트 구성에서 extra_vars 인수를 사용하는 방법이 있습니까? 다음과 같은 명령을 사용하십시오 ...

ansible-playbook playbook.yml -i hosts -l 127.0.0.1:2222 --extra-vars "vhost=server1.domain.com" 

아니면 완전히 잘못되었습니다.

+0

당신이 뭘 하려는지 확실히 모르겠어요. 로컬 개발 머신에 대해 제작 호스트와 동일한 플레이 북을 실행하고 싶습니까? –

+0

불명확 함을 드려 죄송합니다. (주로 관련이없는) 많은 컴퓨터가있는 프로덕션 설치가 있습니다. 또 다른 하나를 만드는 동안, 나는이 특별한 기계를 나의 방랑자 인스턴스와 비교하여 어떻게 진행되는지보고 싶습니다. –

+0

"이 특정 시스템을 제 방황하는 인스턴스에 대해서만 실행하십시오"라는 것이 무슨 뜻인지 확신 할 수 없습니다. 방랑자 인스턴스에 대해 특정 * 역할 * 또는 * 플레이 북 *을 실행하기를 원한다는 뜻입니까? –

답변

1

어떻게하면 Anecess를 실행하는지에 대한 변경을 통해이를 수행하는 쉬운 방법이 없다고 생각합니다.

제가 생각할 수있는 최선의 방법은 잠재적으로 플레이 북을 재구성하는 것입니다. 당신이 group1.yamlgroup2.yaml를 작성하는 경우 group1group2을 설정하는 데 필요한 문을 포함 각각 각각에, 당신은 단지 개발 인스턴스에 대해 group1 구성을 실행에

[$]> ansible-playbook -l 127.0.0.1:2222 group1.yaml 

뭔가를 실행할 수 있습니다. 당신은 여전히 ​​모든 작업을 실행 할 수있는 편리한 방법을 원하는 경우에

, 다른 플레이 북을 포함하도록 playbook.yaml을 변경 :

- include: group1.yaml 
- include: group2.yaml 
+0

오, 꽤 좋습니다, 나는 그것을 시도 할 것입니다. –

관련 문제