티스토리 뷰
yaml 기본 내용
yaml syntax
- 사람이 쉽게 읽을수 있다는 컨셉으로 개발된 데이터 양식
>> 구조화된 양식
- XML 이나 JSON 보다 읽기 쉽다
- 계층구조로 되어 있다. 부모 자식간의 관계
yaml 문서의 시작은 '---' 로 시작한다, 생략할수 있다.
yaml 문서의 끝은 '...' 으로 끝난다. 보통 생략한다.
1. 주석은'#' 으로 시작한다.
2. 기본자료형은 리스트 및 딕셔너리(해시)로 표현
3. 리스트형은 하이픈(-) 으로 시작, 하이픈대신 대괄호를 사용해도 된다.
4. 들여쓰기를 일정한 간격으로 해야 한다.
>>> 들여쓰기가 맞지 않으면 에러가 발생한다.
5. yaml 에서는 tab 을 사용하면 오류가 난다
>>> 스페이스로 해야한다
6. 들여쓰기는 보통 2칸을 많이 사용한다.
7. 딕셔너리는 key: value 로 표현한다. 콜론뒤에는 보통 1칸을 띄운다.
>>> 파이썬에서는 문제 없다
8. yaml 파일은 확장자를 yaml 또는 yml 사용한다.
9. yaml 파일에서 하위레벨(종속관계)은 들여쓰기로 구분된다
---
# A list of tasty fruits
- Apple
- Orange
- Strawberry
- Mango
...
=> ["Apple","Orange","StrawBerry","Mango"] 로 표현가능
# An employee record
martin:
name: Martin D'vloper
job: Developer
skill: Elite
=> {"martin": {"name": "Martin D'vloper","job": "Developer","skill": "Eilte"}}
# Employee records
- martin:
name: Martin D'vloper
job: Developer
skills:
- python
- perl
- java
### - 시작하면 하나의 list
- cane:
name: Tabitha Bitumen
job: Developer
skills:
- php
- c
=> {"martin": {"name": "Martin D'vloper","job": "Developer","skills": ["python","perl","java"]},
"cane": {"name": " Tabitha Bitumen","job": "Developer","skills": ["php","c"]}}
* yaml 을 위한 vim 설정파일은 일반적으로 아래와 같이 작성한다
$HOME/.vimrc
------------
syntax on autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab autoindent
* nano 편집기를 위한 설정파일
$HOME/.nanorc
배열은 [ ]
>>> fruits=["apple","orange","mango"]
>>> print(fruits);
['apple', 'orange', 'mango']
dictionary는 배열이 없다
>>> person={"name":"kildong","age":30,"addr":"seoul"}
>>> print{type(person)}
set([<type 'dict'>])
person={"name":"kildong","age":30,"addr":"seoul"}
key value key value key value 구조로 만들어 진다
좌측 : >>> key
: 우측 >>> value
>>> print(person['name'])
kildong
>>> 배열이 상관 없으므로 보기 쉬운형태로 따로 출력
딕션어리는 key로 출력한다
>>> p={"martin": {"name": "Martin D'vloper","job": "Developer","skill": "Eilte"}}
>>> print(type(p));
<type 'dict'>
>>> print(p['martin'])
{'skill': 'Eilte', 'job': 'Developer', 'name': "Martin D'vloper"}
>>> print(p['martin']['job'])
Developer
martin은 key
p 는 변수
대괄호 안에는 key를 넣는다
>>> x={"martin": {"name": "Martin D'vloper","job": "Developer","skills": ["python","perl","java"]},
... "cane": {"name": " Tabitha Bitumen","job": "Developer","skills": ["php","c"]}}
>>> type(x)
<type 'dict'>
>>> print(x['cane']);
{'skills': ['php', 'c'], 'job': 'Developer', 'name': ' Tabitha Bitumen'}
>>> print(x['cane']['skills'];
File "<stdin>", line 1
print(x['cane']['skills'];
^
SyntaxError: invalid syntax
>>> print(x['cane']['skills']);
['php', 'c']
yaml 실습
▶ hosts 와 tasks 는 깊이가 같아서 들여쓰기 X
▶ task 의 시작은 항상 리스트로 시작한다
:set cursorcolumn >> 줄 맞추자
[devops@control test]$ ansible-playbook makeuser.yaml
▩ 에러발생함
set sw=2
shift + v 로 블록지정
shift + < or >
set autoindent >> 자동 들여쓰기 [ 괌형 혼자 꿀빰 ]
>> 새로 만들어서 실행
---
- name: test playbook
hosts: all
tasks: # task 의 시작은 항상 리스트로 시작한다.
- name: present xuser1
user:
name: xuser1
comment: jang nara
uid: 2000
group: wheel
state: present
- name: present xuser2
user:
name: xuser2
state: present
...
괌형이 뒤에서 괴롭힘
'Ansible' 카테고리의 다른 글
Visual Studio Code (0) | 2024.02.08 |
---|---|
Ansible 환경 변수 / DB 연동 (0) | 2024.02.08 |
Ansible 의 기본 동작 (0) | 2024.02.07 |
공개키 옛날처럼 전달 / PGP,GPG (0) | 2024.02.07 |
Ansible 시작 [ 공개키 / 개인키 ] (0) | 2024.02.06 |