SaltStack-솔트 파일 서버

Salt 파일 서버는 상태 비 저장 ZeroMQ 서버입니다. 솔트 마스터에 내장되어 있습니다. 솔트 파일 서버는 마스터에서 미니언으로 파일을 배포하는 데 사용됩니다. 그것은 다른 모듈을 포함합니다. 이 장에서는 솔트 파일 서버, 구성, 솔트 파일 서버와 관련된 모듈, 파이썬에서 솔트 파일 서버에 액세스하는 방법 등에 대해 이해해 보겠습니다.

파일 서버 백엔드

파일 서버 백엔드를 사용하면 Salt 파일 서버가 로컬 파일 시스템, Git 버전 제어 시스템 등과 같은 다른 파일 서버에 대한 투명한 인터페이스 역할을 할 수 있습니다.

Git 파일 서버 백엔드는 마스터 파일에서 다음 구성을 사용하여 활성화 할 수 있습니다.

fileserver_backend:
   - git

다중 백엔드 파일 시스템을 활성화하려면 다음 구성을 사용할 수 있습니다.

fileserver_backend:
   - roots
   - git

해당 백엔드 서버의 특정 섹션을 사용하여 다른 백엔드 서버에 대한 추가 옵션을 지정할 수도 있습니다.

로컬 파일 시스템

이 시스템을 사용하려면 다음 코드를 사용해야합니다.

file_roots:
   base:
      - /srv/salt/prod

Git 파일 시스템

이 시스템을 사용하려면 다음 코드를 사용해야합니다.

gitfs_remotes:
   - https://github.com/sample/sample1.git

파일 요청

Salt에는 특정 환경에 대한 파일을 요청할 수있는 옵션이 있습니다.

salt://path/to/file?saltenv = base

여기서 환경은 roots 옵션을 사용하여 정의됩니다.

파일 서버 구성

솔트 파일은 여러 루트 디렉토리 내에 할당 할 수 있으며 검색 할 파일 경로와 환경을 모두 지정하여 액세스 할 수 있습니다. 개별 환경은 여러 디렉토리 루트에 걸쳐있을 수 있습니다.

환경

기본 환경은 base입니다. 이 환경은 정의되며 다른 환경이 지정되지 않은 경우 파일을 다운로드하는 데 사용됩니다.

file_roots:
   base:
      - /srv/salt/base

아래 코드와 같이 여러 환경을 사용할 수도 있습니다.

file_roots:
   base:
      - /srv/salt/base
   dev:
      - /srv/salt/dev
      - /srv/salt/base

CP 모듈

CP 모듈은 Salt file server. 그만큼salt-cp 명령을 사용하여 Salt 파일 서버에서 제공하는 파일을 배포 할 수도 있습니다.

GET_FILE

그만큼 cp.get_file기능은 미니언에서 마스터에서 파일을 다운로드하는 데 사용할 수 있습니다. 다음 코드 블록과 같이 정의됩니다.

salt '*' cp.get_file salt://vimrc /etc/vimrc

위의 명령은 모든 Salt 미니언에게 vimrc 파일 및 복사 /etc/vimrc.

템플릿 활성화

다음과 같이 get_file에서 템플릿 옵션을 활성화 할 수 있습니다.

salt '*' cp.get_file "salt://vimrc" /etc/vimrc template = jinja

압축 적용

압축을 사용하려면 gzip명명 된 인수. 유효한 값은 1에서 9까지의 정수입니다. 여기서 1은 최소 압축이고 9는 최대 값입니다.

명령은 다음과 같이 정의됩니다-

salt '*' cp.get_file salt://vimrc /etc/vimrc gzip = 5

GET_DIR

그만큼 cp.get_dir기능을 미니언에서 사용하여 마스터에서 전체 디렉토리를 다운로드 할 수 있습니다. 다음 코드 블록에 정의되어 있습니다.

salt '*' cp.get_dir salt://etc/mysql /etc

그만큼 cp.get_dir템플릿 렌더링 및 gzip 압축 인수를 지원합니다. 원하는 경우 할당 할 수도 있습니다.

FILECLIENT 모듈

Salt는 솔트 파일 서버에 액세스하는 데 도움이되는 Python 모듈을 제공합니다. 그만큼salt/fileclient.py 모듈은 미니언에서 마스터로의 통신을 설정하는 데 사용됩니다.

파일을 가져 오는 샘플 코드는 다음과 같습니다.

import salt.minion
import salt.fileclient

def get_file(path, dest, saltenv = ‘base'):
   client = salt.fileclient.get_file_client(__opts__)
   return client.get_file(path, dest, true, saltenv)

여기,

  • opts는 모듈이 솔트 환경에서 실행될 때 사용할 수 있습니다. 그렇지 않으면 구성 경로를 제공해야합니다./etc/salt/minion.

  • path 솔트 파일 서버에있는 소스 파일의 경로를 나타냅니다.

  • dest 파일의 대상 경로를 나타냅니다.

  • saltenv 환경을 의미

다음 장에서는 사용 방법을 이해합니다. Git 파일 서버로.