⌨️ IaC

    [Ansible] Template 주석: ansible_managed

    ✔️ 템플릿 주석 관습적으로 파일 앞에 주석 붙여놓음 => 경고의 목적 예시 #이 파일은 Ansible에 의해 만들어 졌습니다. #직접 수정하지 마세요. 기법을 사용해서 수정 가능 Ansible managed : Ansible이 관리하고 있는 파일이라는 뜻. 직접 수정하지 않도록 사용자에게 경고를 줌 어떤 값을 넣을지는 사용자가 설정할 수 있음 일반적으로 ansible 설정 파일에 선언 📝ansible.cfg 언제, 어떤 시스템(호스트)에서, 어떤 사용자(uid)에 의해 만들어졌는지 남게됨 [defaults] ansible_managed = Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S by {uid} on {host} 📝templates/port.cnf..

    [Ansible] 블록(Block), 태그(Tag)와 작업제어(Step)

    📌INDEX 블록(Block) 태그(Tag) 작업 제어(Step) ✔️ 블록(Block) Blocks 블록이란? 여러 작업(task)을 묶어 놓은 그룹 playbook 키워드 블록의 기능 여러 작업에 공통의 키워드를 부여할 수 있음(ex: 조건문) block, rescue, always 블록을 이용해 오류 처리를 할 수 있음 => 자주 사용되지는 X block 블록은 항상 실행 rescue 는 block 블록의 오류가 있을 때만 실행 playbook은 원래 중간에 task가 실패하면 play가 중단됨 실패했을 때, 중단되지 않고 rescue로 넘어감(rescue 실행) 예: 어떠한 작업이 실패할 가능성이 있다고 판단되는 경우 block으로 묶고, 오류를 해결하기 위한 작업을 rescue에 always 는..

    [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 접속했던 호스트를 기록(핑거프린트) 한번 기록되고 나면 이후 접속할 때 물어보지 않음 계정을 ..

728x90