Ansible - Ansible이란?

FromCloud·2023년 6월 11일
0

Ansible

목록 보기
1/10

ansible을 설치하기 위해서 Centos 4대를 구성하여 진행 초기 기본 설정만 진행

먼저 ansible을 사용하는 이유부터 알아야한다

  1. Ansible은 IaC(Infrasture as Code) 한마디로 code로 모든 Infra를 관리하는것이다
  • 이전에 centos 여러대를 관리하기 위해서도 한개한개 일일이 들어가서 셋팅을 해줘야하는 번거로움이 있었는데 ansible을 이용하여 동일하게 100대 1000대의 셋팅을 가능하게 한다
  • 하지만 일일이 셋팅을 하면 Human Error를 수반할 수 밖에 없게 된다
  1. 선언형 언어이다
  • code로써 셋팅을 자동화하고 그 상태가 유지된다는 뜻이다
  • k8s에서도 역시 항상 cofing file에 기술한 대로 infra를 유지하려고 노력을 하게 되는데 이것을 IaC 라고한다

IaC

배포관리

  • 가상머신, App를 배포하는데 초점이 맞춰져있으며 HashiCorp 사의 제품이 주류를 이루고있다(vagrant, terraform, vault등)
  • 배포 뿐만 아니라 간단한 구성 관리도 가능하다

구성관리

  • 가상머신이나 App을 배포 후에 구성을 설정, 관리, 유지보수 하는데 초점이 맞춰져있다
  • puppet, chef, salutstack, ansible 등

Pull Base & Push Base

Pull Base

  • puppet과 chef는 Agent를 필요로 한다
  • Agent들은 주기적으로 중앙 서버에 구성정보를 확인한다

Push Base

  • Agent가 필요없다,SSH통신을 한다
  • 항상 멱등성을 보장한다 (멱등성: 몇번을 수행해도 같은 결과를 보장)

Mutable VS Immutable

Mutable(가변 Infra)

  • 여러 관리 대상 인프라가 독립적으로 관리, 별도의 변경 사항을 가진다
  • ansible, chef, puppet, saltstack 등 대부분 구성 관리 도구는 가변 인프라에 초점이 있다
  • 각 서버는 인프라 전체에서 동일하지 않고 고유의 독립된 개체로 관리한다

Immutable(불변 Infra)

  • Infra가 배포된 후 절대로 변하지 않음
  • 마이크로 서비스 아키텍쳐(MSA) 환경에서 불변 인프라의 필요성이 더욱 증가하고 있다
  • 모놀리식 아키텍쳐에서는 불변 인프라가 필요하지 않다
  • 어떤 시점에서 서버 상태를 저장해 복제 할 수 있게 하자는 개념
  • 한번 설정된 서버는 수정없이 파기되므로 멱등성이 불필요하다
profile
매일 발전하는 Cloud Engineer

0개의 댓글