Jump to section

Ansible 기본 사항 학습하기

URL 복사

Ansible®은 오픈소스 IT 자동화 엔진으로, 프로비저닝, 구성 관리, 애플리케이션 배포, 오케스트레이션, 기타 여러 가지 IT 프로세스를 자동화합니다.

Ansible을 사용해 소프트웨어를 설치하고, 일상 태스크를 자동화, 인프라 및 네트워크 구성 요소를 프로비저닝하고, 보안 및 컴플라이언스를 개선하며, 시스템에 패치를 적용하고, 복잡한 워크플로우를 오케스트레이션할 수 있습니다.

Red Hat® Ansible Automation Platform은 Ansible의 커뮤니티 버전과 동일한 기반 위에 구축되지만 완전한 엔터프라이즈 라이프사이클 지원을 제공하며, 조직이 자동화를 표준화하고 운영화하며 확장하는 여정을 돕기 위해 설계된 기능을 포함합니다. 

이 문서에서는 커뮤니티 Ansible과 Ansible Automation Platform을 모두 구동하는 기본 요소를 설명합니다.

모듈

Ansible은 노드(또는 호스트)에 연결한 후 모듈이라고 하는 소규모 프로그램을 노드로 푸시하는 방식으로 작동합니다. 노드는 Ansible을 통해 관리하고자 하는 대상 엔드포인트(서버, 네트워크 기기 또는 기타 컴퓨터)입니다. Ansible에서는 이 모듈을 사용하여 자동화 작업을 완료합니다. 이러한 프로그램은 원하는 시스템 상태의 리소스 모델이 되도록 작성됩니다. 그런 다음, Ansible은 해당 모듈을 실행하고 완료 후 제거합니다.

모듈이 없는 경우 작업을 완수하려면 애드혹 명령 및 스크립팅에 의존해야 합니다. Ansible에는 태스크를 자동화하는 데 사용할 수 있는 기본 모듈이 포함되어 있지만, 사용자가 새 모듈을 직접 작성할 수도 있습니다. Ruby, Python 또는 Bash 등 JSON을 반환할 수 있는 어떤 언어로든 Ansible 모듈을 작성할 수 있습니다. Windows 자동화 모듈은 Powershell로도 작성할 수 있습니다. 

에이전트리스 자동화 

Ansible은 에이전트리스입니다. 즉, Ansible이 관리하는 노드에 설치할 소프트웨어가 필요하지 않습니다. Ansible은 사용자가 인벤토리에서 관리하려는 머신에 관한 정보를 읽습니다. Ansible에는 기본 인벤토리 파일이 있지만, 자체 인벤토리 파일을 생성하여 어떤 서버를 관리할지를 정의할 수 있습니다. 

Ansible은 SSH 프로토콜을 사용해 서버에 연결하여 작업을 실행합니다. 기본적으로 Ansible은 SSH 키를 ssh-agent와 함께 사용하고, 현재 사용자 이름을 사용해 원격 머신에 접속합니다. 루트 로그인은 필요하지 않습니다. 어떤 사용자로도 로그인한 다음 어떤 사용자로서도 su 또는 sudo 명령을 사용할 수 있습니다.

연결이 완료되면 Ansible은 실행을 위해 명령 또는 Ansible Playbook에 필요한 모듈을 원격 머신으로 전송합니다. Ansible은 사람이 읽을 수 있는 YAML 템플릿을 사용하므로 사용자는 고급 프로그래밍 언어를 배우지 않아도 반복 작업이 자동으로 수행되도록 프로그래밍할 수 있습니다.

애드혹 명령에 Ansible 사용하기 

Ansible을 사용하면 하나 이상의 관리형 노드에서 단일 태스크를 자동화하는 애드혹 명령을 실행할 수도 있습니다. 이를 위해서 커맨드라인에서 직접 명령을 실행하거나 모듈을 호출할 수 있습니다. 플레이북은 사용되지 않으며, 애드혹 명령은 재사용이 불가능합니다. 일회성 태스크에는 이 방법을 사용해도 되지만 더 빈번하거나 복잡한 태스크에는 Ansible Playbook을 사용해야 합니다.

Ansible Playbook은 IT 프로세스를 오케스트레이션하는 데 사용됩니다. 플레이북은 하나 이상의 플레이가 포함된 YAML 파일(.yml 또는 .yaml 확장자 사용)로, 시스템을 원하는 상태로 정의하는 데 사용됩니다. 이는 Ansible Playbook 내에서 사용할 수 있는 독립 실행형 스크립트인 Ansible 모듈과는 다릅니다. 

플레이는 Ansible 인벤토리 파일의 호스트 선택 항목에 대해 실행 순서가 지정된 작업 세트로 구성되어 있습니다. 작업은 플레이를 구성하는 요소로, Ansible 모듈을 호출합니다. 플레이에서 작업은 작성된 순서로 실행됩니다.

Ansible은 실행 중에 시스템의 상태를 계속 파악할 수 있습니다. Ansible이 시스템을 스캔하여 시스템의 플레이북 설명과 실제 시스템 상태가 일치하지 않음을 발견하면 시스템을 플레이북과 일치시키는 데 필요한 모든 변경을 수행합니다. 

Ansible에는 점검 모드가 있으므로 시스템에서 상태를 변경하기 전에 이 모드를 통해 플레이북 및 애드혹 명령을 검증할 수 있습니다. 이를 통해 실제 변경 없이도 Ansible이 하게 될 작업이 무엇인지 알 수 있습니다. Ansible의 핸들러는 시스템에 변경 작업을 한 후 특정 작업을 실행하는 데에만 사용됩니다. 핸들러는 플레이북의 다른 모든 플레이가 종료되면 작업에 의해 트리거되고 한 번 실행됩니다.

변수를 사용함으로써 패키지 버전이나 파일 경로와 같은 시스템 간 차이를 관리하기 위해 플레이북을 실행하는 방법을 변경할 수 있습니다. Ansible을 사용하면 단일 명령을 통해 다양한 시스템에서 플레이북을 실행할 수 있습니다. 변수는 이러한 시스템 간 변형을 처리하며, 플레이북, 인벤토리, 재사용 가능한 파일이나 롤에서 또는 커맨드라인에서 정의될 수 있습니다. 변수는 변수들이 서로를 재정의하는 순서를 정의하는 변수 우선 순위를 따릅니다.

특별한 종류의 플레이북인 Ansible Roles는 태스크, 변수, 구성 템플릿, 복잡한 오케스트레이션을 완료하는 데 필요한 기타 지원 파일로 구성된 그룹으로, 완전히 독립적이며 이식이 가능합니다. 컬렉션 내에 여러 롤이 존재할 수 있으므로 오토메이션 허브Ansible Galaxy를 통해 콘텐츠를 쉽게 공유할 수 있습니다.

컬렉션은 Ansible 콘텐츠의 배포 형식으로, 플레이북, 롤, 모듈, 플러그인, 도큐멘테이션이 모두 하나의 번들에 포함될 수 있으므로 크리에이터가 더 손쉽게 자동화를 공유하고 다른 크리에이터가 만든 콘텐츠를 사용할 수 있습니다. 이 컬렉션은 콘텐츠 도메인별로 분류되므로 다양한 롤과 모듈을 찾아 결합해야 하는 선행 작업이 줄어듭니다.

Ansible Content Collections는 동일한 방식으로 기능하지만, Ansible Automation Platform 사용자가 Red Hat과 인증 파트너의 사전 구축된 콘텐츠를 활용하여 더 빠르게 자동화할 수 있도록 특별 설계되었습니다. Red Hat Ansible Certified Content와 Ansible 검증 콘텐츠를 모두 포함하는 이러한 컬렉션은 신뢰할 수 있고 보안 중심의 엔터프라이즈 수준임을 확인하기 위해 파트너의 의견을 반영하여 개발 및 테스트됩니다.

Ansible 인증 콘텐츠와 검증 콘텐츠의 차이와 두 콘텐츠의 용도에 대해 알아보세요. 재생 시간: 1분 55초

Ansible은 무료로 사용, 다운로드, 수정할 수 있으며, 수천 명의 기여자들이 지닌 경험과 정보를 활용할 수 있는 프로젝트입니다. Ansible의 커뮤니티 배포판에는 Python이 설치된 대부분의 운영 체제에서 지원되는 강력한 커맨드라인 툴 제품군이 포함되어 있습니다. Red Hat Enterprise Linux®, Debian, Ubuntu, MacOS, FreeBSD, Microsoft Windows 등이 그 예입니다. 

Ansible Automation Platform은 십여 개가 넘는 업스트림 프로젝트를 보안이 강화된 통합 엔터프라이즈 제품에 결합합니다. 이 플랫폼은 커뮤니티 Ansible의 기반을 토대로 구축되어 다기능 팀을 목표로 하는 엔드 투 엔드 자동화 경험을 창출하는 동시에 오토메이션 개발자, 엔지니어, 운영 팀 사이에서 플러그 앤 플레이 경험을 제공합니다.

Ansible과 Red Hat Ansible Automation Platform의 차이점에 대해 자세히 알아보고 싶으신가요?

Ansible Basics: Automation Technical Overview

이 온디맨드 온라인 동영상 시리즈는 Ansible 자동화와 구성 관리, 프로비저닝, 배포, 그리고 Ansible을 사용하여 클라우드, 가상 및 물리 환경 전체에서 컴퓨팅 인프라를 관리하는 방법을 소개합니다.

Red Hat Enterprise Linux Automation with Ansible 

이 교육 과정에서는 Red Hat® Ansible Automation Platform 최신 버전으로 Linux® 시스템 관리 작업을 자동화하는 방법을 교육합니다. Ansible Automation Platform을 사용해 프로비저닝, 구성, 애플리케이션 배포, 오케스트레이션을 자동화하는 데 필요한 기술을 학습합니다.

학습 리소스 찾기

수행해야 하는 태스크별로 구성된 학습 자료와 툴을 살펴보세요. Ansible Automation Platform을 사용하는 데 도움이 되도록 설계되었습니다. 이러한 리소스는 배포 옵션, 설치, 기능을 최대한 활용하는 방법, 자동화를 새로운 과제에 적용하기 위한 활용 사례 등을 안내합니다.

인터랙티브 랩에서 실제로 체험하기

인터랙티브 시나리오를 통해 사전 구성되어 브라우저에서 직접 실행되는 Ansible Automation Platform 환경을 제공하므로 다양한 활용 사례에 맞게 자동화하는 방법을 원하는 속도에 맞춰 배울 수 있습니다.

Ansible 방식의 생성형 AI

Red Hat은 IBM과 협력하여 팀이 오토메이션 콘텐츠를 더 효율적으로 배우고 만들고 유지 관리할 수 있도록 설계된 생성형 AI 서비스인 IBM watsonx Code Assistant가 통합된 Red Hat Ansible Lightspeed를 개발했습니다. 작업 요청을 간단한 언어로 입력하면 Ansible Lightspeed가 IBM watsonx 파운데이션 모델과 상호작용하여 코드 권장 사항을 생성하고 이를 사용하여 Ansible Playbook을 생성합니다.

프로비저닝

Ansible Playbook을 사용하면 원하는 인프라 상태를 설명한 다음 Ansible Automation Platform을 통해 프로비저닝할 수 있으므로 동일한 환경을 매번 같은 방식으로 프로비저닝하게 됩니다. 이는 물리 환경이나 클라우드 환경 또는 가상 환경 전반에서 새로운 인스턴스를 생성하는 것에서부터 새로운 서비스, 애플리케이션, 컴퓨팅 호스트 또는 기타 리소스를 추가하는 것에 이르기까지 IT 환경을 위한 모든 인프라 구축에 적용될 수 있으며, 모든 작업이 단일 워크플로우 내에서 실행됩니다.

구성 관리

구성 관리를 자동화하면 변경과 배포를 더 빠르게 수행하고 인적 오류를 최소화하는 동시에 예측 가능하고 확장 가능한 시스템 관리를 실현할 수 있습니다. 컴퓨터 시스템, 서버, 소프트웨어를 원하는 일관된 상태에서 유지 관리하면 보안 침해 또는 서비스 품질 저하의 위험이나 운영 중단의 위험까지도 낮아집니다. 그리고 IT 팀은 수동으로 패치와 업데이트를 적용하는 시간을 줄이고 영향력이 높은 프로젝트에 시간을 더 할애할 수 있습니다.

네트워크 자동화

네트워크 자동화는 프로그래밍 가능한 로직을 사용하여 네트워크 리소스와 서비스를 관리하므로 네트워크 운영(NetOps) 팀은 네트워크 인프라 및 애플리케이션 서비스를 수동으로 하는 것보다 더 빠르게 구성, 확장, 보호 및 통합할 수 있습니다.

애플리케이션 배포

애플리케이션 배포를 자동화하면 조정된 프로세스에 따라 테스트 환경과 프로덕션 환경 간에 소프트웨어를 이동할 수 있습니다. 그 결과, 소프트웨어 제공 주기가 빨라지고 프로덕션 단계의 애플리케이션에 대한 신뢰성이 향상됩니다. 애플리케이션 배포 자동화는 DevOps 사례를 지원하고 CI/CD 파이프라인을 관리하는 데 매우 중요한 요소입니다.

보안 자동화

보안 자동화는 보안 프로세스, 애플리케이션 및 인프라를 단일 작업 흐름으로 통합합니다. 보안 자동화를 통해 보안 운영(SecOps)의 효율성이 증가하는 동시에 보안 침해와 기타 위협의 원인이 되는 비일관성과 오류가 감소할 수 있습니다. 보안 팀은 Ansible Automation Platform을 사용해 인벤토리, 플레이북 또는 권한을 공유하는 작업의 시퀀스를 구성하여 조사 또는 문제 해결을 완전히 자동화할 수 있습니다.

오케스트레이션

단일 태스크를 자동화하면 얻을 수 있는 정점이 제한적입니다. 그렇기 때문에 Ansible Automation Platform과 같은 자동화 솔루션을 사용하면 인프라, 네트워킹 기기, 보안 툴 등 여러 이기종 시스템 전반에서 조정되는 여러 단계를 수반하는 워크플로우를 손쉽게 설정하고 자동화할 수 있습니다. 오케스트레이션으로 서로 다른 IT 팀들 간 의사 소통도 개선할 수 있습니다.

코드형 자동화(Automation as Code)로 IT 가속화

Ansible Automation Platform은 인프라의 구축, 프로비저닝, 배포 등의 코드형 인프라(IaC) 자동화에 주로 사용되지만, 전체 운영 라이프사이클에서 프로세스의 자동화에도 사용될 수 있습니다. 이벤트 기반 기능이 포함된 단일한 자동화 플랫폼을 사용하는 기업과 조직은 코드형 인프라(IaC) 작업을 코드형 운영(OaC)과 코드형 정책(PaC)으로 확장할 수 있습니다.

자세히 알아보기

Red Hat Ansible Automation Platform에는 이벤트 기반 솔루션, 플레이북, 분석 등 전사적 자동화를 구현하는 데 필요한 모든 툴이 포함되어 있습니다. 사용자는 시각적 대시보드, 역할 기반 액세스 제어, 그리고 운영 복잡성을 줄이기 위해 설계된 여러 기능을 통해 IT 인프라를 중앙집중화하고 제어할 수 있습니다.

Red Hat 서브스크립션을 통해 강력한 파트너 에코시스템의 인증 콘텐츠, 호스팅된 관리 서비스에 대한 액세스, 그리고 팀이 조직 전반에서 자동화를 생성, 관리 및 확장할 수 있도록 하는 라이프사이클 기술 지원을 받을 수 있습니다. 또한 수천 곳의 고객 성공 사례를 통해 쌓은 전문 지식을 활용할 수 있습니다.

조직은 자동화를 손쉽게 구현하는 능력이 필요할 뿐 아니라 적절한 수준의 거버넌스와 제어로 여러 프로젝트 및 팀에 걸쳐 자동화를 공유하고 재사용할 수도 있어야 합니다. Ansible Automation Platform으로 새로운 애플리케이션과 서비스를 더 신속하게 배포하고, IT 인프라를 더 효율적으로 관리하고, 애플리케이션 개발의 생산성을 높여 보세요.

Icon-Red_Hat-Media_and_documents-Quotemark_Open-B-Red-RGB Red Hat Ansible Automation Platform의 기본 제공 기능에는 즉시 사용 가능한 가속기가 포함되어 있습니다. 이는 많은 벤더와 파트너도 기술을 설치, 구성 및 유지 관리하기 위한 스크립트를 작성할 때 사용하는 사실상의 표준입니다.

Jesse Amerson

Ulta Beauty, IT 책임자

추가 자료

문서

Ansible 기본 사항 학습하기

Ansible은 프로비저닝 및 구성 관리와 같은 IT 프로세스를 자동화합니다. 여기서 소개하는 핵심 개념을 통해 Ansible의 기본 사항을 학습하세요.

문서

비즈니스 프로세스 관리란 무엇일까요?

비즈니스 프로세스 관리(Business Process Management, BPM)는 전략적 비즈니스 목표를 달성하기 위해 엔드 투 엔드 비즈니스 프로세스를 모델링, 분석, 최적화하는 프랙티스입니다.

문서

Red Hat의 자동화를 선택해야 하는 이유

Red Hat Ansible Automation Platform에는 여러 팀에서 자동화를 공유하고 전사적 자동화를 구현하는 데 필요한 모든 툴이 포함되어 있습니다.

자동화에 대한 자세한 내용

제품

다양한 시각으로 고객의 상황을 파악하고 이를 바탕으로 고객의 과제를 분석하여 종합적이고 비용 효율적인 솔루션을 통해 문제를 해결하도록 돕는 전략적인 조언자입니다.

자동화 과정의 어느 단계에 있든지 상관없이 전사적 자동화를 구현할 수 있는 플랫폼입니다.

리소스

교육

무료 교육 과정

Ansible Essentials: Simplicity in Automation Technical Overview

무료 교육 과정

Red Hat Ansible Automation for SAP