[Ansible] #4.1 YAML

[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) 를 가진다.
리스트는 위에서 아래 방향이다.
목록은 대시와 공백으로 시작하며 동일한 들여쓰기 수준을 가진다.
- 뒤에 띄워쓰기를 한 칸 해야함을 명심하자.

1

3. 사전


Dictionary 또는 Hash 라고 한다.

위 목록처럼 String 만 들어가는 경우는 거의 없고, 사전 처럼 키/값 쌍으로 위치한다.

2

name, job, skill 앞에 두 칸 띄워쓰기로 들여쓰기가 구현되어 있고, 이렇게 키/값 쌍으로 이루어진 것 하나하나를 Dictionary 라고 한다.

martin(키) / name,job,skill(값)

name(키) / Martin D’ vloper(값)

이런 식으로 계층적 키 값 관계를 가진다.

4. 사전 / 목록 혼합


3

위 처럼 키 - 값(키) - 값 과 같은 식으로 많이 나타난다.
위 파일은, martintabitha 두 개의 리스트를 가진다고 볼 수 있다.
이 때 martin이고 name, job, skills 모두 이 되며, skills 는 또 하나의 가 되고 으로 python, per1, pascal 이라는 리스트를 포함한다.

근데 언제는 리스트(-)를 쓰고 언제는 안쓰냐 ?

도커쿠버네티스 다 언제 쓰고 언제 안쓰는지가 모두 다르다…
일단은 대충 알고 넘어가자.

5. 사전 / 목록 혼합 - 축약형


4

목록 : [ ] 블록

사전 : { } 블록

너무 파일이 길어질경우 축약형으로 한 줄에 늘여서 쓸 수도 있다.

이렇게도 쓸 수 있지만, 이런식으로 늘여 쓰면 가독성이 안좋아질 수 있다.

YAML 파일은 되도록이면 괄호를 쓰지 않는 것을 원칙으로 하기 때문에, 이왕이면 위 방식으로 YAML 파일을 사용하고 축약형으로는 익숙해지면 사용하도록 하자.

YAML 의 목적은 사람이 읽고 쓰기 쉽게 하기 위함인데 익숙하지 않으면 정말 고통스러울 수 있다 …

6. 불리언(Boolean)


5

따옴표(')를 쓰면 String 이 되기 때문에 절대 쓰지 말자.

비단 불리언 뿐만 아니라 숫자에도 따옴표를 붙이면 String이 된다.

  • yes = true = True = TRUE

  • no = false = False = FALSE

7. 멀티라인 값


6

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 를 쓴다면, 아래 확장 플러그인을 설치하면 유용하다.


© 2022. All rights reserved.