Ansible

Ansible이란 무엇인가요?

Ansible은 일반 텍스트 지시문으로 서버를 설정하고 유지하는 오픈소스 자동화 도구입니다. Red Hat이 개발하며 지원이 포함된 버전을 판매합니다.

엔지니어와 상담하세요 지식 베이스
데이터 센터에 줄지어 놓인 상태 표시등이 켜진 검은색 서버 랙

정의

관리자는 플레이북을 작성합니다. 플레이북은 각 서버가 어떤 상태여야 하는지 나열한 YAML 파일로, 어떤 패키지가 설치되어 있는지, 어떤 사용자가 있는지, 설정 파일에 무엇이 들어 있는지, 어떤 서비스가 실행 중인지를 담습니다. Ansible은 플레이북을 읽고 각 서버가 그에 맞도록 만듭니다.

에이전트가 필요 없습니다. 관리하는 서버에 추가로 설치할 것이 없습니다. Ansible은 관리자가 Linux 서버에 로그인하는 것과 같은 방식으로 SSH를 통해 각 서버에 접속하여 작은 프로그램을 실행합니다. 그 프로그램 대부분은 Python으로 작성되어 있으므로 서버에서 Python을 쓸 수 있어야 합니다.

실행은 멱등성을 가집니다. 서버가 이미 플레이북과 일치하면 Ansible은 건드리지 않고 변경 없음이라고 보고하므로, 같은 플레이북을 다시 실행해 설정 이탈을 확인하거나 바로잡아도 안전합니다.

주요 구성 요소

  • 인벤토리: Ansible이 관리하는 서버 목록으로, 웹 서버와 데이터베이스 서버처럼 역할이나 위치별로 묶습니다.
  • 플레이북: 어느 그룹에 무엇을 할지 설명하는 YAML 파일.
  • 롤: 표준 방화벽 설정처럼 여러 플레이북이 공유할 수 있는, 재사용 가능한 작업 묶음.

기업이 얻는 것

  • 일관된 서버: 같은 플레이북으로 구축한 모든 서버는 동일하게 설정됩니다.
  • 검토된 변경: 플레이북은 텍스트 파일이므로 Git에 보관할 수 있고, 각 변경이 기록되며 실행 전에 검토할 수 있습니다.
  • 더 빠른 재구축: 장애가 난 서버는 기억에 의존하지 않고 플레이북으로 교체하고 다시 설정할 수 있습니다.

Ansible과 Terraform

두 도구는 함께 쓰이는 경우가 많습니다. Terraform은 가상 머신, 네트워크, 클라우드 계정 같은 인프라를 만들고, Ansible은 그 머신에서 실행되는 것을 설정합니다. 역할이 조금 겹치지만 보통은 이렇게 나눕니다.

KawaConnect가 구성 자동화를 다루는 방식

저희는 Ubuntu, Debian, RHEL 계열 서버를 관리하고, 코드형 인프라를 버전 관리에 보관합니다. Kubernetes 클러스터는 클러스터 설정을 Git 저장소에 두는 GitOps로 운영합니다. 설정을 누군가의 기억이 아니라 파일에 두면 구축을 반복할 수 있고 모든 변경에 기록이 남습니다.

관련 서비스

Linux 서버 지원

Ubuntu, Debian, RHEL 계열 서버 관리.

Kubernetes 컨설팅

설정을 Git에 보관하는 클러스터.

Proxmox 컨설팅

많은 서버가 실행되는 기반인 가상 머신.

자세히 보기

  • Ansible 문서인벤토리, 플레이북, 롤을 작성하기 위한 공식 가이드와 모듈 참조.
  • Ansible 웹사이트오픈소스 프로젝트와 지원이 포함된 Ansible Automation Platform을 다루는 Red Hat의 Ansible 사이트.
  • Wikipedia의 AnsibleAnsible의 작동 방식과 Red Hat의 일부가 된 과정을 중립적으로 개괄한 글.

서버를 수작업으로 설정하고 계신가요?

현재 서버를 어떻게 구축하고 변경하는지 알려 주세요. 그 설정을 파일로 관리하려면 무엇이 필요한지 보여 드리겠습니다.

상담 시작하기