전체 글
[Ansible] 핸들러(Handler)
📌INDEX Idempotent(멱등성) 플레이, 작업의 이름(name) 핸들러(Handler) ✔️ Idempotent(멱등성) 명령을 여러번 실행해도 결과가 변하지 않는다는 것 예: start/started => 이미 현재 실행되고 있으면 아무 작업 안함(다시 시작할 필요X) but restarted는 멱등성을 해치는, 바람직하지 않은 방법임 해결방법: 조건문 사용 가능하면 멱등성을 만족하는 방향으로 설계해야함 모든 모듈, 모듈의 파라미터가 멱등성을 만족 하지는 않음 문제가 있는 코드: 24/7 서비스의 경우, 찰나의 순간이지만 서비스가 중단됨 + 세션이 끊어짐 => 실질적인 해결방법이 아님, 멱등성 없는것 - hosts: 192.168.100.11 become: yes #명령어에 -b 옵션 써줄 필..
[Ansible] 반복문(loop)과 조건문(when)
📌INDEX 반복문(loop) 리스트(목록) 반복문 사전 반복문 프로세스 관점 조건문(when) ✔️ 반복문(loop) 공식 문서 키워드를 사용 : 키워드 문서 반복은 기본적으로 task 레벨에서 진행함 : play level에서는 불가, (loop)키워드가 있는 레벨 작업(Task)에서 loop, 'with_', 'until'키워드로 반복문 구성 2.5버전부터 loop 추가됨: 글쓴이가 사용하는 건 2.9 loop 지시어에 리스트가 들어가 있음 반드시 이름이 item이어야함 . for i에서 i와 비슷한 것 🔹 리스트(목록) 반복문 loop 대신, with_items, with_list with_items, with_list 리스트를 사용해 다양한 방법으로 활용 가능 - hosts: 192.168.10..
[Ansible] Playbook으로 WordPress 구성부터 원복까지
구성과정은 Ad-Hoc으로 WordPress 구성부터 원복까지 와 동일하고, 같은 내용을 playbook(.yaml)으로 작성한 것임 📌INDEX 기본 playbook + revert 과정 vars로 작성 template 사용 ✔️ 기본 Playbook + revert 과정 wordpress.yaml - hosts: wp tasks: - yum: name: https://rpms.remirepo.net/enterprise/remi-release-7.rpm state: present validate_certs: no - yum_repository: name: remi-safe file: remi-safe mirrorlist: http://cdn.remirepo.net/enterprise/7/safe/mir..
[Ansible] Ad-Hoc으로 WordPress 구성부터 원복까지
📌INDEX Ad-Hoc으로 WordPress 구성하기 원복하기 ✔️ Ad-Hoc으로 WordPress 구성하기 🐾 들어가기에 앞서.... ansible 모듈을 사용할 때는 요구사항(requirement)를 잘 확인하자 required 파라미터를 잘 확인하자 : 꼭 포함시켜야하는 파라미터 상태(state)는 항상 표시해주는 것이 좋음 1. Inventory 파일 수정하기 (편의를 위해) wp (wordpress) 그룹 생성 [vagrant@controller ~]$ vi inventory.ini [vagrant@controller ~]$ cat inventory.ini 192.168.100.11 192.168.100.12 [wp] 192.168.100.11 2. ~/.ansible.cfg 에 invent..
[Ansible] Ansible SSH Jump : Public Bastion to Private Instance
📌INDEX 인스턴스 구성하기 첫번째 방법(ProxyJump) 두번째 방법(Inventory 파일) ✔️ 인스턴스 구성하기 본 실습의 아키텍처(Architecture)는 다음과 같다. Ansible -> Bastion 으로 SSH 접속할 때와, Bastion -> Private Instance로 SSH 접속할 때 다른 키 페어를 사용할 예정이다. 1. Ansible Controller에서 공개키 복사 (편의를 위해) controller에 생성되어있는 공개키 ~/.ssh/id_rsa.pub를 사용 [vagrant@controller ~]$ cat .ssh/id_rsa.pub ...키 내용... 2. AWS에서 [작업] - [키 페어 가져오기] 복사한 키를 붙여넣기 3. Private Subnet 생성 de..
[Ansible] Ansible 명령어 옵션
📌INDEX Ansible 옵션 ansible-config 명령 모듈 ad-hoc 명령 ✔️ Ansible 옵션 SSH 접속 옵션 -u REMOTE_USER, --user REMOTE_USER : SSH 접속 계정(기본: 현재 사용자) -k, --ask-pass : 옵션 사용 SSH 패스워드 인증 옵션 사용하지 않으면 --> SSH 키 인증 ansible의 기본 인증 방법: SSH 키 인증 권한 상승 옵션 -b, --become : 권한 상승 옵션 사용하지 않으면 --> 권한상승 하지 않음 --become-method sudo: 기본값 su --become-user : 어떤 사용자? root: 기본값 -K, --ask-become-pass : sudo 패스워드 묻기 옵션 사용하지 않으면 --> Passw..
[Ansible] Ansible 구성(Configuration) 파일 및 권한 설정
📌INDEX 구성 파일 권한 상승(Privilege Escalation) ✔️ 구성 파일 Ansible Configuration settings 설정 파일 위치 설정파일에는 우선 순위가 있음 같은 설정에 대해서 어디가 우선 순위가 높은지 우선순위 1) ANSIBLE_CONFIG (environment variable if set) 환경변수 설정 우선 순위가 가장 높기 때문에 어떤 디렉토리에 있든지 적용됨 일반적으로 사용 잘 안됨 2) ansible.cfg : 현재 작업 디렉토리 자주 사용되는 설정 파일 현재 디렉토리에 있을 때만 적용됨 3) ~/.ansible.cfg : 홈 디렉토리 현재 작업 디렉토리인 ansible.cfg와 구분하기 : ansible 앞에 '.' 있음 4) /etc/ansible/an..
[Ansible] 정적 인벤토리 ini, yaml 작성 및 확인
📌INDEX 정적 인벤토리 인벤토리 그룹 호스트 범위 인벤토리 변수 인벤토리 파일 확인 ✔️ 정적 인벤토리 inventory 구축 방법 기본 인벤토리 파일: /etc/ansible/hosts -> 되도록이면 사용하지 않는다 기본 위치에 있는 인벤토리 파일 아니면: -i 옵션 사용 포맷: ini, yaml 기본적으로 ini 사용 playbook은 yaml으로 생성해야함 ini 형식 예시 key=value [Section] key=value key ✔️ 인벤토리 그룹 인벤토리 그룹 [ ]: 인벤토리 그룹 하나의 노드가 여러 그룹에 속할 수 있음 => 1:1 매칭 관계는 아니다 : 공식문서 ansible 명령 시 ip주소 대신 그룹을 지정할 수 있음 inventory 파일에 정의되어 있어야함 ini 예시 ma..
[Ansible] Ansible 설치 및 개요
📌INDEX IaC Ansible Architecture Ansible 설치 Inventory Ansible Module Ad-Hoc 명령 Playbook ✔️ IaC IaC란 Infrastructure as Code(코드형 인프라)의 약자로, 수동 프로세스가 아닌 코드를 통해 인프라를 관리하고 프로비저닝하는 것을 말함 장점 비용 절감 빠른 속도 안정성 재사용성 버전 관리 IaC는 구성 사양을 코드화하고 문서화함으로써 구성 관리(Configuration Management)를 지원 구성 관리 : 패키지 설치, 설정 파일, 파일 복사 등 배포 : 리소스 새로 생성, 리소스 변경, 삭제 , 관리 구성 관리 도구(Tool) Chef Puppet Ansible Saltstack ... 배포(Provisionin..
SSH 인증 방식
📌INDEX SSH 파일 패스워드 기반 SSH 인증 키 기반 SSH 인증 SSH 키 생성 SSH 키 미리받기 서버에 키 등록 SSH 접속 ✔️ SSH 파일 /etc/ssh/ 서버의 키 쌍 : public키, private키 /etc/ssh/ssh_config ssh 서비스 설정파일(클라이언트) /etc/ssh/sshd_config sshd 서비스 설정파일(서버) 패스워드 인증방식 비활성화가 default PasswordAuthentication no 키 기반 인증방식은 활성화가 default GSSAPIAuthentication yes ~/.ssh/ Client(계정)의 키 쌍 ~/.ssh/known_hosts 접속했던 호스트를 기록(핑거프린트) 한번 기록되고 나면 이후 접속할 때 물어보지 않음 계정을 ..
Vagrant 설치 및 기본 사용법 (feat. Chocolatey)
📌INDEX Vagrant란? Vagrantfile Vagrant 명령어 ✔️ Vagrant란? Vagrant는 가상화 인스턴스를 관리하는 소프트웨어이다. IaC 도구 중의 하나 Vagrant를 이용하면 가상 인스턴스를 만들고 실행하는 과정이 매우 빠르고 편리 지원하는 가상화 기술 VirtualBox VMware KVM Linux Container(LXC) Docker Vagrant를 설치하기 위해 Chocolatey를 이용할 예정이다. Chocolatey란? Windows용 패키지 관리자 Chocolatey는 Linux에서의 apt(apt-get), yum이나 macOS에서의 Homebrew처럼 패키지를 설치/업데이트/제거 등 관리하는 데에 사용하는 Windows용 프로그램 Chocolatey 설치(W..
AWS를 이용한 HA(High Availability) wordpress 서비스 배포
💻주제 : AWS를 이용한 HA(High Availability) wordpress 서비스 배포 ✍️작성자 : nayoungs 📅진행 기간: 2022.04.06 ~ 2022.04.08 📌목차 1. 프로젝트 개요 1-1. 프로젝트 주제 선정 동기 및 목표 1-2. 프로젝트 특징 1-3. 프로젝트 환경 2. 프로젝트 과정 2-1. VPC 구성 2-2. 키 페어 생성 2-3. Bastion Host 구성 2-4. RDS 구성 2-5. EC2 인스턴스 생성 2-6. EC2에서 WordPress 구성 2-7. EC2 AMI 생성 2-8. Load Balancing 및 Auto Scaling 구성 2-9. CloudFront 배포 3. 프로젝트 최종 결과 1. 프로젝트 개요 1-1. 프로젝트 주제 선정 동기 및 목..