Salt Highstate 데이터 구조 정의

6322 단어
작자 언
이 문 서 는 SLS 파일 의 각 부분의 이름과 의미, 그리고 SLS 의 데이터 처리 후의 데이터 구 조 를 상세 하 게 설명 했다.
저 는 단지 Salt Stack 의 초보 자 일 뿐 입 니 다. 만약 글 에 잘못된 부분 이 있다 면 아낌없이 가르쳐 주 십시오.공부 하 는 과정 에서 저 는 실험 을 했 습 니 다. 많은 실 수 를 했 고 경험 을 쌓 았 습 니 다. Salt Stack 의 운영 에 대해 서도 어느 정도 알 고 있 습 니 다. 만약 에 문제 가 있 거나 이해 하지 못 하 는 부분 이 있 으 면 댓 글 교 류 를 환영 합 니 다!
Salt State Tree
Top file
Salt State 시스템 의 입구 파일 은 minion 이 어느 환경 에 있 는 지, 어떤 SLS 모듈 을 불 러 오 는 지 정의 합 니 다.
State tree
file 에 저장roots 디 렉 터 리 의 일련의 SLS 파일SLS 모듈 형식 으로 State tree 를 구성 합 니 다.
성명 포함
성명 포함
하나의 list 요 소 는 이 SLS 파일 의 다른 SLS 모듈 을 참조 하 는 것 입 니 다.하 이 스테이 트 구조의 꼭대기 층 에 만 사용 할 수 있 습 니 다.
예시:
include:
  - edit.vim
  - http.server

모듈 참조
모듈 참조
SLS 모듈 의 이름 은 Salt master 에 있 는 파일 구조 로 명명 되 었 습 니 다. edit.vim 라 는 모듈 지향 salt://edit/vim.sls .
ID 성명
ID 성명
독립 된 하 이 스테이 트 데이터 세그먼트 를 정의 합 니 다.ID 는 highstate dict 에서 key 로 서 대응 하 는 value 는 state 성명 과 requisit 성명 을 포함 하 는 또 다른 dict 입 니 다.하 이 스테이 트 구조의 맨 위 나 extend 성명 의 다음 층 에 사용 합 니 다.ID 는 전체 State tree 에서 유일 해 야 합 니 다.같은 ID 를 두 번 사용 하면 가장 먼저 일치 하 는 것 만 효력 이 발생 하고 다른 모든 동명 ID 성명 은 무 시 됩 니 다.
확장 성명
확장 성명
인 용 된 SLS 모듈 의 name 설명 을 확장 합 니 다.extend 성명 도 dict 입 니 다. key 는 인 용 된 SLS 모듈 에서 정 의 된 ID 여야 합 니 다.하 이 스테이 트 구조의 꼭대기 층 에 만 사용 할 수 있 습 니 다.
다른 SLS 파일 에서 정의 하 는 state 성명 을 추가 하거나 수정 해 야 할 때 Extend 성명 은 매우 유용 합 니 다.아래 코드 는 my website. sls 파일 에서 왔 습 니 다. include 와 extend 는 apache. sls 모듈 (apache 감시 대상 추가) 을 사용 하여 아파 치 서 비 스 를 설정 파일 my website 가 바 뀌 었 을 때 자동 으로 다시 시작 합 니 다.
include:
  - apache
extend:
  apache:
    service:
      - watch:
        - file: mywebsite
mywebsite:
  file:
    - managed

국가 성명
국가 성명
하나의 list 는 최소한 하나의 function 성명 을 정의 하 는 string, 0 개 이상 의 functionarg 성명 의 dict 를 포함 합 니 다.이름 덮어 쓰기 부분 (name 과 names 성명), requistie 성명 등 선택 할 수 있 는 구성원 도 있 습 니 다.ID 성명 의 다음 단계 에 만 사용 할 수 있 습 니 다.
요청 한 성명
요청 한 성명
하나의 list, 그 구성원 은 requisite 참조 입 니 다.동작 의존 트 리 를 만 드 는 데 사용 합 니 다.Salt states 는 정확 한 순서에 따라 실행 되 고 require 나 watch 다른 Salt state 는 실행 순 서 를 조정 할 수 있 도록 설계 되 었 다.list 구성 요소 로 state 에서 다음 단 계 를 설명 하거나 key 로 ID 에서 다음 단 계 를 설명 합 니 다.
필수 인용
필수 인용
키 가 하나 밖 에 없 는 dict.key 는 인 용 된 state 성명 의 이름 이 고 value 는 인 용 된 ID 성명 의 이름 입 니 다.requisite 성명 의 구성원 으로 만 사용 할 수 있 습 니 다.
기능 성명
기능 성명
state 에서 실행 할 function.1 개의 state 성명 중 1 개의 function 성명 만 있 을 수 있 습 니 다.
다음 예 에서 state 성명 은 state 모듈 pkg 모듈 의 installed 기능 을 호출 했 습 니 다.
httpd:
  pkg.installed

줄 내 줄 임 말로 function (위의 예 에서 바로) 를 설명 할 수 있 고 전체 쓰기 로 데이터 구 조 를 더욱 선명 하 게 할 수 있 습 니 다.
httpd:
  pkg:
    - installed

주의해 야 할 것 은 연속 적 인 두 개의 약자 형식 은 무효 이 며, 의혹 을 피하 기 위해 서 는 모두 완전한 표기 법 을 사용 하 는 것 을 권장 합 니 다.INVALID:
httpd:
  pkg.installed
  service.running

VALID:
httpd:
  pkg:
    - installed
  service:
    - running

state 성명 의 구성원 으로 만 사용 할 수 있 습 니 다.
함수 arg 성명
함수 arg 성명
key 의 dict 는 1 개 만 있 고 매개 변수 로 function 성명 에 전달 되 며 그 값 은 유효한 Python 형식 입 니 다.그 유형 은 반드시 function 의 수 요 를 만족 시 켜 야 한다.function 에서 다음 단 계 를 설명 합 니 다.
다음 예 에서 state 성명 은 file 이 고 function 성명 은 managed 이 며 user, group 과 mode 는 managed 에 전 달 된 매개 변수 입 니 다.
/etc/http/conf/http.conf:
  file.managed:
    - user: root
    - group: root
    - mode: 644

성명
성명
state 성명 의 name 인 자 를 덮어 씁 니 다.name 인자 의 기본 값 은 ID 선언 입 니 다.name 은 항상 하나의 키 사전 입 니 다. 값 형식 은 string 입 니 다.
어떤 장면 에서 기본 name 인 자 를 수정 하 는 것 이 매우 유용 합 니 다.예 를 들 어 ID 충돌 을 피 할 수 있다.다음 예 에서 두 state 는 ID 로 동시에 사용 할 수 없습니다 /etc/motd .
motd_perms:
  file.managed:
    - name: /etc/motd
    - mode: 644
motd_quote:
  file.append:
    - name: /etc/motd
    - text: "Of all smells, bread; of all tastes, salt."

또 하나의 name 성명 을 사용 하 는 장면 은 ID 성명 이 매우 길 고 이 ID 를 여러 번 인용 해 야 한 다 는 것 이다.아래 의 예 에서 사용 mywebsite /etc/apache2/sites-available/mywebsite.com 보다 훨씬 편리 하 다.
mywebsite:
  file.managed:
    - name: /etc/apache2/sites-available/mywebsite.com
    - source: salt://mywebsite.com
a2ensite mywebsite.com:
  cmd.wait:
    - unless: test -L /etc/apache2/sites-enabled/mywebsite.com
    - watch:
      - file: mywebsite
apache2:
  service:
    - running
    - watch:
      - file: mywebsite

이름 성명
이름 성명
state 성명 을 여러 개의 다른 이름 의 state 성명 으로 확장 합 니 다.
아래 의 예 를 보십시오.
python-pkgs:
  pkg.installed:
    - names:
      - python-django
      - python-crypto
      - python-yaml

lowstate 로 전환 한 결 과 는:
python-django:
  pkg.installed
python-crypto:
  pkg.installed
python-yaml:
  pkg.installed

완전한 예
아래 YAML 은 하나의 완전한 예 입 니 다. 그 중의 이름 부분 은 hightstate 구성 요소 이름 을 사용 합 니 다.
:
  - 
  - 
:
  :
    []
# standard declaration
:
  :
    - 
    - 
    - 
    - 
    - 
    - :
      - 
      - 
# inline function and names
:
  .:
    - 
    - 
    - 
    - :
      - 
      - 
      - 
    - :
      - 
      - 
# multiple states for single id
:
  :
    - 
    - 
    - 
    - :
      - 
  :
    - 
    - 
    - :
      - 
      - 
    - :
      - 

"ITPUB 블 로그" 에서 왔 습 니 다. 링크:http://blog.itpub.net/31383567/viewspace-2653722/전재 가 필요 하 다 면 출처 를 밝 혀 주 십시오. 그렇지 않 으 면 법 적 책임 을 추궁 할 것 입 니 다.
다음으로 전송:http://blog.itpub.net/31383567/viewspace-2653722/

좋은 웹페이지 즐겨찾기