SaltStack Config에서 작업을 사용하면 사용자 또는 팀이 정기적으로 수행하는 일반적인 구성 관리 작업과 절차를 간소화하고 자동화할 수 있습니다.

SaltStack Config의 작업이란?

작업은 원격 실행 작업을 실행하거나 SaltStack Config에서 관리되는 노드(미니언)에 상태 파일을 적용하는 데 사용됩니다. 작업은 일반적으로 자동화 및 여러 번 실행이 필요한 시스템 운영을 위한 것입니다. 시스템에서 노드를 프로비저닝, 구성, 배포, 모니터링 및 관리할 때 정기적으로 수행하는 일반 작업을 자동화하는 작업을 생성할 수 있습니다. 정기적으로 실행되도록 작업을 설정할 수도 있습니다(예: 구성 편차가 있는지 정기적으로 확인하고 방지하는 작업).

일반적으로 반복되는 작업을 저장하고 나중에 팀에서 재사용할 수 있도록 풍부한 작업 라이브러리를 점진적으로 구축할 수 있습니다. 구성 관리에 작업을 사용하면 팀이 시스템의 노드를 수동으로 설치, 구성, 배포, 업데이트 및 유지 관리하는 데 들이는 시간이 단축됩니다.

일반적인 작업의 예

작업 작동 방식에 대한 실습 위주의 소개 및 전형적인 작업의 몇 가지 실제 예를 보려면 SaltStack Config 시작 가이드에서 다음 자습서를 참조하십시오.

의도한 목표와 목적에 따라 SaltStack Config에서 수천 가지 다양한 종류의 작업을 실행할 수 있습니다. 수행하려는 작업이나 해결해야 하는 문제를 식별한 후에는 사용 가능한 Salt 모듈을 검색하여 필요한 기능을 수행하는 모듈을 찾을 수 있습니다.

SaltStack Config의 작업은 일반적으로 Salt 오픈 소스 커뮤니티에서 개발한 하나 이상의 실행 모듈 또는 상태 모듈을 통합합니다. Salt 실행 모듈은 Salt 미니언에서 실행되고 특정 작업을 수행할 수 있는 Python 코드가 포함된 작은 프로그램입니다. Salt 상태 모듈은 실행 모듈과 유사합니다. Salt 상태 모듈은 Salt 상태 파일 내에서 미니언에 대한 상태 적용을 관리하는 데 사용할 수 있는 Python 코드가 포함된 프로그램입니다.

다음 표에는 가장 일반적으로 사용되는 실행 및 상태 모듈 중 일부가 나와 있습니다.

Salt 모듈 설명

state.apply

미니언에 상태 파일을 적용하는 모듈입니다. 상태 파일이 실행되면 미니언이 현재 원하는 상태인지 확인합니다. 미니언이 현재 원하는 상태가 아니면 명령과 모듈을 실행하여 미니언을 원하는 상태로 만듭니다.

highstate는 top 파일에 정의된 모든 상태를 적용합니다. 자세한 내용은 state.highstate를 참조하십시오.

pkg.installed

올바른 버전의 패키지가 설치되어 있는지 확인하는 상태 모듈(상태 파일에서 사용됨)입니다. 설치되어 있지 않으면 패키지를 설치하고 해당 패키지의 올바른 버전인지 확인합니다. 특정 운영 체제에서 패키지를 설치하는 방법에 대한 자세한 내용은 salt.states.pkg를 참조하십시오.

file.managed

Salt 마스터에서 파일을 다운로드하고 나중에 사용할 수 있도록 해당 파일을 대상 미니언에 배치하는 상태 모듈(상태 파일에서 사용됨)입니다. Salt를 사용한 파일 관리에 대한 자세한 내용은 salt.states.file을 참조하십시오.

service.running

서비스가 실행 중인지 여부를 확인하는 상태 모듈(상태 파일에서 사용됨)입니다. 서비스가 실행되고 있지 않으면 서비스를 시작합니다. Salt를 사용하여 서비스를 시작하거나 다시 시작하는 방법에 대한 자세한 내용은 salt.states.service를 참조하십시오.

Salt 실행 및 상태 모듈의 보다 포괄적인 목록은 Salt 모듈 인덱스를 참조하십시오.

필요한 모듈이 Salt에 없으면 Python에서 사용자 지정 모듈을 작성하여 Salt를 확장할 수 있습니다. 원하는 경우 해당 모듈을 Salt 프로젝트에 업스트림으로 제출할 수도 있습니다. VMware가 공식적으로 후원하는 Salt 프로젝트 커뮤니티에는 IT 및 시스템 관리 역할을 담당하는 3,000명 이상의 기여자가 있습니다. Salt 커뮤니티는 가장 일반적인 작업을 수행하거나 시스템 관리자가 직면하는 가장 중요한 문제를 해결하기 위해 다양한 실행 및 상태 모듈을 생성하여 Salt를 확장합니다.

작업 워크플로 개요

일반적으로 상위 시스템 관리자는 나중에 재사용할 수 있도록 작업 설정을 생성, 구성 및 저장합니다. 그런 다음, 상위 관리자는 하위 관리자에게 액세스 권한이 부여된 모든 노드(대상)에서 이 작업을 실행하도록 하위 관리자에게 권한을 부여할 수 있습니다. 작업을 생성할 때 상위 관리자는 작업 입력을 정의합니다. 이것은 하위 관리자가 런타임 시 변경할 수 있는 특정 작업 설정 또는 변수를 나타냅니다.

예를 들어 상위 시스템 관리자는 가상 시스템을 생성 및 배포하고 이 시스템에 기본적인 애플리케이션 또는 서비스 집합을 설치하는 작업을 구축할 수 있습니다. 새 가상 시스템을 배포해야 할 때마다 이 작업을 실행하면 모든 배포에 동일한 애플리케이션 및 구성 집합이 적용되도록 할 수 있습니다. 기본 작업을 생성한 후 상위 시스템 관리자는 하위 관리자에게 액세스 권한이 있는 대상(노드)에서 이 작업을 실행할 수 있는 권한을 부여할 수 있습니다. 상위 관리자는 SaltStack Config의 RBAC(역할 기반 액세스 제어)를 사용하고 최소 권한 원칙에 따라 하위 관리자가 실행할 수 있는 작업과 노드(미니언)를 결정할 수 있습니다.

작업 생성 및 실행은 다단계 프로세스이며, SaltStack Config에서 몇 가지 다른 도구와 업무 공간을 사용해야 합니다. 다음 다이어그램은 전체 작업 워크플로에 대한 개요를 제공합니다.

작업 워크플로를 설명하는 다이어그램

각 단계는 다음 문서에 설명되어 있습니다.