[Jenkins] IaC

seopppio·2024년 12월 3일

Jenkins

목록 보기
11/25

IaC


즉, 코드에 의해서 우리가 원하는 환경을 구축하는 것

Terraform

클라우드 상관없이, 다중 클라우드, 다중 환경 관리 가능 도구
자체적으로 사용하는 DSL(Domain Specific Language) 언어 사용함
인프라의 구성을 원하는 형태로 유지하기 위해 사용하는 오케스트레이션 도구
스크립트로, 시스템 상태 변경 및 유지 가능
프로비저닝 도구로서, 사용자 서버에 대한 액세스 관리, 소프트웨어 설치 도구로 사용 가능

인프라 구축 용도로 사용

Ansible

기존에 구성되어 있는 서버 정보 변경/설정 을 원하는 형태로 바꾸는데 특화된 IaC
구성관리 도구라고도 한다
시스템 교체 작업도 되지만, 문제점 발생 시 해결 및 대응하는 과정을 스크립트화해서 작업하곤 한다

구축된 서버를 관리하는 용도로 사용하는 서비스 느낌이 강함

IaC 사용 전 과거


문제 생기면, 관리자가 직접 새로운 서버 증설함

IaC 도입 후


Ansible에 서버 관리할 수 있도록 지정

  • Ansible에 담긴 스크립트
  1. 서버 목록
  2. 어떤 작업에 대한 절차를 담아놓은 파일

어떤 서버가 문제 생기면, 기록 되어 있는 정보에 의해 자동으로 서버를 증설함

기존에는 에이전트에 의해 서로간의 통신을 어떻게 할지 정해주곤 했는데,
엔서블 사용시, 서버와 클라이언트간 에이전트 필요 X
-> Python 네트워크 모듈로 서버와 통신하고 있어서

Ansible

이전 실습에서, 이미 실행 중인 도커 컨테이너를 Jenkins 빌드 과정에서 진행하면 오류가 났다 -> 기존 컨테이너를 중지하거나, 여러번 실행해도 지속으로 그 작업이 반응 할 수 있도록 해야 한다

Ansible의 역할은, 기존 도커에서 가동된 컨테이너를 중지 후 다시 기동하거나, 다시 이미지를 빌드하거나 하는 과정에서 즉, Deployment 관리를 해주는 용도로 Ansible 도입해서 사용하고자 하는 것




윈도우즈에 Ansible서버 설치는 어렵다. 도커에 ansible 설치해서 사용하면 된다
(아니면 가상화도구 virtualbox 사용해도 된다)

다른 상태로 구성된 운영체제여도, Ansible에 있는 파이썬 네트워크 모듈과 각 운영체제에 파이썬 네트워크 모듈 있다면, 통신하는데 문제 없다.
(Python 상태에서 SSH)

0개의 댓글