SaltStack 구성 시작하기 – Part 1: 스테이트(state) 파일 생성

SaltStack Config가 설치되었고 이제 스크립트 실행, 애플리케이션 설치, 상태 관리 등을 시작하려고 합니다. 하지만 어디서 어떻게 시작해야 할까요? 저는 어떻게 시작해야 하는지에 대한 다부진 블로그 시리즈를 쓰려고 합니다. Windows 및 Linux 시스템에 대한 첫 번째 상태 파일 작성에서 SaltStack Config를 사용하여 환경 전반에 걸쳐 오케스트레이션을 구축하는 단계로 넘어갑니다.

먼저 SaltStack Config를 시작하는 데 도움이 되는 리소스는 이 블로그뿐만이 아니라는 것을 미리 말씀드리고 싶습니다. 이 블로그의 하단에 몇 가지 목록을 작성했는데, 해당 자료도 확인해 보시기를 권합니다.

SaltStack Config를 구성 및 실행한 후 시작할 수 있는 몇 가지 작업에 대해 알아보겠습니다!

미니언 두 개 배치

이 블로그에서 저는 미니언들과 함께 일할 것입니다. 그리고 일반 리눅스 및 윈도우 미니언들은 좀 더 구체적으로 설명하겠습니다. 네트워크 장치에 프록시 미니언을 사용하는 방법은 나중에 블로그에 저장하기 때문에 사용하지 않을 것입니다.

먼저 몇 명의 미니언, Linux 및/또는 Windows 미니언 등이 필요합니다. 하지만 예를 들어 리눅스에만 집중하고 싶다면 그것도 좋습니다.

vRealize Automation Cloud Assembly를 사용하여 몇 개의 테스트 미니언을 배포하거나 SaltStack Repo의 지침을 사용하여 일부 테스트 시스템에 미니언 에이전트를 설치할 수 있습니다.

배포가 완료되면 SaltStack Config UI에서 monion 아래에 이러한 항목이 표시됩니다.

Windows 패키지 및 상태

솔트스택은 winrepo라고 불리는 것을 가지고 있으며, 기본적으로 소프트웨어 저장소를 사용하여 윈도우즈 시스템에 패키지를 설치하는 시스템이다.

먼저 winrepo를 구성하려면 먼저 saltmaster에 pygit2 또는 gitpython을 설치합니다.

그런 다음 명령을 실행하여 솔트 마스터에 repo를 설치합니다.

salt-run winrepo.update_git_repos

/srv/salt/win/repo-ng/salt-winrep-ng으로 이동하여 디렉토리 목록을 작성합니다. 윈도우즈 시스템에 패키지를 설치하는 데 사용되는 여러 스테이트 파일(sls)이 표시됩니다. 이러한 파일은 repo에서 가져오므로 패키지 상태 파일을 추가하고 해당 파일을 수정할 수 있습니다.

cat 또는 vi를 통해 상태 파일 중 하나를 보고 내용을 확인합니다. 기본적으로 winrepo-ng은 파일에 논리를 추가하기 위해 Jinja를 사용한다.

여기서 두 가지 또는 세 가지 작업을 수행하여 이러한 스테이트 파일을 Windows 미니언에 적용할 수 있습니다. SaltStack Config의 Config > File Server 섹션에서 스테이트 파일을 작성하고 윈도우즈 시스템에 적용할 패키지를 나열할 수 있습니다. 기본적으로 sls 확장자 없이 sls 파일의 이름을 입력합니다.

windows_packages:   pkg.installed:     - pkgs:       - firefox_x86       - python3_x86

Job을 생성하여 File Server에서 생성한 스테이트 파일을 호출합니다. 이렇게 하려면 Config > Jobs로 이동하고 Create를 클릭합니다. 그런 다음 Function state.apply로 작업을 생성하고 방금 생성한 상태 파일을 찾습니다.

작업을 실행한 후 Activity > Completed 섹션에서 작업 상태를 확인할 수 있습니다.

repo 디렉토리에 있는 상태 파일을 호출하는 작업만 생성하려면 작업을 생성하고 원하는 파일을 선택할 수도 있습니다.

이 작업에서 내 States 섹션을 확인합니다.

Saltmaster의 winrepo 디렉토리에 있는 파일은 드롭다운에서 사용할 수 있으며, 그런 다음 이 작업에서 직접 실행할 수 있습니다.

괄호에서 언급한 “세 번째” 방법은 CLI 및 원격 실행을 통해 이러한 winRepo 상태 파일을 적용할 수 있다는 것입니다. 예를 들면:

salt -G 'os:Windows' pkg.install 'vscode'

Windows에서는 패키지 설치 외에도 몇 가지 다른 작업을 수행할 수 있습니다. 또한 상태 파일을 작성하여 로컬 그룹 정책을 수정하거나 패치 등을 처리할 수 있습니다. 로컬 그룹 정책 상태 파일의 간단한 예를 살펴보겠습니다.

Config > File Server의 SaltStack Config File Server에서 로컬 그룹 정책을 설정할 수 있는 상태 파일을 생성합니다.

set_pass_history:   lgpo.set:     - computer_policy:         Enforce password history: 24  update_gpo:   cmd.run:     - name: "gpupdate /force"

그런 다음 방금 생성한 스테이트 파일을 호출하는 작업을 생성합니다.

Windows 미니언을 클릭한 다음 “Run Job”을 선택하여 방금 만든 Windows 정책 작업을 선택합니다. RUN NOW를 누르십시오.

그런 다음 Activity –> Completed로 이동하여 작업이 성공적으로 실행되었는지 확인하십시오.

저는 작업을 실행하고 상태 파일을 만드는 여러 가지 방법을 제시함으로써 여러분을 혼란스럽게 하려는 것이 아니라, 인터페이스 탐색을 배우고 논리적으로 일을 할 수 있는 방법을 이해하는 데 도움이 되기를 더 바랬습니다.

지금까지 Windows에서 소프트웨어를 설치하고 그룹 정책 작업을 수행했습니다. Linux 미니언과 함께 작업할 수 있는 방법을 살펴보겠습니다.

리눅스 패키지 관리

Linux 미니언에서 작업을 수행할 상태 파일을 만드는 데 바로 착수해 보겠습니다. 먼저 다시 설치하고 서비스가 실행 중인지 확인하십시오.

Config–> File Server로 이동하여 redis를 설치하고 서비스를 시작할 상태 파일을 생성합니다.

install_redis:   pkg.installed:     - name: redis   start_redis:   service.running:     - name: redis

Config–> Jobs로 이동하여 방금 생성한 상태 파일을 실행하는 작업을 생성합니다.

작업을 실행한 후 Activity –> Completed 섹션을 확인하고 작업 결과를 확인합니다.

Highstate 및 Top File

SaltStack에는 highstate라고 불리는 개념이 있는데, 여기서는 highstate의 정확한 정의로 들어가지는 않겠지만 highstate를 적용하는 응용 프로그램 중 하나에 대해 이야기하겠습니다. 이 응용 프로그램은 Top File을 호출하는 방법입니다.

Top 파일(top.sls)은 기본적으로 관리자가 highstate가 실행될 때 특정 미니언에 대해 실행해야 하는 여러 상태 파일을 선언할 수 있도록 합니다. 이러한 상태 파일은 일반적으로 전체 환경에서 “상태”를 적용하거나 “상태”를 유지하도록 설계되었습니다. 예를 들어 모든 ‘웹 서버’에 특정 방화벽 구성이 있는지 확인하려면 ‘웹 서버’ 범주에 속하는 미니언들이 방화벽 구성 상태가 적용되도록 적절한 상태 파일을 가져올 수 있도록 top.sls 파일을 생성할 수 있습니다. “휴…”

State 파일 블로그에 top.sls에 대한 설명을 포함하고 예를 제시하는 것이 중요하다고 느꼈습니다. 왜냐하면 top.sls은 사용자의 환경에 높은 수준의 적용을 가져올 수 있기 때문입니다. 간단한 예를 살펴보자.

SaltStack Config 내에서 Config >File Server에서 파일 생성하고, “top.sls”라고 하고 기본 환경의 루트에 바로 넣습니다. 이와 비슷하게:

sseapi(SSC 파일 루트)에서 루트는 “파일 루트(file root)”이기 때문에 우리는 베이스의 루트에 넣는다. 상위 파일을 마스터에 직접 배치하면 (기본적으로) /srv/salt로 들어갑니다.

state.apply(상태 파일이 제공되지 않음) 또는 state.highstate를 실행하는 경우 이 top 파일을 실행합니다.

그런 다음 top 파일은 다음과 같은 grain =os:Ubuntu가 있는 모든 미니언에 대해 redis 스테이스트 파일을 실행합니다.

자, 여기 있군요. 상태 파일을 먼저 살펴보고 미니언 구성을 시작하는 데 도움이 되는 발판을 마련하십시오. 다음 블로그에서는 실행 중인 스크립트와 더 발전된 상태에 대해 알아보겠습니다. 읽어줘서 고마워!

출처 : https://blogs.vmware.com/management/2021/06/getting-started-with-saltstack-config-part-1-creating-state-files.html
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

Agentless Salt – 연결

Salt SSH가 연결 세부 정보를 저장하고 에이전트 없는 시스템에 연결하는 방법을 알아보겠습니다. 로스터 파일 기본적으로 Salt는 YAML 파일을…
Read More

Agentless Salt – 소개

솔트 에이전트리스를 사용하여 솔트 미니언을 설치하지 않고도 시스템에서 Salt 명령을 실행할 수 있습니다. 원격 시스템의 유일한 요구 사항은…