분류 전체보기

반복문 (loop) Playbook 에서 반복되는 작업을 수행하기 위해서 반복문을 사용할 수 있다. 반복문은 loop 로 표기한다. 주의할 점은 반복문은 작업의 하위 옵션이 아니라, 작업을 어떻게 제어할지에 대한 설정이므로 실행할 모듈과 같은 라인에 써주어야 한다 ! 또한 다른 프로그래밍 언어와 다르게, Playbook 에서 loop 문을 사용할 때 list 를 참조하는 변수 명은 항상 item 으로 고정해서 사용한다. 반복문을 이용하여 간단하게 리스트를 출력해보는 플레이북 정의 파일이다. - hosts: ansi-node1 tasks: - debug: msg: "{{ item }}" loop: ["linux", "ubuntu", "window", "mac"] 다음과 같이 반복문에 사용할 리스트를 변수명..
Fact (팩트 변수) 란? 관리하는 노드의 정보를 가지고 있는 변수이다. 이 정보에는 운영체제, 로컬 변수, IP 주소, NIC 등의 정보가 포함된다. fact 변수는 setup 모듈을 이용해서 정보를 확인할 수 있다. Adhoc 과 플레이북을 통해 setup 모듈을 실행할 수 있다. 모든 노드들에 대한 팩트변수 내용 확인하기 ansible all -m setup 팩트 변수 이름 참조하기 setup 모듈을 이용해서 ansible_ 접두사가 붙은 지정된 변수 이름으로 참조하면 원하는 팩트변수의 정보를 얻을 수 있다. Adhoc 명령어로 팩트 변수 참조하는 예시 $ ansible ansi-node1 -m setup -a "filter=ansible_distribution” -m 옵션으로 모듈을 지정하고, ..
변수 정의하기 Ansible에서 변수를 정의할 수 있는 곳은 다음과 같다. 플레이북 외부 참조 파일 인벤토리 파일 명령의 -e 옵션 Ansible 에서는 변수를 key, value 형태로 정의한다. Playbook 에서 변수의 우선 순위 동일한 변수명을 가진 경우 플레이북에서 변수가 참조되는 우선순위는 다음과 같다. (우선 순위 높은 순으로 정렬되었다.) -e옵션으로 변수 지정 > 플레이북 vars_files 변수 > 플레이북에 정의된 변수 > host_vars 디렉토리의 호스트 변수 > Inventory 의 호스트 변수 > group_vars directory의 그룹 변수 > Inventory 의 그룹변수 1. 인벤토리 파일에 변수 정의하기 인벤토리 파일에서 host 변수 및 group 변수를 작성할 ..
·Algorithm (PS)
https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 시간초과 풀이 단순하게 구현했더니 시간초과 난다 ㅎㅎ import sys input = sys.stdin.readline r, c = map(int, input().split()) board = [] for i in range(r): data = input() temp = [] for j in range(c): temp.append(data[j]) board.append(temp) dx =..
Playbook 이란 여러 호스트들을 대상으로 반복해야 하는 작업, 재사용이 필요한 작업, 구성 관리 등이 필요할 때 Playbook을 정의해서 사용할 수 있다. Playbook 은 멱등성이라는 특징을 가진다. 멱등성이란 Ansible이 작업을 할 때 작업 상태가 원하는 최종 상태로 만들어진 경우 작업을 더 이상 반복하지 않는 특성이다. 그러나 멱등성이 적용되지 않는 몇몇 모듈들이 존재한다. 멱등성 예외 모듈 : command, shell, raw 같은 명령 모듈 또는 service 재시작 모듈은 해당하지 않는다. Playbook 의 구성 Playbook : 하나 이상의 Play를 가진다. Play: 하나 이상의 Task로 이루어져있다. Task : 하나의 Module과 Module의 옵션 및 arugm..
Ansible의 설정파일 Ansible의 설정파일은 ansible.cfg 에 적을 수 있다. 작동되는 방식에 대해 설정할 수 있다. 그런데 Ansible은 설정파일의 우선순위에 따라서 적용되는 설정이 다르다. 즉, 우선순위가 높은 설정을 기준으로 설정된다. Ansible 설정파일의 우선순위 1. ANSIBLE_CONFIG 환경 변수 2. 현재 디렉토리의 ansible.cfg 3. 홈 디렉토리의 ansible.cfg 4. /etc/ansible/ansible.cfg 예를 들어서 환경변수가 없으면 현재 디렉토리의 ansible.cfg가 실행될것이며, 현재 디렉토리에도 설정파일이 없으면 홈 디렉토리에 있는 설정 파일이 실행될 것이다. 아무것도 설정파일을 따로 만들지 않는 경우에는 /etc/ansible/ans..
Ad-Hoc 명령 관리하는 노드에 단일 작업을 수행할 때 사용한다. 반복적이거나 2개 이상의 작업을 하는 경우에는 Playbook 으로 수행한다. ansible [PATTERN] -m [MODULE] -a "[MODULE OPTIONS/ARGUMENT]" 예시 다음은 관리 노드 중 하나인 ansi-node2 라는 호스트를 재부팅시키는 Ad-Hoc 명령이다. $ ansible ansi-node2 -m reboot 현재 Ansible에서 사용할 수 있는 모든 모듈에 대한 정보 확인 $ ansible-doc -t module -l 특정 모듈에 대한 정보 확인하기 $ ansible-doc [MODULE_NAME] Ad Hoc 명령 vs Ansible Playbook 다음 그림은 동일한 작업을 수행하는 Ad Ho..
Inventory 란 Ansible이 관리하는 호스트들의 목록에 대해 설정하는 파일이다. 호스트들을 그룹 및 중첩 그룹으로 묶어서 관리할 수 있다. 인벤토리 파일은 INI , YAML 형식으로 정의할 수 있다. Default 인벤토리 파일 위치 : /etc/ansible/hosts 인벤토리를 지정하지 않은 경우 Default 인벤토리에서 참조된다. Inventory 조회하기 new-inventory 파일 예시 ansi-master1 # control host [group1] # 그룹명 ansi-node1 # 해당 호스트 ansi-node2 [group2] ansi-node3 [total-group:children] group1 group2 중첩 그룹을 지정할 때는 [중첩그룹이름:children] 이라고 ..
minjiwoo
'분류 전체보기' 카테고리의 글 목록 (24 Page)