반응형

Ansible을 작성할 때 YML 파일을 작성해 자동화를 시켜준다. 이를 통해 할 수 있는 작업들은 다음 페이지에 정리해 놓았으니 참고 바라며, 여기에서는 YML파일 작성 요령에 대해서 알아보도록 하자.

 

[Ansible 이론] Ansible이란?

Ansible Ansible은 오픈소스 자동화 도구로, 시스템 구성 관리, 응용 프로그램 배포, 작업 간소화, 서버 프로비저닝 등 다양한 작업을 수행할 수 있다. 리눅스, macOS, Windows 등 다양한 플랫폼에서 사용

easyitwanner.tistory.com

목차

  1. YML파일 작성 요령
  2. YML파일로 명령어 자동화

YML파일 작성 요령

YML(YAML) 파일은 "YAML Ain't Markup Language"의 약자로, 데이터 직렬화 형식 중 하나다. YML 파일은 설정 파일, 데이터 교환, 애플리케이션 간 정보 전달 등 다양한 용도로 사용된다. YML 파일 작성 요령은 다음과 같다.

1. 들여쓰기
YML 파일은 들여쓰기(indentation)를 사용하여 계층 구조를 표현한다. 들여쓰기는 공백 문자(space)를 사용하며, 권장하는 공백 문자 수는 2개다. 탭(tab)은 사용하지 않는 것이 좋다.

2. 키-값 쌍(기본구조)
YML 파일의 기본 구조는 키-값 쌍(key-value pair)이다. 키와 값 사이에는 콜론(:)을 사용하며, 콜론 뒤에는 공백을 두어야 한다.

key: value


3. 목록
목록은 하이픈(-)을 사용하여 표현한다. 하이픈 뒤에는 공백을 두어야 한다. 같은 계층의 목록 항목은 같은 수의 공백으로 들여써야 한다.

- item1
- item2
- item3

4. 딕셔너리: 딕셔너리는 키-값 쌍의 집합으로, 들여쓰기를 사용하여 표현한다.

key1:
  subkey1: value1
  subkey2: value2
key2:
  subkey1: value3
  subkey2: value4

5. 주석
YML 파일에서 주석은 샵(#) 기호를 사용하여 작성한다. 주석은 해당 줄의 시작 부분에도 작성할 수 있고, 데이터 뒷부분에도 작성할 수 있다.

# 이것은 주석이다.
key: value # 이것도 주석이다.

6. 문자열
YML에서 문자열에 따옴표를 사용하지 않아도 된다. 하지만, 특수 문자를 포함하는 문자열이나 콜론(:) 등의 기호가 포함된 경우에는 따옴표로 묶어주는 것이 좋다. 작은 따옴표(')와 큰 따옴표(") 모두 사용할 수 있다.

7. 다중 라인 문자열
YML에서 여러 줄의 문자열을 작성할 때는 파이프(|) 또는 꺾쇠(>)를 사용한다. 파이프는 개행을 유지하고, 꺾쇠는 개행을 공백으로 변환한다.

multiline1: |
  line1
  line2

YML파일로 명령어 자동화

YAML에서 명령은 용도와 컨텍스트에 따라 몇 가지 다른 방법으로 작성할 수 있다. 다음은 YAML 파일에 명령을 작성하는 몇 가지 일반적인 방법이다.

 

1. 셸
YAML 파일에서 셸 명령을 실행하려면 command 또는 args 필드를 사용하여 실행할 명령과 인수를 지정한다. 

spec:
  containers:
    - name: my-container
      image: my-image
      command: ["/bin/sh", "-c", "echo hello world"]

위의 예에서 command 필드는 실행할 셸 명령을 지정하는 데 사용된다(echo hello world).


2. Kubernetes
Kubernetes YAML 파일에서 kubectl 명령줄 도구를 사용하여 명령을 지정할 수 있다.

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
    - name: my-container
      image: my-image
      command: ["/bin/sh", "-c"]
      args: ["kubectl get pods"]

위의 예에서 command 필드는 실행할 셸 명령을 지정하는 데 사용되고(/bin/sh -c) args 필드는 실행할 kubectl 명령을 지정하는 데 사용된다(kubectl 포드 가져오기).


3. Ansible
Ansible 플레이북 YAML 파일에서 shell 또는 command 모듈을 사용하여 명령을 지정할 수 있다.

- name: Run command on remote hosts
  hosts: all
  tasks:
    - name: Execute command
      shell: echo hello world

위의 예에서 shell 모듈은 실행할 쉘 명령을 지정하는 데 사용된다(echo hello world).


이상으로 YML파일 작성 요령에 대해 알아보았으며, Ansible이 주로 다뤄질 예정으로 앞으로 "실습" 카테고리에서 실 사용 예를 보여줄 것이다. 추가로 Ansible에서 보통 shell: 을 통해 명령어를 작성하는데 자주 쓰는 명령어들은 모듈을 만들어 놓아 쉽게 사용할 수 있도록 하였다. 모듈들은 다음 페이지에서 찾을 수 있다.

 

https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.html

 

반응형