Cloud/Ansible
-
Ansible) Playbook 2편Cloud/Ansible 2022. 9. 25. 21:16
Playbook 제어 순차 구조 - 명령이 기술된 순서로 순차적으로 수행하는 구조 선택 구조 - 조건에 따라 명령의 실행순서를 변경할 수 있는 구조 반복 구조 - 특정 명령을 일정 횟수동안 반복해서 수행하는 구조 반복문 Task를 반복해서 동작시킬때 반복문을 이용한다. 모듈의 키워드로 사용하며 with_* 와 loop 키워드를 사용한다. with_item with_nested with_sequence 패키지 관련 모듈은 반복문을 사용하지 않는것을 권장한다. 반복문에서 제공되는 목록을 참조하는 변수명은 항상 item을 사용한다. 조건문(선택문) Task가 특정조건에만 작업을 수행하도록 구성할때 이용한다. 조건문에 변수를 참조할때는 "{{변수명}}" 형식을 따르지 않고 바로 변수명 으로 쓴다. when 키워..
-
Ansible) Ansible 환경 구성해보기 4편Cloud/Ansible 2022. 9. 23. 14:15
실습 환경 : AWS Console (2022/09), Visual Studio Code 실습 목적 : Playbook을 활용해서 Managed Node 관리 [Playbook] 아주 간단한 웹 환경 구현 이전에 ansible 명령으로 구현한 내용을 Playbook과 ansible-playbook 명령으로 구현해보기 이번 구현에서는 /home/ec2-user/work-ansible 디렉토리에서 작업하였습니다. 이전 웹서버 환경 초기화 # remove-webserver.yml --- - name: remove web server hosts: public gather_facts: False become: yes tasks: # managed node httpd stop - name: stop httpd se..
-
Ansible) Playbook 1편Cloud/Ansible 2022. 9. 22. 20:45
Playbook 이란? 인벤토리에 정의된 managed node에서 무엇을 해야할 것인지 (서버구성정보)를 정의한 내용 자동화 절차를 기술한 코드 파일이다. YAML 포맷으로 표현 설정이나 프로세스에 대한 모델 정의를 표현한 최소한의 문법으로 구성 Playbook의 목표는 managed node 그룹을 잘 정의된 Ansible내에서 Task로 불리는 역할(role)에 매핑해 주는것 Playbook 파일 파일명에 대한 특별한 규칙은 없다. 임의의 이름으로 playbook파일을 작성하고 확장자는 .yml 부여 Playbook 실행 ansible-playbook [옵션] -i - 사용자가 지정한 위치의 인벤토리 파일 사용 -e - 추가변수지정, key=value 형식 Playbook 구조 playbook은 p..
-
Ansible) YAMLCloud/Ansible 2022. 9. 21. 20:42
YAML 이란? YAML Ain't Markup Language의 약자 데이터를 표현하는 목적으로 사용하는 script형식 주로 선언정보나 환경설정 정보를 기술하는 목적으로 활용한다. Ansible에서는 Playbook을 작성할때 항상 YAML형식으로 작성한다. YAML 문법 Ansible에서 활용하는 YAML문법 https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html Playbook과 YAML Ansible에서 Playbook의 파일확장자는 .yml로 작성한다. Playbook 파일 시작 부분 Ansible에서 사용하는 YAML파일 시작은 -(대시) 기호3개 (---)로 시작한다. Playbook 최상단에 표시한다. (생..
-
Ansible) Ansible 환경 구성해보기 3편Cloud/Ansible 2022. 9. 21. 20:16
실습 환경 : AWS Console (2022/09), Visual Studio Code 실습 목적 : 여러 모듈을 통해 Control Node에서 Managed Node 관리 [Managed Node 관리 1] 사용자 추가/삭제 User 생성 ansible managed -m user -a "name=worker state=present" --become -i ./work-ansible/hosts # ansible [host패턴] -m user -a "name=[사용자명] state=present" --become -i [hosts 경로] 다음 명령이 정상적으로 적용되면, 각 호스트에 changed : true가 나타난다. User 생성 확인 ansible managed -m shell -a "tail..
-
Ansible) 모듈Cloud/Ansible 2022. 9. 21. 19:17
Ansible에서 모듈 (Module) 이란? 모듈은 하나의 작은 프로그램으로, ansible에서 사용하는 명령어 프로그램으로 볼 수 있다. 모듈은 특정 명령, 소프트웨어 설치, API호출 등 여러가지 기능이 있다. ansible을 이용하여 managed node에 대해 구성관리를 수행하는 실질적인 동작 수행 프로그램 모듈은 namespace 단위로 관리된다. Ansible Document 확인 명령 ansible 모듈의 전체 목록 출력 ansible-doc -l 모듈명에 대한 도움말 출력 ansible-doc 도움말 참고 parameters : 해당 모듈을 사용할때 전달할 수 있는 파라미터에 대한 설명 Attribute : 해당 모듈속성(상태), 모듈 동작시 적용 return value : 해당 모듈이..
-
Ansible) Ansible 환경 구성해보기 2편Cloud/Ansible 2022. 9. 20. 22:07
실습 환경 : AWS Console (2022/09), Visual Studio Code 실습 목적 : Ad-hoc 명령을 통해 Control Node에서 Managed Node 연결을 확인 Control Node의 Managed Node 연결 확인 Control node에서 Managed node와 연결을 하려면 Managed node에 대한 정보를 알고있어야 한다. /etc/ansible/hosts 파일이 인벤토리라면 이 파일에 Managed node에 대한 정보를 기술한다. /etc/ansible/host 파일은 전역으로 사용하는 인벤토리이며 현재 사용자에 대한 인벤토리를 구성하려면 현재 사용자의 작업 디렉토리에 별도의 인벤토리를 작성해서 사용할 수 있다. Ad-hoc 명령 Ansible은 일반적으..
-
Ansible) Ansible 환경 구성해보기 1편Cloud/Ansible 2022. 9. 20. 20:58
실습 환경 : AWS Console (2022/09), Visual Studio Code 실습 목적 : 실습환경 구성도를 통해 Ansible 환경을 구성해본다. Ansible 실습환경구성도 Ansible 실습 참고 내용 Ansible은 Linux 환경에서 설치 가능하다. 제어노드(Control Node)는 Managed Node와 연결 시 SSH를 통해서 연결하기 때문에 제어노드의 SSH key를 Managed Node에 전송한다. AWS EC2 instance 환경에서는 keypair를 이용하여 연결함으로 제어노드에는 Manage Node의 kepair를 모두 가지고 있어야 한다. Ansible 제어노드 구축 NAT 게이트웨이 생성 탄력적 주소 생성 후, 해당 EIP를 할당한 NAT 게이트웨이 생성 E..