목록전체 글 (112)
컬쥐네 다락방
Container 핵심 기술 Cgroup: Control Group(리소스 양) Namespace: Isolation IPC NS: IPC PID NS: Process Network NS: Network UID NS: User/Group Mount NS: Mount Point UTS NS: Hostname Layered Filesystem Docker = Docker Engine Docker CE: Community Edition Docker EE: Enterprise Edition Docker 버전 관리의 변화 0.X -> 1.X(1.13.X) -> 17.04 -> 20.10 Docker Engine 설치 https://docs.docker.com/engine/install/ubuntu/ sudo ap..

IaC를 이용한 클라우드 환경에서의 Wordpress 자동화 배포 목차 프로젝트 개요 1-1) 목표 1-2) 진행 기간 1-3) 인프라 구축 환경 1-4) 아키텍쳐 구성 AWS 환경 배포 2-1) Vagrant 환경 구축 2-2) Ansible 환경 구축 2-3) Ansible Playbook 작성 2-4) Terraform 환경 구축 2-5) Terraform 파일 작성 2-6) Terraform 실행 결과 확인 1. 프로젝트 개요 1-1) 목표 Terraform, Ansible을 이용해 클라우드 환경에서 AWS와 Azure를 활용한 Wordpress 자동화 배포를 구축해본다. 1-2) 진행 기간 2022.04.27(수) ~ 2022.04.29(금) 1-3) 인프라 구축 환경 Linux Terrafor..
Provisioner 테라폼 프로비저너(provisioner)는 테라폼을 실행할 때 부트스트랩, 구성 관리 또는 정리 작업을 수행하기 위해 로컬 시스템이나 원격 시스템에서 스크립트를 실행하는데 사용된다. 프로비저너에는 로컬 시스템에서 스크립트를 실행하는 local-exec , 원격 리소스에서 스크립트를 실행하는 remote-exec, 원격 리소스에서 셰프 클라이언트를 실행하는 chef 및 원격 리소스로 파일을 복사하는 file 등이 있다. resource "aws_instance" "web" { # ... provisioner "local-exec" { command = "echo The server's IP address is ${self.private_ip}" } }프로비저너 종류 file: ..
출력 값 terraform output 명령어를 입력하거나, 테라폼의 Apply가 끝나면 output.tf에 있는 값들이 화면에 출력된다. ## 테라폼 적용이 종료되고 유동 IP와 퍼블릭 IP가 출력되는 output.tf output "app_server_elastic_ip" { value = aws_eip.app_server_eip.*.public_ip } output "app_server_public_ip" { value = aws_instance.app_server.*.public_ip } terraform output 로컬 값 로컬 변수를 입력해놓고 어디서든 변수를 사용할 수 있다. locals { common_tags = { Name = "My Terraform" project_name = va..

Terraform HCL: Hashicorp Configuration Language DSL: Domain Specific Language Workflow 코드 작성(Write) 계획(Plan) 적용(Apply) 프로바이더 https://registry.terraform.io/browse/providers 설치 terraform 설치 https://www.terraform.io/downloads sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo yum -y install terraform terraform --versionaws-cl..

AWX Ansible 위에 구축된 웹 기반의 인터페이스 목적: 실행 / 모니터링 AWX: RedHat Ansible Tower 제품의 Upstream CentOS --up--> RHEL --up--> Fedora RHEL --> CentOS Stream --> Fedora Ansible Tower --> AWX Ubuntu --> Debian AnsibleWorks -> AWX AWX 설치 Docker 설치 https://docs.docker.com/engine/install/centos/ sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.r..
Vault 파일, 일부 텍스트를 암호화 파일 수준 플레이북 전체 변수 파일 include/import 작업 파일 텍스트 수준 변수 값 Vault Password: AES 단일 패스워드 --ask-vault-pass --vault-password-file 멀티 패스워드 --vault-id ansible-vault 명령 ansible-vault create: 암호화될 빈 파일 생성 decrypt: 암호화된 파일 복호화 edit: 암호화된 파일 수정(vi) view: 암호화된 파일 확인 encrypt: 평문 파일 암호화 rekey: Vault 패스워드 변경 encrypt_string: 텍스트 암호화ansible-vault encrypt_stringhello world[ctrl-d][ctrl-d]hello wo..
역할 https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#playbooks-reuse-roles 역할 생성 --> 통합 --> 플레이북 통일화된 구조 mkdir roles ansible-galaxy init common --init-path roles. └── roles └── common ├── defaults │ └── main.yml ├── files ├── handlers │ └── main.yml ├── meta │ └── main.yml ├── README.md ├── tasks │ └── main.yml ├── templates ├── tests │ ├── inventory │ └── test.yml └─..