[Actions] Github Actions 를 시작하기 전, 기본 개념 익히기
·
DevOps/Github
GitHub Actions 이란?: 빌드, 테스트, 배포 파이프라인을 자동화할 수 있게 해주는 Github의 CI/CD 플랫폼Github Repository로의 모든 Pull Request를 빌드하고 테스트하는 워크플로우를 생성하거나, Merge된 Pull Request를 프로덕션(서버)에 배포하는 등의 작업을 수행할 수 있게 함단순히 DevOps를 넘어서, Github Repository에서 여러 이벤트가 발생할 때 워크플로우를 실행하게 한다. 예를 들어, 새로운 Issue를 만든 사람에게 자동으로 적절한 Label을 추가하는 워크플로우를 실행할 수도 있음GitHub은 워크플로우를 실행할 Linux, Windows, macOS 기반의 VM을 제공하거나, 유저가 관리하는 데이터 센터 또는 클라우드 인프라..
[Ansible] playbook으로 ansible managed node들에 ssh 패스워드 없이 접속하도록 자동화하기
·
DevOps/Ansible
Ansible Playbook 으로 ssh-copy-id 자동화하기 처음에는 뭣도 모르고, 80대가 넘는 managed node에 직접 ssh-copy-id 로 ssh public key를 전송하고, ssh 접속 테스트까지 했다… 근데 이것 또한 Ansible로 자동화가 가능하다! Ansible은 정말 미쳤다! 아래에서 설명할 playbook yml 파일에서 사용되는 hosts 파일의 내용은 다음과 같다.아래처럼 hosts 파일에 그룹별로 나누어 IP를 작성하면, 아래 단계를 모두 적용시켜야 하는지, 부분 적용시켜야 하는 지를 hosts 파일 수정만으로 구분이 가능하게 되므로 참고하자![KNOWN_HOSTS]10.123.123.11[AUTHORIZED_KEYS]10.123.123.12[EXISTING_R..
[Terraform] AWS 3-tier Achitecture를 구성하기 위한 Terraform 프로젝트 구조 잡기
·
DevOps/Terraform
아직 Terraform을 통해 AWS의 VPC 생성 조차 해보지 않았다면, 아래 링크인 이전 포스팅을 참고하길 바란다. https://co-no.tistory.com/entry/Terraform-%ED%85%8C%EB%9D%BC%ED%8F%BC%EC%9D%84-%ED%86%B5%ED%95%9C-AWS-%EA%B5%AC%EC%84%B1-VPC-%EC%83%9D%EC%84%B1 [Terraform] 테라폼을 통한 AWS 3-tier 구성 (1) - AWS CLI 설정 및 VPC 생성 0. AWS CLI 및 AWS Configure 테라폼으로 aws 리소스를 관리하기 위해서는, 테라폼이 구동되는 동일한 환경 내에서 AWS CLI가 설치되어 있고, AWS CLI를 통해 모든 리소스의 접근 권한을 가진 AWS I..
[Terraform] 테라폼을 통한 AWS 3-tier 구성 (1) - AWS CLI 설정 및 VPC 생성
·
DevOps/Terraform
0. AWS CLI 및 AWS Configure 테라폼으로 aws 리소스를 관리하기 위해서는, 테라폼이 구동되는 동일한 환경 내에서 AWS CLI가 설치되어 있고, AWS CLI를 통해 모든 리소스의 접근 권한을 가진 AWS IAM User와의 연동이 필요하다. AWS 루트사용자와 동일한 권한을 가진 IAM User 설정이 되지 않았다면, 아래 포스팅을 참고하길 바란다. https://co-no.tistory.com/entry/AWS-AWS-%EA%B0%80%EC%9E%85-%ED%9B%84-%EC%B4%88%EA%B8%B0-%EC%84%B8%ED%8C%851-IAM [AWS] AWS 가입 후 초기 세팅 - IAM, Budgets 설정 IAM(Identity and Access Management)이란 ..
[Terraform] Terraform 개념, Architecture, 설치
·
DevOps/Terraform
Terraform이란? : 테라폼(Terraform)은 하시코프(Hashicorp)에서 오픈소스로 개발 중인 *IaC 도구로, 인프라를 안전하고 효율적으로 구축, 변경, 버전 관리할 수 있게끔 한다. 여기에서 말하는 인프라는, 컴퓨팅 인스턴스, 스토리지, 네트워킹과 같은 low-level 컴포넌트와 DNS 항목 및 SaaS 기능과 같은 High-level의 컴포넌트를 모두 포함한다. *IaC(Infrastructure as Code) : 수동 프로세스가 아닌, 코드를 통해 인프라를 관리하고 프로비저닝하는 것을 말한다. Terraform의 Arhictecture Terraform Core : Terraform CLI라고도 하는 Terraform Core는 Go 언어를 사용하여 개발된 정적으로 컴파일된 바이..
[Ansible] 베이그런트(Vagrant)를 통해 Virtualbox 프로비저닝 하기
·
DevOps/Ansible
0. 베이그런트(Vagrant) 란? : 포터블 가상화 소프트웨어 개발환경(Virtualbox, Hyper-X, Docker container, VMware, AWS 등)의 생성 및 유지보수를 위한 오픈 소스 소프트웨어 제품의 하나. 'HashiCorp' 회사의 제품이다. (베이그런트의 default 설치 디렉토리가 C:\HashiCorp\Vagrant\ 이므로 참고하자!) 베이그런트 파일은 Ruby 로 작성되어 있으나, PHP, Python, Java, C#, JS 와 같은 다른 프로그래밍 언어들로 작성된 프로젝트에서도 사용할 수 있다. ※ 프로비저닝(Provisioning) : 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 ..