✔️ 실행 순서 ✔️ 초기화 terraform init 프로바이더 플러그인을 설치한다. terraform init은 언제 실행하는가 ? 최초로 프로바이더를 설치할 때 프로바이더 버전을 업데이트할 때 더보기 [vagrant@controller 01]$ terraform init Initializing the backend... Initializing provider plugins... - Finding hashicorp/aws versions matching "~> 3.27"... - Installing hashicorp/aws v3.75.1... - Installed hashicorp/aws v3.75.1 (signed by HashiCorp) Terraform has created a lock file..
✔️ Terraform 구성 파일 .tf : HCL .tf.json : Json 형식 인코딩 Unicode 를 사용해야 한다. 디렉토리 현재 작업 디렉토리 위치에 따라 해당 디렉토리의 .tf, .tf.json 를 모두 읽어서 실행한다. 따라서 특정 작업을 하기 위해서는 디렉토리를 따로 만들고 .tf 파일을 만들어야 한다. 사전 준비 To follow this tutorial you will need: The Terraform CLI (0.14.9+) installed. The AWS CLI installed. AWS account and associated credentials that allow you to create resources. 현재 기준 0.13 ~ 1.x 까지는 호환이 된다. AWS를 이..
✔️ Terraform HashiCorp에서 오픈소스로 개발 중인 인프라스트럭쳐 구축 및 운영의 자동화를 지향하는 IaC 도구이다. Cloud, on-prem의 리소스 모두 구성 가능하다. Human-readable configuration을 지향한다. ✔️ Terraform 주요 기능 코드형 인프라 Terraform은 HCL 구성파일로 정의하며, 이를 통해 인프라의 구성을 코드화하고 버전 관리를 통해 관리할 수 있다. 실행 계획 실제로 배포하기 전에 계획 단계를 통해 수행 할 작업을 미리 확인할 수 있다. (Ansible --check와 비슷) 리소스 종속성 내부적으로는 리소스의 종속성이 있을 수 있다. 예를들어 aws vcp와 ec2를 선언했다 ec2가 vcp를 사용할것이다. 그래서 내부적으로 테라폼..
[Ansible] AWX 설치하기 ✔️ AWX란 ? Ansible 위에 구축된 웹 기반의 인터페이스이다. AWS의 목적은 플레이북의 실행과 모니터링이다. ✔️ Docker 설치 Docker를 이용해 AWX를 설치해보자 우선 Docker를 설치하고 Docker-Compose를 설 nice-engineer.tistory.com AWX의 설치가 정상적으로 완료됐다면 다음과 같은 로그인 화면을 볼 수 있다. 설치 과정에서 ~/aws/installer/invertory 에 설정한 계정명과 패스워드를 이용해 로그인한다. ✔️ AWX 리소스 생성 AWX 리소스를 생성하기 앞서 리소스 간의 관계를 알아보자 Projects : 플레이북이 저장된 디렉토리, 리소스 플레이북을 프로젝트라는 리소스로 만들 수 있다. Inven..
✔️ AWX란 ? Ansible 위에 구축된 웹 기반의 인터페이스이다. AWX의 목적은 플레이북의 실행과 모니터링이다. ✔️ Docker 설치 Docker를 이용해 AWX를 설치해보자 우선 Docker를 설치하고 Docker-Compose를 설치한 뒤 AWX를 설치할 것이다. 사용할 환경은 CentOS 운영체제이며 Docker가 설치되어 있지 않다면 다음 명령을 이용해 Docker를 설치하자 Install Docker Engine on CentOS docs.docker.com 공식 문서는 위와 같다. 아래 명령어를 순서대로 입력하면 도커 설치가 완료된다. sudo yum -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com..
wordpress 배포에 사용할 database.yaml 파일을 열어보자 [vagrant@controller vars]$ cat database.yaml --- database: name: wordpress user: wpadm pwd: P@ssw0rd svc_port: 33060 노출되면 안되는 민감한 DB 데이터들을 볼 수 있다. 그렇다면 플레이북을 공유할 때 이런 데이터들을 쉽게 알아낼 수 없도록 처리할 방법은 없을까? 플레이북 작성에서 이러한 역할을 하는 것이 Vault 이다. ✔️ Vault 데이터를 안전하게 저장하기 위해서 Vault를 사용해야 한다. 파일, 일부 텍스트를 암호화 파일 수준 플레이북 전체 변수 파일 include/import 작업 파일 단일 패스워드 --ask-vault-pas..