SaltStack 구성 관리 – 인크루드(include)

Salt 스테이트를 모듈식으로 유지하고 재사용 가능 상태로 유지하려면 각 구성 태스크를 Salt State 트리에 한 번만 설명해야 합니다. 여러 위치에서 동일한 구성 태스크를 사용해야 하는 경우 include를 사용할 수 있습니다.

포함을 사용하면 간단합니다. 상태 파일의 맨 위(ID 외부에 있음)에 다음 형식을 사용하여 포함 항목을 추가하십시오.

include:
  - sls1 
  - sls2

여기서 sls1 및 sls2는 포함할 SLS 파일의 이름입니다. .sls 확장자는 포함할 필요가 없습니다.

포함할 솔트 스테이트 파일이 솔트 스테이트 트리의 하위 디렉터리에 있는 경우 디렉터리 구분 기호로 점(.)을 사용하십시오.

include:
  - dir.sls1 

포함된 솔트 상태는 현재 파일의 맨 위에 삽입되어 먼저 처리됩니다.

솔트 스테이트 트리
솔트 상태 파일은 /srv/salt/ 디렉토리에서 솔트 상태 트리라고 하는 디렉토리 트리로 구성됩니다. 생성한 모든 새 상태는 이 디렉터리에 배치되어야 합니다. 이 위치를 변경하려면 /etc/salt/master에서 file_roots 설정을 업데이트합니다.

이 가이드 앞부분의 솔트 스테이트를 기억하십니까?

sync directory using lftp:
  cmd.run:
    - name: lftp -c "open -u {{ pillar['ftpusername'] }},{{ pillar['ftppassword'] }}
           -p 22 sftp://example.com;mirror -c -R /local /remote"

이 Salt 상태는 lftp 실행 파일에 따라 다르므로 다른 Salt 상태를 생성하여 lftp가 설치되었는지 확인하는 것이 좋습니다. 그러면 우리는 포함을 사용하여 두 스테이트를 결합할 수 있다.

srv/salt/lftp.sls:

install lftp:
  pkg.installed:
    - name: lftp

srv/salt/dir-sync.sls:

include:
  - lftp

sync directory using lftp:
  cmd.run:
    - name: lftp -c "open -u {{ pillar['ftpusername'] }},{{ pillar['ftppassword'] }}
           -p 22 sftp://example.com;mirror -c -R /local /remote"

include를 사용하면 다른 곳에서 lftp.sls 솔트 스테이트를 사용하여 이러한 디렉터리를 동기화하지 않고 lftp를 설치할 수 있다는 이점이 있습니다.

탑 파일만 사용하는 것이 어떻겠습니까?

하나의 Salt state 대신 다른 Salt state를 포함합니다.

include:
  - sls1

install a useful package:
  pkg.installed:
    - name: cowsay

필요한 경우 각 파일을 자체 Salt state 파일에 넣은 다음 맨 위 파일을 사용하여 두 파일을 모두 포함할 수 있습니다.

base:
  'web*':
    - sls1
    - sls2

솔트 스테이트가 항상 다른 상태를 필요로 한다면 포함을 사용하는 것이 더 나은 선택입니다. 탑 파일의 두 상태를 포함하여 일부 시스템만 두 가지 솔트 상태를 모두 수신해야 하는 경우 각 시스템을 유연하게 선택할 수 있습니다.

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

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

You May Also Like