EC2 인스턴스에 접속하는 방법은 총 3가지가 있다. 1. AWS 웹페이지에서 CLI 사용하기 2. ssh 원격접속하기 3. (Window의 경우) PuTTY를 사용하여 원격 접속하기 AWS 웹 페이지에서 제공하는 방식 EC2 인스턴스 대시보드 페이지에 접속한다. 실행 중인 인스턴스를 선택하고, 상단의 연결 버튼을 누른다. EC2 인스턴스 연결을 선택하고 연결 버튼을 누른다. 웹페이지에서 바로 CLI를 사용할 수 있다. ssh 원격 접속하기 원격 접속을 위해서는 인스턴스 생성할 때 사용했던 key 파일이 필요하다. user 사용자 read only 만 가능하게 권한을 변경했다. user@cccr03-350XCJ-350XCR:~$ chmod 400 minjee_key.pem user@cccr03-350XC..
Cloud Engineering
인스턴스란 EC2에서 사용하는 가상화 서버이다. 인스턴스는 1개에서 수천개로 확장할 수 있으며, 모든 region에서 사용할 수 있다. 또한 EC2 인스턴스에서 사용하는 블록기반 스토리지를 EBS(Elastic Block Storage)라고 한다. 인스턴스 시작하기 인스턴스 시작을 누르면 새로운 인스턴스를 생성할 수 있다. 인스턴스 이름을 정한다. AMI 이미지 선택하기 사용할 OS 이미지를 선택할 수 있다. AMI란, Amazon Machine Image로 EC2 인스턴스를 만들 때 사용하는 이미지 파일이다. 기존에 있는 이미지 파일도 사용할 수 있으며, 직접 커스텀한 AMI 이미지 파일도 사용할 수 있다. 나의 경우 Amazon Linux로 프리티어 사용할 수 있는 것으로 설정했다. 네트워크 설정 다..
Handler (핸들러) 작업을 실행 후 작업에 대한 변경이 있으며, notify 를 설정한 경우에만 핸들러가 실행된다. 핸들러는 notify: 로 설정한다. Ansible 공식 문서의 예제는 다음과 같다. --- - name: Verify apache installation hosts: webservers vars: http_port: 80 max_clients: 200 remote_user: root tasks: - name: Ensure apache is at the latest version ansible.builtin.yum: name: httpd state: latest - name: Write the apache config file ansible.builtin.template: src: /..
Ansbile 의 플레이북 파일을 작성할 때 조건문으로 작업을 제어할 수 있다. Ansbile에서는 when 이라는 키워드를 사용하여 조건을 걸 수 있다. 또한 비교연산자 및 키워드를 이용하여 값을 비교할 수 있다. 해당 조건문이 참이면 작업을 실행하고, 거짓이면 실행하지 않는다. 키워드 부호 의미 lt = greater or equal e =, == equal ne != not equal 1. 문자열 검사하기 해당 문자열과 일치하는지 / 포함되어 있는지 확인한다. match("PATTERN") : 패턴과 전체 문자열이 일치하는지 확인한다. Bool 값을 리턴한다. search("PATTERN") : 패턴이 문자열에 있는지 확인한다. Bool 값을 리턴한다. - hosts: ansi-node1 vars:..
반복문 (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 변수를 작성할 ..
Playbook 이란 여러 호스트들을 대상으로 반복해야 하는 작업, 재사용이 필요한 작업, 구성 관리 등이 필요할 때 Playbook을 정의해서 사용할 수 있다. Playbook 은 멱등성이라는 특징을 가진다. 멱등성이란 Ansible이 작업을 할 때 작업 상태가 원하는 최종 상태로 만들어진 경우 작업을 더 이상 반복하지 않는 특성이다. 그러나 멱등성이 적용되지 않는 몇몇 모듈들이 존재한다. 멱등성 예외 모듈 : command, shell, raw 같은 명령 모듈 또는 service 재시작 모듈은 해당하지 않는다. Playbook 의 구성 Playbook : 하나 이상의 Play를 가진다. Play: 하나 이상의 Task로 이루어져있다. Task : 하나의 Module과 Module의 옵션 및 arugm..