vRealize Automation 클라우드 템플릿을 위한 SaltStack 구성 리소스 유형을 소개하면서 vRealize Automation과 SaltStack Config의 향상된 최신 기능을 소개하게 되어 매우 기쁘게 생각합니다. 작년에 saltConfiguration 속성을 가상 시스템 속성 집합의 일부로 클라우드 템플릿 YAML에 도입했습니다. saltConfiguration 속성은 Minion 에이전트를 배포하기 위한 SaltStack 관련 YAML 코드를 제공하고 선택적으로 vRealize Automation에서 배포 시 Minion에서 상태 파일을 실행하는 첫 번째 단계였습니다.
새 SaltStack 구성 리소스 유형은 가상 시스템과 연결할 수 있는 끌어서 놓기 캔버스 개체를 제공하여 이 작업을 ‘notch’으로 개선합니다. 이 새로운 기능을 사용하면 소프트웨어 및 운영 체제 구성을 위한 vRealize Automation과 함께 SaltStack Config를 보다 쉽고 빠르게 사용할 수 있습니다.
SaltStack 리소스 유형 개요
vRealize Automation의 “리소스 유형”에 익숙하지 않은 경우 설명하겠습니다. 리소스 유형은 클라우드 템플릿 캔버스로 끌 수 있는 개체입니다. 여기에는 가상 시스템, 네트워크, 로드 밸런서, s3 버킷 등이 포함될 수 있습니다. 아래 스크린샷에서는 리소스 유형 목록이 왼쪽에 있고 개체를 캔버스로 끌 수 있습니다.
리소스 유형 개체를 캔버스로 끌어오면 개체와 관련된 YAML 코드를 수정할 수 있습니다. 예를 들어 SaltStack Config 리소스 유형에 대한 샘플 YAML 스니펫은 다음과 같습니다.
Cloud_SaltStack_1: type: Cloud.SaltStack properties: hosts: - ${resource.Cloud_vSphere_Machine_1.id} masterId: saltstack_enterprise_installer stateFiles: - /user/doe.sls saltEnvironment: sse variables: user: joe
이 리소스 유형의 속성을 좀 더 자세히 살펴보겠습니다.
또한 remoteAccess 속성을 가상 시스템 자체에 추가해야 합니다. 그러면 vRealize Automation이 시스템에 로그인하고 에이전트를 설치할 수 있도록 SSH/WinRM 자격 증명이 제공됩니다.
이제 이 새 리소스 유형을 사용하는 방법에 대해 알아보겠습니다.
머신과 스테이트 배포
SaltStack 구성 리소스 유형은 기본적으로 다음을 수행합니다.
- 요청 시 가상 시스템에 Minion 에이전트를 배포합니다.
- 배포 중에 상태 파일을 설치합니다(선택 사항).
스테이트 파일은 SaltStack의 YAML 또는 파이썬 파일로, 해당 미니언으로 수행할 작업을 선언하는 데 사용됩니다. 예를 들어 방화벽 규칙 해제, 시스템 패치 적용, 패키지 설치 등이 있습니다.
시스템이 배포되면 vRealize Automation에 다음과 같이 표시됩니다.
Cloud_SaltStack_1 개체를 클릭하면 배포와 함께 제공된 몇 가지 속성을 볼 수 있습니다. 다음과 같은 속성입니다.
- 미니언에서 실행된 스테이트 파일
- saltstack 구성 리소스 유형과 연결된 Minion
- 전달된 변수 등입니다.
vRealize Automation은 배포의 History 섹션에도 SaltStack Config의 로그를 기록합니다.
참고: vRealize Automation에서 배포가 삭제되면 Minion도 SaltStack Config에서 삭제됩니다.
이제 머신이 구현되고 vRealize Automation에서 완료된 것처럼 보이므로, SaltStack Config에서 어떤 일이 벌어지고 있는지 살펴보겠습니다.
SaltStack Config 활동
SaltStack Config는 Minion을 설치하고 상태를 실행하는 역할을 하므로 SaltStack Config 인터페이스 내에서 모든 작업이 정상적으로 수행되도록 해야 합니다. SaltStack Config 인터페이스로 이동하면 Activities(활동)라는 섹션이 표시됩니다. 단일 상태 파일이 포함된 단일 Minion이 배포된 경우 몇 가지 활동이 표시됩니다.
minion 에이전트를 시스템으로 가져오는 deploy.minion 작업, minion 키를 받아들이는 key.accept 작업 및 클라우드 템플릿에 지정된 상태 파일을 적용하는 state.apply 작업이 있습니다. state.apply 작업 결과를 보면 실행된 스테이트 파일과 미니언에 사용자가 추가되었음을 알 수 있습니다.
위의 예에서 사용자를 배포하는 데 사용된 상태 파일은 참고용으로 여기에 있습니다.
{% set username = pillar.get('user', 'random') %} friend: user.present: - names: - {{username}}
이 예에서는 filler.get 명령을 사용하여 클라우드 템플릿 YAML에 있는 사용자 변수를 참조하고 있습니다. SaltStack 구성 리소스 유형과 함께 변수를 전달하면 변수가 일시적으로 저장되고 필러를 통해 액세스할 수 있습니다. pillar.get 명령은 클라우드 템플릿의 사용자 변수와 연결된 값을 검색합니다. jinja를 사용하여 상태 파일 변수를 설정하고 클라우드 템플릿 변수와 연결합니다. 이를 통해 상태 파일 변수가 호출되는 모든 위치에 값이 전파될 수 있습니다. 위의 예에서 상태 변수는 사용자 이름으로 설정된 다음 names 속성에서 참조됩니다.
마무리
SaltStack 구성 리소스 유형은 vRealize Automation 8.7 이상 및 vRealize Automation Cloud에서만 사용할 수 있습니다. 인프라를 현대화하고 자동화하는 과정에서 이 흥미로운 새 기능이 큰 도움이 되기를 바랍니다.
출처 : https://blogs.vmware.com/management/2022/03/saltstack-config-resource-type-in-vrealize-automation-cloud-template.html