728x90
728x90
https://github.com/seongwoo-choi/ansible_terraform_packer AWS 구성도 배스천 호스트와 관리 노드를 오토 스케일링 그룹으로 관리하고 EFS 를 사용해서 /var/www/html/wordpress 를 관리하는 인프라를 구현하고자 한다. AWS 사용 서비스 VPC Security Group RDS ASG, Launch Template, ALB, Target Group EFS EC2 Terraform 키 페어 생성 resource "aws_key_pair" "app_server_key" { key_name = "app_server_key" public_key = file("/Users/csw/.ssh/id_rsa.pub") } file 함수를 사용하여 id_rsa..
count 공식 문서: https://www.terraform.io/language/meta-arguments/count count 를 사용하면 그 개수만큼 리소스가 생성된다. resource "aws_instance" "server" { count = 4 # create four similar EC2 instances ami = "ami-a1b2c3d4" instance_type = "t2.micro" tags = { Name = "Server ${count.index}" } } 떡하니 count 로 인스턴스 늘리는 게 끝이 아니라 해당 리소스와 관련된 모든 리소스에서 count 에 관련된 작업들을 해줘야 한다. resource "aws_eip" "app_server_eip" { count = var...
모듈 공식 문서: https://registry.terraform.io/browse/modules 자주 사용되는 리소스들의 모음을 모듈이라고 부른다. 루트 모듈(https://www.terraform.io/language/modules)?? 실행되는 하나의 큰 테라폼 폴더, 그냥 내가 만든 테라폼 파일들의 모음을 루트 모듈이라고 부른다. 차일드 모듈? 퍼블리시 모듈? 레지스터리에 공개된 모듈들을 뜻함 module "myvpc" { source = "..." ...입력 변수... } terraform init module "vpc" { source = "terraform-aws-modules/vpc/aws" name = "app_vpc" cidr = "10.0.0.0/16" azs = ["ap-northe..
출력값 공식 문서: https://learn.hashicorp.com/tutorials/terraform/aws-outputs?in=terraform/aws-get-started how 🐳 ~/terraform/01 $ cat output.tf output "instance_id" { description = "ID of the EC2 instance" value = aws_instance.app_server.id } how 🐳 ~/terraform/01 $ terraform output app_server_ip = "3.38.88.206" 로컬값 테라폼 내부에서만 사용하는 변수, 스코프가 테라폼 내부에만 잡혀있다고 생각하면 된다. input variable 이나 output 과는 다르다. 함수 test..
공식 문서: https://www.terraform.io/ CentOS/RHEL 에 테라폼 설치하기 $ sudo yum install -y yum-utils $ sudo yum-config-manager --add-repo $ sudo yum -y install terraform AWS CLI 설치 아마존 문서: htps://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html aws configure 명령어로 본인 AWS 계정의 Access key 와 Secret key 를 등록한다. aws sts get-caller-identity 명령어를 입력했을 때 사용자 계정 정보가 나타나면 올바르게 작동하고 있는 것이다. [va..
Vault 파일, 일부 텍스트를 암호화 파일 수준 플레이북 전체 인벤토리 변수 파일 include/import 작업 파일 Vault Password: AES 대칭키 알고리즘을 사용 단일 패스워드: 모든 파일을 똑같은 패스워드를 사용하여 암호화 --ask-vault-pass --vault-password-file 멀티 패스워드: 담당하는 업무 별로 서로 다른 패스워드를 사용하여 암호화 --vault-id ansible-vault create [vagrant@controller 11_vault]$ ansible-vault create encrypt.yml New Vault password: Confirm New Vault password: decrypt [vagrant@controller 11_vault]$..