2017-12-19 10 views
1

AWS에서 최대 6 개의 VM으로 VPC를 설정하는 데 도움이되는 스크립트가 있습니다. 이제 각 컴퓨터에 로그인하고 싶습니다. 보안상의 이유로 우리는 SSH를 통해 그 중 하나에 액세스 한 다음 다른 시스템에이를 통해 터널/프록시를 액세스 할 수 있습니다. 내가 말할 필요가 이제Anabilities에서 그룹에 대한 공통 변수를 입력 할 곳

#inventory/hosts 

[redcarpet] 
57.44.113.25 

[services] 
10.0.1.2 

[worker] 
10.0.5.77 
10.0.1.200 

[elasticsearch] 
10.0.5.30 

[mongodb] 
10.0.1.5 

: 그래서 우리의 재고에 우리는 SSH 호스트의 IP 주소 (우리가 Redcarpet 그것을 전화) 및 Elasticsearch, MongoDB를 같은 몇 가지 다른 호스트노동자이 각 그룹은 redcarpet을 제외하고 특정 SSH 설정을 사용합니다. 이러한 모든 그룹에 적용한다면, 나는 inventory/group_vars/all.yml에 넣어,하지만 지금은에 넣어해야합니다 :

  • inventory/group_vars/services.yml
  • inventory/group_vars/worker.yml
  • inventory/group_vars/elasticsearch.yml
  • inventory/group_vars/mongodb.yml

중복으로 연결됩니다. 따라서 include 또는 include_vars을 사용하여 공통 파일에서 하나 또는 두 개의 변수 (예 : inventory/common.yml)를 포함하고 싶습니다. 그러나 위의 group_var 파일 중 하나에서이 작업을 시도하면 변수를 선택하지 않습니다. 여러 그룹에 공통적 인 변수를 사용할 때 가장 좋은 방법은 무엇입니까?

답변

4

group_vars 접근 방식을 사용하려면 다른 그룹을 추가하고 종속 그룹을 해당 그룹의 하위 그룹으로 추가하는 것이 좋습니다.

#inventory/hosts 

[redcarpet] 
57.44.113.25 

[services] 
10.0.1.2 

[worker] 
10.0.5.77 
10.0.1.200 

[elasticsearch] 
10.0.5.30 

[mongodb] 
10.0.1.5 

[redcarpet_deps:children] 
mongodb 
elasticsearch 
worker 
services 

그리고 지금 당신은 redcarpet_deps.yml라는 group_vars 파일을 가질 수 있습니다 그리고 그들은 픽업 거기에서 바르해야한다.

+0

오, 저것은 실제로 아주 간단하고 간단한 해결책입니다. 나는 왜 포함이 작동하지 않았는지 궁금해하고있다. 그러나 이것은 당연히 나의 즉각적인 문제를 해결할 것이다. – titusn