Artigos

Tire duas dúvidas com o especialista no assunto Dr. Daphnis Citti de Lauro

ansible inventory 예제

팁: group_vars/ 및 host_vars/디렉터리 플레이북 디렉토리 또는 인벤토리 디렉토리에 존재할 수 있습니다. 두 경로가 모두 있는 경우 플레이북 디렉터리에서 변수는 인벤토리 디렉터리에서 설정된 변수를 재정의합니다. 참고: 아래 예제에서는 프로젝트 디렉터리에서 ansible.cfg 파일을 편집하는 것을 보여 줍니다. 변경 사항에 /etc/ansibile/ansible.cfg 파일을 사용하는 경우 아래 편집 경로를 수정합니다. /etc/ansible/ansible.cfg를 사용하는 경우 인벤토리가 /etc/ansible 디렉터리 외부에서 유지되는 경우 인벤토리 값을 설정할 때 상대 경로 대신 절대 경로를 사용해야 합니다. 이전 YAML 인벤토리를 확장하여 모양, 시기 및 위치를 포함합니다: `롤리` 그룹에 있는 모든 호스트는 이러한 파일에 정의된 변수를 사용할 수 있습니다. 이 기능은 단일 파일이 너무 커지기 시작하거나 그룹의 변수 중 일부에 Ansible Vault를 사용하려는 경우 변수를 구성하는 데 매우 유용할 수 있습니다. 이것은 Ansible이 명시적 순서를 허용하는 한 영역이며, 이는 매우 유용 할 수 있습니다. 그러나 이전 예제와 마찬가지로 몇 가지 중요한 단점이 있습니다.

vars_files를 사용하면 인벤토리에 변수 충돌이 있는 경우 변수병합 및 변수 우선 순위에 설명된 규칙에 따라 해결된다는 점을 명심하십시오. 병합 순서는 인벤토리 소스 매개 변수의 순서에 의해 제어됩니다. 스테이징 인벤토리에서 [all:vars]가 myvar = 1을 정의하지만 프로덕션 인벤토리에서 myvar = 2를 정의하는 경우 플레이북은 myvar = 2로 실행됩니다. 플레이북이 -i 프로덕션 -i 스테이징으로 실행되면 결과가 반전됩니다. 예를 들어 [nginx] 그룹을 만들었으니, 이 그룹에 대해 nginx 역할을 어떻게 실행할 수 있을까요? Ansible에 대한 인벤토리 파일을 만들어야 합니다. 인벤토리 파일은 관리하려는 호스트와 호스트가 속한 그룹을 나열합니다. 각 단계(DTAP)에 대해 하나씩 네 개의 인벤토리 파일을 만들었습니다. 기본적으로 변수는 재생이 실행되기 전에 특정 호스트로 병합/병합됩니다. 이렇게 하면 Ansible이 호스트 및 작업에 집중할 수 있으므로 그룹은 인벤토리 및 호스트 일치 외부에서 실제로 생존하지 못합니다.

기본적으로 Ansible은 그룹 및/또는 호스트에 대해 정의된 변수를 포함하여 변수를 덮어씁니다(DEFAULT_HASH_BEHAVIOUR 참조). 순서/우선 순위는 가장 낮게(가장 낮함에서 가장 높도록): 이 가이드에서는 Ansible을 사용하여 다단계 배포 환경에서 작업하기 위한 몇 가지 전략에 대해 설명합니다. 일반적으로 여러 단계에 대한 요구 사항은 구성 요소의 수와 구성이 다릅니다. 예를 들어 개발 서버의 메모리 요구 사항은 스테이징 및 프로덕션의 요구 사항과 다를 수 있으므로 이러한 요구 사항을 나타내는 변수의 우선 순위를 지정하는 방법을 명시적으로 제어하는 것이 중요합니다. 이 문서에서는 이러한 차이점을 추상화할 수 있는 몇 가지 방법과 Ansible이 구성 재사용을 장려하기 위해 제공하는 몇 가지 구문에 대해 설명합니다.