시스템에서 올바른 파일을 얻는 것이 올바른 소프트웨어를 설치하는 것보다 더 어려운 경우가 많습니다. Salt에는 파일 및 폴더를 중앙 관리 시스템에 전송할 수 있는 파일 서버가 내장되어 있습니다.

SALT://

Salt state 파일을 srv/salt 디렉터리에 배치하는 것은 익숙하지만 이 디렉터리에 배치한 다른 파일 및 폴더는 Salt 미니언도 사용할 수 있습니다. salt:// URL에 이어 srv/salt 디렉터리에 상대적인 파일 경로를 사용하여 솔트 상태의 이러한 파일을 참조할 수 있습니다.

파일 템플릿
솔트를 사용하면 템플릿 및 변수를 사용하여 파일을 관리할 수 있습니다. 자세한 내용은 salt.states.file docs를 참조하십시오.
GIT 파일 서버
많은 조직에서 변경 추적을 위해 소스 제어 하에 모든 구성 및 리소스 파일을 저장합니다. 솔트를 사용하면 솔트 마스터의 로컬 파일 시스템 대신(또는 추가) Git repo를 파일 서버로 사용하여 이 워크플로를 크게 간소화할 수 있습니다.
예를 들어 http.conf가 Git repo에서 원본인 경우 변경 사항이 커밋될 때마다 모든 대상 시스템이 다음에 file.managed 솔트 스테이트가 실행될 때 변경 내용을 받게 됩니다.
Git repo를 솔트 파일 서버 백엔드로 설정하는 방법에 대한 자세한 내용은 Git Fileserver Backend Walkthrough 를 참조하십시오.

file.managed

이 솔트 스테이트 기능을 사용하면 솔트 마스터에서 원본 파일을 지정하여 로컬 파일을 관리할 수 있습니다.

deploy the http.conf file:
  file.managed:
    - name: /etc/http/conf/http.conf
    - source: salt://apache/http.conf

source 경로가 salt://로 시작되므로 이 파일의 소스가 Salt 마스터의 /srv/salt/apache/http.conf인지 확인할 수 있습니다.

이 Salt 상태가 적용될 때마다 Salt는 로컬 파일이 서버의 버전과 일치하는지 확인합니다. 이를 통해 구성 드리프트를 방지하고 애플리케이션이 서로 다른 시스템에서 동일하게 구성되도록 할 수 있습니다.

예를 들어 다운로드 속도를 제한하는 사용자 정의 설정이 포함된 lftp용 글로벌 구성 파일을 배포하려는 경우 file.managed를 사용하여 이 작업을 수행할 수 있습니다.

install network packages:
  pkg.installed:
    - pkgs:
      - rsync
      - lftp
      - curl

copy lftp config file:
  file.managed:
    - name: /etc/lftp.conf
    - source: salt://_tmpl_lftp.conf

구성을 한 줄만 변경하면 되므로, file.append를 사용하여 추가할 새 줄을 삽입하기만 하면 됩니다.

install network packages:
  pkg.installed:
    - pkgs:
      - rsync
      - lftp
      - curl

update lftp conf:
  file.append:
    - name: /etc/lftp.conf
    - text: set net:limit-rate 100000:500000

file.recurse

이 Salt state 함수는 전체 디렉토리를 복사합니다.

copy some files to the web server:
  file.recurse:
    - name: /var/www
    - source: salt://apache/www

요약

이제 SaltStack의 구성 관리 시스템을 더 잘 이해할 수 있고, Salt State를 직접 작성할 수 있는 충분한 지식을 갖추어야 합니다. 영감을 찾는 경우 SaltStack Formula Repo 에는 많은 예가 포함되어 있습니다.

출처 : https://docs.saltproject.io/en/getstarted/config/files.html
답글 남기기

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

You May Also Like

SaltStack 구성요소

자습서에서 이러한 구성 요소에 대한 더 나은 테스트 소개를 받을 수 있지만, SaltStack에서 각 구성 요소가 수행하는 역할에…