Salt Highstate 데이터 구조 정의
이 문 서 는 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/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.