[Ansible] #4.1 YAML
Ansible
의 플레이북
의 YAML
형식에 대해서 알아보자.
1. YAML 기본
선택적으로 YAML
문서의 시작은 ---
로 시작하고 ...
으로 끝낸다.
필수는 아니고, 관습적으로 하는것.
Ansible
에서 모든 YAML
파일은 -
로 시작하는 목록(List)
으로 시작한다.
YAML
파일은 많은 곳에 쓰지만 Ansible
에서만 항상 -
로 시작하는 목록
으로 시작한다.
각 목록
의 항목은 사전(Dictionary, hash)
이라고 하는 키/값
쌍을 가진다.
형식에 따른 표현은 다음과 같다.
Key=Value
:INI
Key:Value
:YAML
들여쓰기는 탭
이 아닌 공백(일반적으로 공백 2칸)
으로 한다.
파일의 확장자는 yml
또는 yaml
을 사용한다.
2. 목록(List)
목록은 순서(Order)
를 가진다.
리스트는 위에서 아래 방향이다.
목록은 대시와 공백으로 시작하며 동일한 들여쓰기 수준을 가진다.
-
뒤에 띄워쓰기를 한 칸 해야함을 명심하자.
3. 사전
Dictionary
또는 Hash
라고 한다.
위 목록처럼 String
만 들어가는 경우는 거의 없고, 사전 처럼 키/값
쌍으로 위치한다.
name
, job
, skill
앞에 두 칸 띄워쓰기로 들여쓰기가 구현되어 있고, 이렇게 키/값
쌍으로 이루어진 것 하나하나를 Dictionary
라고 한다.
martin(키)
/ name,job,skill(값)
name(키)
/ Martin D’ vloper(값)
이런 식으로 계층적 키 값 관계
를 가진다.
4. 사전 / 목록 혼합
위 처럼 키 - 값(키) - 값
과 같은 식으로 많이 나타난다.
위 파일은, martin
과 tabitha
두 개의 리스트를 가진다고 볼 수 있다.
이 때 martin
이 키
이고 name
, job
, skills
모두 값
이 되며, skills
는 또 하나의 키
가 되고 값
으로 python
, per1
, pascal
이라는 리스트를 포함한다.
근데 언제는 리스트(-
)를 쓰고 언제는 안쓰냐 ?
도커
랑 쿠버네티스
다 언제 쓰고 언제 안쓰는지가 모두 다르다…
일단은 대충 알고 넘어가자.
5. 사전 / 목록 혼합 - 축약형
목록
: [ ]
블록
사전
: { }
블록
너무 파일이 길어질경우 축약형으로 한 줄에 늘여서 쓸 수도 있다.
이렇게도 쓸 수 있지만, 이런식으로 늘여 쓰면 가독성이 안좋아질 수 있다.
YAML
파일은 되도록이면 괄호를 쓰지 않는 것을 원칙으로 하기 때문에, 이왕이면 위 방식으로 YAML
파일을 사용하고 축약형으로는 익숙해지면 사용하도록 하자.
YAML
의 목적은 사람이 읽고 쓰기 쉽게 하기 위함인데 익숙하지 않으면 정말 고통스러울 수 있다 …
6. 불리언(Boolean)
따옴표('
)를 쓰면 String
이 되기 때문에 절대 쓰지 말자.
비단 불리언
뿐만 아니라 숫자에도 따옴표를 붙이면 String
이 된다.
yes
=true
=True
=TRUE
no
=false
=False
=FALSE
7. 멀티라인 값
key
에 대한 하나의 value
를 이렇게 |
, >
를 이용해서 멀티라인
으로 작성할수도 있다.
|
나 >
나 기본적으로 둘 다 동일하다.
이렇게 작성하는 이유는 가독성 때문이다.
8. 플레이북 작성 시 팁
vim
에디터 : vim
환경 설정 파일
~/.vimrc
파일을 생성하자.
그리고 아래 코드를 넣어준다.
syntax on
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab autoindent
이렇게 하면 원래 공백 8칸이던 탭키가 yaml
파일을 수정할때는 공백 2칸이 된다.
VS Code
를 쓴다면, 아래 확장 플러그인을 설치하면 유용하다.
Visual Studio Code : YAML, Ansible 확장 플러그인 설치
Extensions for Visual Studio family of products _ Visual Studio Marketplace