SaltStack Config는 고객이 인프라를 관리하고 애플리케이션 및 서비스를 구축하는 과정에서 많은 가치를 제공했습니다. 하지만 VMware에서는 고객이 일상적인 소프트웨어 관리에서 벗어나도록 항상 노력하고 있습니다. SaltStack Config의 웹 호스팅 서비스를 제공하게 된 것을 기쁘게 생각합니다. 기본적으로 vRealize Automation Cloud 고객은 VMware 클라우드 서비스 포털을 통해 티켓을 연 다음 SaltStack Config의 호스팅된 인스턴스를 요청할 수 있습니다!
SaltStack Config의 주요 사용 사례 중 하나는 단일 UI에서 Salt 인프라(마스터 및 미니언)의 보기를 제공하는 것입니다. 이 기능은 관리자가 인프라 전반에서 UI에서 작업을 실행 및/또는 예약할 수 있으므로 유용합니다.
SaltStack Config 호스트 버전의 사용 사례도 크게 다르지 않습니다. 기본적으로 장치를 호스팅하고 Salt-master를 연결하기만 하면 됩니다. 그런 다음 vRealize Automation Cloud Assembly를 사용하여 Salt-master에 minion을 배포하고 SaltStack Config는 UI 및 작업 관리를 제공할 수 있습니다.
이것이 어떻게 작동하는지에 대해 좀 더 깊이 생각해 봅시다.
아키텍처 개요
아키텍처에 대한 가장 간단한 설명은 VMware가 조직을 위해 SaltStack Config 어플라이언스를 호스팅한다는 것입니다. 그런 다음 고객이 Salt-master를 클라우드에 미리 배포한 다음, 이러한 Salt-master를 마스터에 SSEAPE 플러그인을 설치하고 구성하는 기존 방법으로 SaltStack Config 인스턴스에 연결합니다. SSEAPE 플러그인은 Salt-master가 SaltStack Config 인스턴스에 등록하도록 지시한다.
SSEAPE 플러그인 구성 파일을 사용하려면 SaltStack Config 장치의 DNS 이름이 필요합니다. 이 DNS 이름은 vRealize Automation Cloud Assembly의 Infrastructure > Integrations에서 찾을 수 있습니다.
다음 단계는 SaltStack Config 인스턴스에 연결할 Salt-master의 공용 IP를 “화이트리스트”하는 티켓을 VMware에서 여는 것입니다. 이 티켓은 SaltStack Config 인스턴스를 요청한 위의 링크에서 열 수 있습니다.
SSEAPE 플러그인을 통해 SaltStack Config Hosted 인스턴스와 대화하도록 Salt-master를 구성하면 Administration > Master Keys 아래의 SaltStack Config에 Salt-master가 표시됩니다.
그래서 구조는 n개의 salt-master가 있는 것과 비슷한 것으로 보일 것입니다.
미니언 배포 및 상태 적용
SaltStack Config Hosted 인스턴스에 연결된 Salt-masters가 있으므로 미니언과 상태 파일을 배포하고 적용할 수 있습니다. 그런 다음 SaltStack Config Hosted 인스턴스는 환경을 관리하고 원하는 경우 상태 파일의 소스가 될 수 있습니다. 환경 설계 방법에 따라 상태 파일이 소스 제어되거나 솔트 마스터의 파일 루트로 내려갈 수 있기 때문에 “원하는 경우(if desired)”라고 말합니다.
vRealize Automation Cloud Assembly에서는 배포 시 미니언 에이전트로 가상 시스템을 구성하는 몇 가지 방법이 있습니다. 이러한 옵션에는 클라우드 시작 스크립트, ABX 작업/구독 및 vRealize Automation Cloud Template YAML 속성이 포함됩니다. 이 블로그에서는 클라우드 템플릿 YAML 방법에 대해 중점적으로 알아보겠습니다. 저는 최근에 YAML 방법을 설명하는 블로그를 여기에 썼기 때문에 이 블로그의 주제에 대해 깊이 파고들지 않을 것입니다.
vRealize Automation Cloud Assembly 클라우드 템플릿은 다음과 같습니다.
위의 vRealize Automation Cloud Template는 기본적으로 minion을 배포하고 minionId를 여기에 할당합니다(이 경우 배포 시 minionid를 입력함). 그런 다음 SaltStack에 Linux 시스템에 apache를 설치할 /apache/init.sls 상태 파일을 실행하도록 지시합니다. 원격 액세스는 에이전트 설치를 위해 미니언에 처음 연결하는 데 사용됩니다.
minion이 on premaster에 배포되면 Minions 아래의 SaltStack Config에 표시됩니다.
Activity > Completed 섹션에는 일부 작업이 실행된 것도 표시됩니다.
function state.apply가 적용된 작업은 상태 파일을 적용하고 deploy.minion은 미니언 에이전트를 배포하며, grains.items은 미니언의 그레인을 나열합니다.
결론 및 고려사항
이 SaltStack Config 인스턴스가 호스팅된다는 점을 고려할 때 다음과 같은 몇 가지 고려 사항이 있습니다.
- 현재 SaltStack Config 인스턴스에 대한 SSH 액세스는 수행되고 있지 않습니다.
- SG를 수정해야 하므로 각 솔트 마스터는 “화이트리스트”가 필요합니다.
- Minion을 SaltStack Config 어플라이언스에 직접 배포하지 않고 Salt-master에 배포합니다(minion IP를 화이트리스트로 작성하지 않을 경우).
SaltStack Config에 더 많은 클라우드 사용 기능을 계속 제공하기 위해 이 내용을 읽고 향후 블로그를 찾아보시기 바랍니다!
출처 : https://blogs.vmware.com/management/2021/06/vrealize-saltstack-config-hosted-a-technical-overview.html