IaC

IaC/Terraform_테라폼

[Terraform] Module (모듈 작성 및 호출, 모듈 소스 관리)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 5주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. Module테라폼으로 인프라와 서비스를 관리하면 시간이 지날수록 구성이 복잡해지고 관리하는 리소스가 늘어나게 된다. 테라폼의 구성 파일과 디렉터리 구성에는 제약이 없기 때문에 단일 파일 구조상에서 지속적으로 업데이트 할 수 있지만 다음과 같은 문제가 발생한다.테라폼 구성에서 원하는 항목을 찾는 것이 점점 어려워짐리소스들 간의 연관 관계가 복잡해질수록 변경 작업의 영향도를 분석하기 위한 노력이 늘어남개발/스테이징/프로덕션 환경으로 구분된 경우 비슷한 형태의 구성이 반복되어 업무 효율이 줄어듬새로운 프로젝트를 구성하는 경우 기존 구성에서..

IaC/Terraform_테라폼

[Terraform] 프로바이더, State, 워크스페이스

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 4주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 프로바이더테라폼은 terraform 바이너리 파일을 시작으로 로컬 환경이나 배포 서버와 같은 원격 환경에서 원하는 대상을 호출하는 방식으로 실행된다. 이때 ‘원하는 대상’은 호출하는 방식이 서로 다르지만 대상의 공급자 즉, 프로바이더가 제공하는 API를 호출해 상호작용 한다. 여기서 테라폼이 대상과의 상호작용을 할 수 있도록 하는 것이 프로바이더이다.각 프로바이더의 API 구현은 서로 다르지만 이전 포스팅에서 살펴본 테라폼의 고유 문법으로 동일한 동작을 수행하도록 구현되어 있다. 프로바이더는 플러그인 형태로 테라폼에 결합되어 대..

IaC/Terraform_테라폼

[Terraform] 기본 사용법#6 (프로비저너, null_resource와 terraform_data, moved 블록, CLI 시스템 환경 변수)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 3주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 프로비저너프로비저너는 프로바이더와 비슷하게 ‘제공자’로 해석되나, 프로바이더로 실행되지 않는 커맨드와 파일 복사 같은 역할을 수행한다. 예를 들어 클라우드에 리눅스 VM을 생성하는 것에 더해 특정 패키지를 설치해야 하거나 파일을 생성해야 하는 경우, 이것들은 테라폼의 구성과 별개로 동작해야 한다. 프로비저너로 실행된 결과는 테라폼의 상태 파일과 동기화도지 않으므로 프로비저닝에 대한 결과가 항상 같다고 보장할 수 없다.따라서 프로비저너 사용을 최소화 하는 것이 좋다. 프로비저너 종류에는 파일 복사와 명령어 실행을 위한 file, ..

IaC/Terraform_테라폼

[Terraform] 기본 사용법#5 (for, for_each, dynamic 반복문, 조건식, 함수)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 3주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 반복문1.1 for_each 반복문for_each는 반복(for)을 할 때 타임 값에 대해 하나하나 each object로 접근한다는 의미이다.즉, 리소스 또는 모듈에서 for_each에 입력된 데이터 형태가 map 또는 set이면, 선언된 key 값 개수만큼 리소스를 생성하게 된다.for_each : 반복문으로, 선언된 key 값 개수만큼 리소스를 생성함 다음과 같이 tf파일을 생성하여 apply를 실핼해보겠다.# main.tfresource "local_file" "abc" { **for_each** = { **a =..

IaC/Terraform_테라폼

[Terraform] count 실습 (aws ec2, vpc, subnet 생성 시나리오) +cloudnet 스터디 악분님 제공

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 2주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. cloudnet 스터디 악분님이 count를 실습해볼 수 있는 좋은 시나리오를 공유해주셨습니다. (감사합니다)한번 따라서 정리해보도록 하겠습니다. 1. count 실습 (스터디 악분님 제공)다음과 같이 실습환경을 구성한다. 총 10개의 시나리오를 통해 학습한 내용을 확인해 보겠다. 시나리오 1. aws_subnet- AWS VPC Subnet 테라폼 코드 작성- 요구사항 : subnet cidr를 변수로 입력 다음과 같이 main.tf, variables.tf, terraform.tfvars 총 3개의 파일을 작성한다.# main.t..

IaC/Terraform_테라폼

[Terraform] 기본 사용법#4 (local 지역값, 출력 output, 반복문)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 2주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. local (지역값)코드 내에서 사용자가 지정한 값 또는 속성 값을 가공해 참조 가능한 local (지역 값) 은 외부에서 입력되지 않고, 코드 내에서만 가공되어 동작하는 값을 선언한다.‘local’은 입력 변수와 달리 선언된 모듈 내에서만 접근 가능하고, 변수처럼 실행 시에 입력받을 수 없다. 로컬은 사용자가 테라폼 코드를 구현할 때 값이나 표현식을 반복적으로 사용할 수 있는 편의를 제공한다. 하지만 여러 곳에서 자주 사용되는 경우 실제 값에 대한 추적이 어려워지므로 유지 관리 측면에서 부담이 발생할 수 있다. 주의할 것!! ..

IaC/Terraform_테라폼

[Terraform] 기본 사용법 #3 (데이터 소스, 입력 변수)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 2주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 데이터 소스데이터 소스는 테라폼으로 정의되지 않은 외부 리소스 또는 저장된 정보를 테라폼 내에서 참조할 때 사용한다. (예를 들면 aws image 등) 1.1 데이터 소스 구성데이터 소스 블록은 data로 시작된다. 이후 데이터 소스 유형을 정의한다.(resource 블록과 유사함) 데이터 소스 정의 예시data "local_file" "cwtest" { filename = "${path.module}/cwtest.txt"}# ex, aws image의 경우data "aws_iam_user" "cwdev" { user_..

IaC/Terraform_테라폼

[Terraform] 기본 사용법 #2 (테라폼 블록, 리소스)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 1주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 테라폼 블록테라폼 블록은 테라폼의 구성을 명시하는데 사용된다. 테라폼 버전이나 프로바이더 버전과 같은 값들은 자동으로 설정되지만, 다른 사람과 함께 작업할 때는 버전을 명시적으로 선언하고 필요한 조건을 입력하여 실행 오류를 최소화해야한다.(또한 협업의 관점에서 보았을 때, 다른 사람이 실행하는 경우에 대비해 테라폼의 구성 정보를 명확히 정의해야 오류 등을 방지할 수 있다.)terraform { required_version = "~> 1.3.0" # 테라폼 버전 required_providers { # 프로바이더 버전을 나열..

IaC/Terraform_테라폼

[Terraform] 기본 사용법 #1 (주요 커맨드, HCL)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 1주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 주요 커맨드, HCL1. 주요 커맨드지난 포스팅에서 EC2 생성, 수정, 삭제 실습을 통해 기본적인 명령어에 대해 진행했었지만, 테라폼은 기본 사용법이 매우 중요한 부분이므로, 명령어에 대해서 상세하게 다시 정리해보겠다.테라폼 사용 환경 구성이 완료된 상태라면, terraform 명령을 실행하는 것만으로도 기본적인 도움말이 표시된다.devcw@woos-dev-server:/mnt/c/Users/chanw/OneDrive/바탕 화면/terraform/t101-1week-ec2$ terraformUsage: terraform [gl..

IaC/Terraform_테라폼

[Terraform] 테라폼 간단 실습 (EC2 배포, 수정, 삭제)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 1주차 내용으로,     [테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다..더보기1. EC2 인스턴스 배포 준비:    - 터미널에서 EC2 상태 모니터링 스크립트 실행    - 테라폼을 사용해 간단한 EC2 생성 코드 작성 (main.tf)2. 테라폼 초기화 및 실행:    - terraform init으로 초기화 진행    - terraform plan으로 변경 사항 검토    - terraform apply로 EC2 인스턴스 배포3.태그 추가 및 업데이트:    - 테라폼 코드에 태그 정보 추가    - plan과 apply를 사용하여 업데이트 반영4. EC2 인스턴스 삭제:    - terra..

IaC/Terraform_테라폼

[Terraform] 테라폼 개념 및 사용 환경 구성

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 1주차 내용으로,     [테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다..더보기Terraform은 HashiCorp에서 개발한 인프라 자동화 도구로, 코드형 인프라(Infrastructure as Code, IaC)의 원칙에 따라 인프라를 코드로 관리하는 것을 목적으로 합니다. 이 도구는 워크플로 집중, 코드화된 인프라, 실용주의를 중요시하며, AWS 인프라를 효율적으로 관리하기 위한 환경을 구축할 수 있습니다. 설치 과정에서는 WSL을 통해 Terraform을 설치하고, Visual Studio Code를 설정하며, AWS CLI를 설치하고 IAM 사용자를 연동하는 방법을 상세히 설명했습니다. 1..

IaC/Ansible_앤서블

[Ansible] 출력 결과 관리 (결과값 파일로 저장, 리턴)

예전 사내에서 ansible을 처음 사용했던 때가 기억이 난다. 모든 RHEL OS 서비스(서버) 호스트들의 패스워드 만료일을 파악해달라는 요청이였는데, 서버 수가 상당했고 수작업으로 하나하나 진행하고 있었다..만, 5분의 1도 못해서 포기하고 ansible로 일괄 작업 및 자동화를 시키기로 결심했다. chage명령어를 사용해 나타나는 계정의 정보들중에서 패스워드 만기일을 나타내는 password expires 부분의 데이터만 grep 해와서 보면될듯싶은데.. ansible이 playbook 형식으로도 사용할 수 있지만, 이미 기능들이 생성되어있는 모듈들로도 충분히 진행가능한 기능인듯 싶어 모듈로 진행하였다. Inventory를 작성하여 host ec2를 명시하였다. 기능 테스트만 진행할하므로 간단히 1..

cwpack0730
'IaC' 카테고리의 글 목록