5장. 변수 및 사실
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
Ansible은 완전한 프로그래밍 언어는 아니지만 프로그래밍 언어의 여러 기능을 가지고 있으며, 그중 가장 중요한 기능 중 하나는 변수 대체 또는 문자열이나 다른 변수에서 변수 값을 사용하는 것입니다. 이 장에서는 Ansible이 팩트라고 부르는 특정 유형의 변수를 포함하여 변수에 대한 Ansible의 지원에 대해 자세히 설명합니다.
플레이북에서 변수 정의하기
변수를 정의하는 가장 간단한 방법은 플레이북에 변수의 이름과 값이 포함된 vars 섹션을 넣는 것입니다. 예제 3-9에서 이 접근 방식을 사용하여 다음과 같이 여러 구성 관련 변수를 정의한 것을 기억하세요:
vars: tls_dir: /etc/nginx/ssl/ key_file: nginx.key cert_file: nginx.crt conf_file: /etc/nginx/sites-available/default server_name: localhost
별도의 파일에 변수 정의하기
또한 Ansible에서는 변수를 하나 이상의 파일에 넣은 다음 vars_files 이라는 섹션을 사용하여 플레이북에서 참조할 수 있습니다. 앞의 예제를 사용하여 변수를 플레이북에 바로 넣는 대신 nginx.yml이라는 파일에 넣는다고 가정해 보겠습니다. vars 섹션을 다음과 같이 vars_files 으로 바꾸면 됩니다:
vars_files: - nginx.yml
예제 5-1의 nginx.yml 파일은 다음과 같습니다.
예제 5-1. nginx.yml
key_file: nginx.key cert_file: nginx.crt conf_file: /etc/nginx/sites-available/default server_name: localhost
6장에서 민감한 정보를 담고 있는 변수를 분리하는 데 사용하는 vars_files 예제를 확인할 수 있습니다.
디렉토리 레이아웃
4장에서 설명한 것처럼, Ansible에서는 인벤토리에서 호스트 또는 그룹과 관련된 변수를 정의할 수도 있습니다. 인벤토리 호스트 파일 또는 플레이북과 함께 있는 별도의 디렉터리에서 이 작업을 수행합니다. 그룹_변수 하위 디렉터리의 파일 및 디렉터리는 파일 호스트에 정의된 그룹과 일치합니다. host_vars 하위 디렉터리의 파일 및 디렉터리는 개별 호스트에 대해 일치합니다:
inventory/
production/
hosts
group_vars/
webservers.yml
all.yml
host_vars/
hostname.yml
변수 값 보기
디버깅을 할 때 변수의 출력을 볼 수 있으면 편리할 때가 많습니다. 3장에서 debug 모듈을 사용하여 임의의 메시지를 출력하는 방법을 살펴보았습니다. 이 모듈을 사용하여 변수 값을 출력할 수도 있습니다. 다음과 같이 작동합니다:
- debug: var=myvarname
이름 없이 순수 YAML 스타일로 된 이 속기 ...