개요
Ansible과 Salt는 커뮤니티 오픈소스 IT 자동화 툴입니다. 둘 다 수많은 서버 또는 엔드포인트 기기에서 시스템 구성 및 프로비저닝, 소프트웨어 배포, 업데이트 관리와 같은 일상적인 태스크를 자동화하여 IT 운영과 DevOps 작업을 간소화할 수 있습니다.
Ansible은 자동화 대상에 추가 소프트웨어를 설치하지 않아도 되는 더 유연한 에이전트리스 접근 방식 덕분에 사용하기 쉬운 것으로 알려져 있습니다. 이와 달리 Salt는 에이전트 기반 접근 방식을 취하므로 각 머신에 추가 소프트웨어가 필요합니다. 자동화 그 자체에 대한 접근 방식의 경우, Ansible과 Salt는 모두 Python 기반으로, Ansible은 YAML 구성 파일과 순서대로 실행될 단계를 정의하는 절차적 자동화를 사용하며, Salt는 YAML의 소규모 하위 집합을 사용하여 목록 및 사전과 같은 일반적으로 사용되는 데이터 구조에 매핑합니다.
이 문서는 Ansible과 Salt의 유사성과 차이점을 자세히 설명하는 데 도움이 됩니다.
지원되는 일반적인 오픈소스 자동화 툴 버전
더 광범위한 IT 자동화 툴 환경에서 Ansible과 Salt는 어디에 적합할까요? Ansible, Salt, Puppet, Chef는 일반적으로 사용되는 네 가지 오픈소스 IT 자동화 툴입니다. 각 자동화 툴에는 뚜렷한 차이가 있으며 모두 다양한 소프트웨어 기업이 판매하는 엔터프라이즈 솔루션으로 제공됩니다. 많은 IT 조직이 다양한 목적으로 2개 이상의 솔루션을 사용하거나 여러 솔루션을 조합하여 사용하고 있습니다.
- Ansible은 2015년 Red Hat에 인수되었으며 Red Hat® Ansible® Automation Platform으로 제공됩니다.
- Salt(제품명: SaltStack)는 2020년 VMWare에 인수되어 vRealize Automation 포트폴리오(최근 VMware Aria Automation으로 브랜드명 변경)에 편입되었습니다. VMware는 2022년 Broadcom에 인수되었습니다.
- Puppet은 Perforce에서 지원하며 Puppet Enterprise와 Puppet Bolt를 비롯한 일련의 상용 제품에서 사용할 수 있습니다.
- Chef는 2020년 Progress에 인수되었으며 Chef Enterprise Automation Stack을 비롯한 일련의 상용 제품에서 사용할 수 있습니다.
Red Hat 리소스
IT 자동화에 대한 Ansible과 Salt의 차이점
Ansible
Ansible은 Python으로 작성된 오픈소스 커맨드라인 IT 자동화 소프트웨어 애플리케이션입니다. 시스템 구성, 소프트웨어 배포, 고급 워크플로우 오케스트레이션을 통해 애플리케이션 배포, 시스템 업데이트, 네트워킹 구성 및 운영 등을 지원할 수 있습니다. Red Hat Ansible Automation Platform은 다양한 엔터프라이즈 기능과 함께 Ansible을 기반으로 구축된 서브스크립션 제품입니다.
Ansible의 강점은 커뮤니티에서 나옵니다. 주요 GitHub 리포지토리에는 수천 명의 기여자가 있으며, 2022년 가을 기준 수만 개의 리포지토리가 이 리포지토리에 의존하고 있습니다. 인기 있는 사용자 컨퍼런스인 AnsibleFest는 매년 개최되며 Ansible Meetup은 전 세계에서 자주 열립니다. 이 열정적인 사용자 커뮤니티는 Ansible과 기타 인기 있는 소프트웨어 프로젝트의 강력한 통합을 유지하는 기여자를 포함한 대규모 Ansible 전문 지식 풀을 반영합니다. Ansible 사용자는 기능을 확장하는 데 도움이 되는 수백 개의 모듈과 플러그인에 액세스할 수 있습니다.
Ansible은 단순성과 사용 편의성에 중점을 두고 설계되었습니다. 또한 유동적인 부분을 최소화하여 보안과 신뢰성을 강화합니다. Ansible은 OpenSSH를 사용해 전송하며(다른 전송 및 풀(pull) 모드를 대안으로 사용) 사용자가 많은 교육을 받지 않고도 빠르게 시작할 수 있도록 사람이 읽을 수 있는 언어를 사용합니다.
Ansible은 제어 노드(Ansible이 실행되는 위치)와 관리되는 노드(자동화되고 있는 기기로, Linux® 또는 Windows 머신인 경우가 많음)라는 개념을 사용합니다. Ansible은 에이전트리스이므로 관리되는 노드에 애플리케이션이나 서비스를 설치하지 않고도 여러 기기와 통신할 수 있습니다. Ansible Automation Platform은 오토메이션 메시라는 기술을 사용해 실행 노드 전체에서 자동화 작업을 분산할 수 있습니다.
Ansible은 사람이 읽을 수 있는 YAML로 작성된 파일인 Ansible Playbook을 사용해 인프라의 여러 부분을 세밀하게 오케스트레이션할 수 있습니다. Ansible은 원하는 상태에 도달하기 위한 여러 단계를 정의하여 IT 인프라의 구성을 유지하려고 하는 절차적(또는 명령적) 프로그래밍 방식을 사용합니다.
Salt
Salt는 Python으로 작성된 모듈식 오픈소스 IT 자동화 애플리케이션입니다 고속 데이터 수집 및 실행을 위해 설계된 Salt는 경량화 ZeroMQ 메시징 라이브러리와 서버 및 에이전트 간 퍼시스턴트 TCP(전송 제어 프로토콜) 연결을 설정하는 동시성 프레임워크를 갖춘 구성 관리 툴입니다.
Ansible처럼, Salt는 YAML을 사용하므로 쉽게 학습하고 관리할 수 있습니다. 하지만 에이전트 기반 아키텍처는 신규 사용자에게는 상당한 학습 곡선을 초래할 수 있으며 숙련된 DevOps 전문자에게는 쉽지 않을 수 있습니다. 이러한 맥락에서 서버는 Salt 마스터로 불리며, 클라이언트 머신에서 에이전트로 실행되는 클라이언트는 Salt 미니언이라고 불립니다. 여러 마스터를 구성할 수 있으며, 한 마스터가 다운되면 에이전트는 목록에 있는 다른 마스터와 연결됩니다. 서버가 구성을 모든 클라이언트로 푸시하므로, 즉각적인 원격 실행이 이루어집니다.
2022년 가을 GitHub 인사이트에 따르면, VMware가 SaltStack을 인수한 이래 Salt 오픈소스 커뮤니티는 규모가 줄어들었고 Ansible보다 이에 의존하는 프로젝트가 적어졌습니다. 그리고 2022년 Broadcom이 VMware를 인수한 이후에는 네트워킹과 멀티 벤더 또는 다목적 활용 사례보다 VMware 제품 자동화에 더욱 집중하면서 IT 기술 격차가 가속화되었으며 Salt 커뮤니티에 대한 기업의 지원이 불확실해졌습니다.
자동화 용어
에이전트 기반 아키텍처는 관리되는 환경에서 실행하기 위해 에이전트라는 특정 소프트웨어를 필요로 하는 인프라 및 자동화 모델을 가리킵니다. 에이전트와 에이전트의 모든 종속성을 모든 대상 노드에 설치해야 하며 추가 보안 점검과 룰이 필요합니다. 이는 에이전트를 사용할 수 없거나 실행할 수 없는 오브젝트를 자동화해야 할 때 문제가 될 수 있으며 에이전트를 유지 관리해야 합니다.
에이전트리스 아키텍처는 Ansible에서 사용하며, 관리 환경에 에이전트 소프트웨어를 설치할 필요 없이 IT 기기를 자동화하고 관리하는 방법입니다. 제어 소프트웨어는 Secure Shell(SSH)을 통해 원격 머신에 연결되고 오래 걸리는 설정 프로세스 없이 관리를 시작합니다. 이 아키텍처는 구성이 완료된 후 배포 시스템을 유지 관리할 필요가 없습니다.
구성 관리란 컴퓨터 시스템, 서버 및 소프트웨어를 원하는 상태로 일관되게 유지하는 프로세스로, 시간이 지나면서 다양한 변경 사항이 적용되더라도 시스템이 계속 정상적으로 작동하도록 보장합니다. 구성 관리는 자동화할 수 있어, 비용, 복잡성, 인적 오류의 위험이 줄어듭니다.
DevOps 및 DevSecOps는 각각 개발 운영과 개발, 보안, 운영을 나타내는 용어로서, IT 라이프사이클 전반에서 보안을 공동 책임으로 통합하는 문화, 자동화 및 플랫폼 설계에 대한 접근 방식입니다. DevOps와 DevSecOps는 보안을 항상 DevOps 접근 방식의 일부로 포함한다는 점에서 서로 동일합니다. 하지만 많은 사람들이 이러한 포함 관계를 명시하기 위해 DevOps를 DevSecOps라고 바꾸어 부르고 있습니다.
YAML은 Yet Another Markup Language(또는 YAML Ain’t Markup Language)의 약어로서, 구성 파일 작성에 자주 사용되는 데이터 직렬화 언어입니다. YAML은 사람이 읽을 수 있고 이해하기 쉽게 설계되었으며, 다른 프로그래밍 언어와 함께 사용할 수 있습니다. YAML은 JSON(JavaScript Object Notation)의 상위 집합입니다.
적합한 자동화 솔루션 선택 방법
자동화 솔루션을 선택하려면 현재 사용할 수 있는 기능을 평가해야 할 뿐 아니라 플랫폼에 대한 장기적인 전망도 고려해야 합니다. Ansible은 활발한 오픈소스 커뮤니티와 Red Hat의 지원이 특징입니다.
조직에서 다양한 자동화 솔루션을 사용하는 것도 일반적입니다. Ansible은 지원되는 대규모 통합 에코시스템에 연결되며, 자동화 프로그램의 오케스트레이터로서 기타 여러 가지 자동화 및 구성 관리 툴과 함께 사용할 수 있습니다. 또한 Ansible은 Amazon Web Services(AWS), Microsoft Azure, Google Cloud Platform 등과 같은 퍼블릭 클라우드 하이퍼스케일러에서 시스템을 자동화할 수 있습니다.
단순성, 사용 편의성, 에이전트리스 자동화 솔루션을 선호하는 사용자들은 Salt보다 Ansible을 더 많이 선택합니다. 또한 대규모 기여자 커뮤니티 및 파트너십의 장점을 누릴 수 있고, 네트워크 및 인프라 자동화와 같은 다양한 IT 도메인에 널리 도입되었으며, 다른 툴과의 통합 측면에서 높은 평가를 받고 있습니다.
Red Hat의 차별성
오픈소스를 핵심으로 하는 Red Hat Ansible Automation Platform은 보안이 강화되고 검증을 거친 서브스크립션 제품으로, 조직에 전체 라이프사이클 지원을 제공합니다. 업스트림 프로젝트인 Ansible은 전 세계 수천 명의 기여자들의 경험과 인텔리전스를 활용할 수 있습니다.
Ansible Automation Platform에는 다수의 업스트림 구성 요소, 60개 이상의 파트너가 제공하는 140개 이상의 Red Hat Ansible Certified Content Collections, 조직 내 자동화 설치, 구성, 지원을 위한 계획을 면밀히 수립할 수 있도록 지원하는 서비스형(as-a-Service) ROI(투자수익률) 툴이 포함되어 있습니다. 또한 오토메이션 개발자, 엔지니어, 운영팀 사이에서 플러그 앤 플레이 경험을 제공하는 동시에 다기능 팀을 목표로 한 엔드 투 엔드 자동화 경험을 창출합니다.
Automation Analytics 및 Red Hat Insights 등과 같은 Red Hat Ansible Automation Platform의 기능은 자동화 성능에 관한 액세스 가능 정보를 제공하므로 영향을 측정하고 문제를 더욱 정확하게 모니터링하거나 해결할 수 있습니다. 오토메이션 메시는 제어 및 실행 용량을 독립적으로 확장하여 다운타임이 거의 또는 전혀 없이 자동화가 필요한 엔드포인트에 더 가까운 위치에서 자동화를 제공합니다. 따라서 데이터센터에서 클라우드, 엣지 위치에 이르기까지 일관된 자동화를 경험할 수 있습니다.
Ansible은 사용하기 쉬운 에이전트리스 IT 자동화 솔루션으로서 단순성과 유연성, 강력한 사용자 커뮤니티를 제공한다는 점에서 독보적입니다.
레드햇 공식 블로그
레드햇 공식 블로그에서 고객, 파트너, 커뮤니티 에코시스템 등 현재 화제가 되는 최신 정보를 살펴 보세요.