Ansible 실습 | vars_files를 사용하여 Wordpress & MySQL 배포 Playbook 작성
·
IaC/Ansible 실습
vars_files를 사용하여 Wordpress & MySQL 배포 Playbook 작성 1. vars_files 사용하기 2. 변수를 계층적으로 구성하기 vars_files 키워드를 통해 변수 파일을 지정할 수 있습니다. 변수 파일을 사용하면, 변수를 변경할 때 Playbook 파일을 열어서 수정할 필요 없이 변수 파일만 수정하면 되기 때문에 편리하다는 이점이 있습니다. vars_files가 vars보다 우선순위가 더 높습니다. 그렇기 때문에 동일한 이름의 변수가 존재하면 vars_files의 변수가 우선 적용됩니다. 1. 변수 파일 딕셔너리 변수 형식을 사용하여 변수를 계층적으로 구성합니다. deploy_vars_file.yaml db: socket: "/var/run/mysqld/mysqld.soc..
Ansible 실습 | Docker로 Apache 웹 서비스 배포 Playbook 작성
·
IaC/Ansible 실습
Docker로 웹 서비스 배포하는 Playbook 작성 Docker 설치 Apache 웹 서비스 컨테이너 생성 웹 서비스 접근되는지 확인 ◆ 참고 : Ubuntu에 Docker 설치하기 https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu docs.docker.com ◆ Docker 관련 모듈 확인 ansible-doc -l | grep docker 1. Playbook 작성 - name: Create Docker Containers for Apache hosts: 192.168.200.102 tasks: - name: Install related Packages apt: update_cache: yes name: a..
Ansible 실습 | vars를 사용하여 Wordpress & MySQL 배포 Playbook 작성
·
IaC/Ansible 실습
vars를 사용하여 Wordpress 배포/제거 Playbook 작성 - 변수 반복적으로 사용하거나, 고정되지 않고 변경될 수 있는 값을 변수로 지정하면, 변경이 필요할 때 변수 값만 변경하여 쉽게 배포할 수 있습니다. 변수명으로는 예약된 키워드를 사용할 수 없고 문자/숫자/_(underscore)만 사용이 가능하며, 숫자로는 시작할 수 없습니다. 변수를 참조할 때는 반드시 {{ }} 이중 중괄호를 사용하며, 변수가 참조하는 모든 값을 따옴표로 인용합니다. vars는 Play에서만 유효햡니다. 즉 vars의 유효 범위는 Play입니다. tasks(작업)에 vars를 지정할 수도 있습니다. 이때 vars의 유효 범위는 해당 작업입니다. 1. Wordpress & MySQL 배포 Playbook - name..
Ansible 실습 | Wordpress 배포/제거 Playbook 작성(apache, mysql)
·
IaC/Ansible 실습
Wordpress 배포/제거 Playbook 작성 (apache, mysql) 1. Wordpress 배포 Playbook - name: Wordpress Deployment hosts: 192.168.200.102 tasks: - name: Install MySQL Package apt: update_cache: true name: mysql-server, python3-pymysql state: present - name: Starting MySQL Service service: name: mysql state: started enabled: yes - name: Create Wordpress Database mysql_db: login_unix_socket: /var/run/mysqld/mysqld..
Ansible 실습 | 하나의 Managed Node에 Wordpress, Apache, Mysql 세팅 (feat. Ad-hoc)
·
IaC/Ansible 실습
Ad-hoc 커맨드를 사용하여 하나의 Managed Node(192.168.200.101)에 Wordpress, Apache, Mysql 세팅하기 관련 패키지 설치 서비스 스타트 되었는지 확인 wordpress 파일 다운로드 받아 아카이브 풀기 wp-config.php 파일 수정 db 생성 db 사용자 세팅 1. DB(Mysql) 서버 구성 # mysql_user, mysql_db 모듈 사용하기 위한 요구사항 : pymysql 설치 ## when use module 'apt' ansible -m apt -a 'name=mysql-server,python3-pymysql state=latest update_cache=true' -b 192.168.200.101 ## when use module 'pip' ..
Ansible | 개요, 용어, 아키텍처
·
IaC/Ansible 실습
1. Ansible이란? Ansible은 애플리케이션, IT 인프라 같은 것들을 자동화하는 IaC 도구입니다. 시스템 구성, 소프트웨어 배포, CI/CD, 롤링 업데이트 등 명령어로 할 수 있는 모든 것들을 Ansible도 똑같이 할 수 있습니다. Ansible은 마스터 서버가 따로 없고 에이전트를 사용하지 않습니다. 에이전트를 사용한다는 것은 관리 대상이 되는 시스템에 별도로 프로그램이 설치되어 있어야 한다는 뜻입니다. 반면 Ansible은 SSH 전송 방식을 이용하여 원격의 시스템 또는 플랫폼을 관리합니다. 현재 대부분의 시스템들은 Unix, Linux를 사용하기 때문에 기본적으로 OpenSSH를 사용합니다. 즉 SSH로 연결이 불가능한 시스템은 없습니다. 그래서 Ansible은 default 통신 ..
IaC | 개요, 장점, 도구 특징 비교
·
IaC/Ansible 실습
1. IaC 개요 docker에서 docker compose, kubernetes에서 menifest 파일이 결국은 IaC입니다. 말 그대로 IaC는 Infrastructure as Code(코드형 인프라)라고 합니다. '인프라'라고 하는 것은 물리적인 형태를 가리키기도 하고 VM을 지칭하기도 합니다. 우리는 물리적인 형태를 제외하고는 명령어나 쉘 스크립트를 이용하여 시스템을 구성 관리하고 운영해왔습니다. 이를 기반으로 하여, IaC는 코드 형태로 인프라를 선언하고 코드를 적용시켜 해당되는 인프라를 배포하는 형태입니다. 이 때 인프라는 물리적인 인프라 위에 전부 다 가상화된, 컨테이너화된 형태의 인프라를 말합니다. 예전의 '엔지니어'는 리눅스 명령어를 치고 윈도우에서 마우스 클릭으로 세팅하는 것이 주 업..
Ansible 설치
·
IaC/Ansible 실습
1. 설치 전 요구 사항 (1) 컨트롤 노드 Python2 또는 Python3가 설치되어 있어야 합니다. Unix 계열이면 아무거나 상관 없습니다. (2) 관리 노드 Python2 또는 Python3가 설치되어 있어야 합니다. SSH 통신이 가능해야 합니다. SFTP를 사용할 수 있어야 합니다. (SSH가 사용 가능하면 SFTP도 사용 가능합니다.) 2. Ansible 설치 ◆ 2.9 버전 설치로 진행됩니다. 최신 버전은 4 버전입니다. 2.9버전부터 3, 4 버전은 크게 달라지는 것은 없습니다. 기능상 차이가 많이 나지 않기 때문에 안정 버전인 2.9 버전으로 설치를 진행하겠습니다. https://docs.ansible.com/ansible/2.9/installation_guide/index.html ..
sudo | sudo를 사용할 수 있는 사용자, Passwordless Sudo 설정 방법
·
IaC/Ansible 실습
1. sudo를 사용할 수 있는 사용자는? 정답 : 배포판마다 다릅니다. (RedHat 계열은 wheel 그룹의 사용자, Debian 계열은 /etc/sudoers에 등록된 사용자) 근본적인 이야기부터 해 봅시다. sudo를 왜 사용하나요? 일반 사용자가 root 권한을 얻기 위해서입니다. 그러면 왜 root 권한을 얻어야 하나요? 대부분의 시스템 관리 작업은 root 권한이 아니면 할 수가 없기 때문입니다. 가령 패키지를 설치하거나, 서비스를 start/restart/stop 하거나, etc/의 대부분의 설정 파일을 변경하는 등의 작업은 root 권한이 없으면 할 수 없습니다. 이처럼 사용자들이 임의적으로 접근 제어(Access Control)를 세팅하는 임의 접근 통제(DAC; Discretionar..
SSH 4 | ssh key passphrase를 매번 입력하지 않고 사용하는 방법
·
IaC/Ansible 실습
5. ssh key passphrase를 매번 입력하지 않고 사용하는 방법은? 정답 : ssh-agent, ssh-add ssh 키 기반 인증을 통해 ssh 접속을 시도하면 접속을 할 때마다 매번 passphrase를 물어보는데, 이것이 상당히 번거롭게 느껴지는 경우가 있습니다. ssh 접속을 자주 하는 경우가 그렇습니다. 특히 Ansible을 다룰 때 수많은 ssh 연결이 필요하게 되는데, ssh 연결을 할 때마다 passphrase를 물어보는 것은 여간 귀찮은 일이 아닙니다. 그렇다고 passphrase를 지정하지 않으면 보안상 큰 위협이 됩니다. 따라서 passphrae는 지정하되, passphrase를 입력하지 않고 ssh 접속을 할 수 있는 방법이 필요한데, 이 때 ssh-agent와 ssh-a..
Greta Lee
'IaC/Ansible 실습' 카테고리의 글 목록