SaltStack Enterprise를 vRealize Automation SaltStack Config로 리브랜딩하여 vRealize 제품군에 포함시키는 첫 번째 단계를 발표하게 되어 기쁩니다! 최근에 vRealize Automation을 사용하여 Salt Master와 Salt Minion이 모두 포함된 환경을 배포하는 방법에 대한 블로그를 게시했습니다. 여기에서 이 내용을 읽어보실 수 있습니다. 이 블로그에서는 vRealize Automation SaltStack Config의 몇 가지 다른 기능, 특히 다음 항목에 대해 강조하고자 합니다.

  • 리액터 & 비콘
  • 상태 파일
  • 오케스트레이션
  • 애플리케이션 배포
  • vRealize Automation 클라우드 구성

이 블로그는 SaltStack에 익숙하지 않을 수 있는 기존 vRealize Automation 고객에게 특히 유용할 수 있으며 SaltStack 고객이 vRealize Automation을 좀 더 잘 이해할 수 있도록 도와줍니다.

이 블로그에서는 vRealize Automation과 vRealize Automation SaltStack Config를 함께 사용하여 배포된 가상 시스템에 애플리케이션을 자동으로 배포한 다음 해당 애플리케이션에 대한 해킹을 시뮬레이션한 다음 vRealize Automation SaltStack Config가 어떻게 변경 사항을 감지하고 애플리케이션을 적절한 상태로 복원하는지 보여드리겠습니다.

원자로(Reactor) & 비콘(Beacon)?

위의 리액터 및 비콘에 대해 언급했을 때 자동화 및 자가 복구에 도움이 되는 독특하고 강력한 기능을 제공하는 vRealize Automation SaltStack Config의 기능을 참조했습니다.

리액터로는 기본적으로 어떤 사건이 발생했을 때 어떻게 해야 하는지를 시스템에 알려주는 메커니즘이다. 예를 들어 솔트 미니언은 솔트 마스터를 사용하여 인증한 다음, 예를 들어 특정 기준을 충족하면 솔트 키를 자동으로 승인하려고 합니다.

비콘은 미니언에게 배치되어 파일 변경이나 운영체제 변경과 같은 이벤트를 찾아보고 솔트 마스터에게 보고한 다음 리액터가 그 변화에 대해 어떻게 해야 하는지 시스템에 알려준다.

이 블로그에서 볼 수 있듯이 오케스트레이션은 이 모든 것에 의해 트리거될 수 있습니다. 기본적으로 리액터가 어떤 사건을 감지하면, 시스템은 예를 들어 응용 프로그램을 설치할 수 있다.

스테이트 파일(State File)의 설명

vRealize Automation SaltStack Config에서 상태 파일은 시스템에 작업을 지시하는 선언 파일입니다.

스테이트 파일은 설치해야 하는 패키지(소프트웨어), 모든 Salt Minion(맨 위 파일)에서 수행해야 하는 작업 및 오케스트레이션에 도움이 되는 기타 작업과 같은 다양한 작업을 지원합니다. 블로그 전반에 걸쳐 다양한 스테이트(.sls) 파일을 사용할 것입니다.

이제 몇 가지 주제를 다루었으니, 이제 이것을 살펴보기 시작하자, 재미있을 것이다!

vRealize Automation SaltStack Config 주 이벤트

이 블로그에서 보여드리고 싶은 주요 내용은 비즈니스를 운영하고 고객이 제품을 구입할 수 있도록 쇼핑 카트 애플리케이션을 배포하는 방법입니다. 하지만 내 웹사이트가 해킹을 당하면 어떡하지! 운영자의 개입 없이 비즈니스를 신속하게 복구할 수 있는 방법

먼저 vRealize Automation으로 이동하여 클라우드 템플릿을 생성하여 가상 시스템의 구성을 선언한 다음 스크립트를 실행하여 Salt Minion을 설치해야 합니다. vRealize Automation으로 이동하여 Cloud Assembly로 이동한 후 Design > Cloud Templates > New From > Blank Canvas를 클릭하여 이 작업을 수행할 수 있습니다. 그런 다음 가상 시스템을 캔버스에 끌어다 놓고 YAML 코드를 편집하여 Linux 이미지가 설치되도록 하고 일부 클라우드 구성 코드를 입력하여 미니언을 설치합니다.

위에서 강조 표시된 코드는 Linux에서 Salt Minion을 부트스트랩하는 방법을 참조하지만 Ubuntu 업그레이드 서비스를 중지하는 두 줄의 코드가 그 위에 있습니다. 이러한 업데이트 서비스가 나중에 애플리케이션 설치와 관련하여 발생하는 오케스트레이션을 방해할 수 있기 때문에 이 작업을 수행했습니다. 키가 해당 코드 없이 Salt-Master를 사용하여 자동으로 수락하지만 나머지 오케스트레이션에 영향을 줄 수 있습니다.

이제 클라우드-템플릿을 완료했으므로 가상 머신을 배포하고 리액터를 사용하여 키를 자동 수락할 수 있습니다. 자동 승인 키에 대해 자세히 알고 싶으시면 제 블로그를 참고하세요.

따라서 vRealize Automation SaltStack Config에서 키를 수락하여 Salt-Minion이 등록되면 특정 미니언 ID를 가진 기계를 찾고 나서 Shopping Cart 애플리케이션을 설치하도록 리액터를 구성했습니다. 다음은 리액터의 예입니다.

두 번째 명령 ‘salt/minion/*/start’는 기본적으로 미니언이 시작할 때 opencart.sls를 살펴본다는 것을 나타냅니다. opencart.sls(opencart 오케스트레이션 파일)를 살펴보겠습니다.

그래서 열린 cart.sls 파일을 보면 맨 위에 “jinja”를 사용해서 미니언들을 걸러내는 선이 보입니다. 리액터가 우리의 예에서 필터링하지 않는다는 것을 명심하기 바란다. .sls 파일은 “oc-cool”로 시작하는 minion_id를 가진 미니언들을 걸러낼 것이다. 그런 다음 파일은 state.orchstate를 시작하고 opencart(기본 디렉터리에 있는)라는 디렉터리를 찾는 함수를 실행합니다.

최종적으로 다음 명령을 수행하기 위해 다른 .sls 파일을 실행합니다. 그러나 다음 파일이 “init.sls” 파일이기 때문에 오케스트레이션 파일에서 디렉터리를 지정할 수 있습니다. 기본적으로 “init.sls”는 vRealize Automation SaltStack Config의 특수 파일입니다. 그런 다음 init.sls 파일은 Salt-minion에서 수행해야 하는 작업에 대한 지침이 있는 설치 .sls(ocinstall.sls)를 호출합니다. 다음은 ocinstall.sls 파일의 일부입니다.

이 파일은 일부 패키지를 설치하고 스크립트를 실행하여 응용 프로그램을 설치한 다음 비콘 파일을 Salt-Minion에 배포합니다. 패키지는 쇼핑 카트 응용 프로그램의 필수 구성 요소입니다. setup.sh는 cmd: 섹션 아래에서 호출되는 응용 프로그램을 설치하는 데 필요한 스크립트가 포함되어 있습니다.

비콘 파일은 궁극적으로 index.php 파일의 변경 사항을 찾고 있습니다. 만약 그 파일이 수정되면 비콘은 그 이벤트를 솔트마스터에게 보고하고, 그러면 리액터는 다음에 무엇을 해야 할지 알게 될 것입니다. 파일의 pkgs 목록을 보면 python-pynotify가 그 중 하나임을 알 수 있는데, 이는 비콘이 작동하기 위한 Salt-Minion의 요구사항이지만, 우리가 index.php 파일에 대한 해킹을 시뮬레이션할 때까지는 비콘이 트리거되지 않습니다.

vRealize Automation SaltStack Config를 통해 애플리케이션이 설치되면 웹 사이트가 가동되어 실행됩니다.

이제 vRealize Automation Code Stream을 사용하여 minion에 ssh하고 index.php 파일을 “hacked” index.php로 바꾸겠습니다. 내가 해킹을 한 후에 웹사이트는 이렇게 생겼어!

그러면 비컨 파일이 변경 사항을 인식해야 합니다. 다음은 비컨 파일의 예입니다. /var/www/opencart/index.php 파일을 살펴보십시오. 우리는 수정사항을 찾고 있습니다.

vRealize Automation SaltStack Config에 비콘이 변경 사항을 통지한 후 수행할 작업을 알려주도록 리액터로 파일이 수정되었다. 리액터로 코드의 예는 다음과 같다.

fix_index_php.sls는 다음에 수행할 작업을 시스템에 지시합니다. 기본적으로 우리는 fix_hack 디렉토리에 있는 다른 .sls 파일을 호출할 것입니다. fix_hack 디렉토리에는 해킹된 index.php 파일을 원래 index.php 파일로 대체하라는 지침이 있습니다. 다음은 이를 지원하는 init.sls의 일부 예입니다.

이 파일을 교환하는 작업은 운영자의 개입 없이 자동으로 수행되며 웹 사이트를 원래 모습대로 되돌립니다. 다음은 vRealize Automation SaltStack Config 내에서 hackfix를 수행할 때의 작업 로그의 예입니다.

지금까지 vRealize Automation SaltStack Config를 통해 운영을 지속하고 이 기술의 강력한 기능을 사용하여 Salt-minion의 필터 기준에 따라 애플리케이션을 자동으로 설치하는 방법을 살펴보았습니다. 고객이 vRealize Automation SaltStack Config를 통해 vRealize Automation 사용 사례를 확장하고 이 주제에 대한 더 많은 컨텐츠와 블로그를 시청할 수 있기를 기대합니다!

출처 : https://blogs.vmware.com/management/2020/11/vrealize-automation-saltstack-config-a-technical-overview.html
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다

You May Also Like

SaltStack 유연성

모든 관리 툴과 Git 포크(fork)는 유연하다고 주장하지만, SaltStack에서는 유연하다고 말할 때 전체 관리 접근 방식이 유연하다는 것을 의미합니다.…