4. 소금 상태

7686 단어
Salt state 의 핵심 은 SLS 또는 Salt State 파일 입 니 다.SLS 파일 이 사용 하 는 데이터 형식 은 YAML 입 니 다.SLS 는 시스템 의 목표 상태 (목표 상 태 는 기대 하 는 결과 이 고 달성 하고 자 하 는 상태) 를 묘 사 했 으 며 간단 한 방식 으로 이 데 이 터 를 포함 했다. 이것 이 바로 우리 가 흔히 말 하 는 설정 관리 이다.쉽게 말 하면 SLS 는 실제 적 으로 데이터 구조 (Salt 시스템 에 있어): 사전, 목록, 문자열 과 숫자 등 이다.이러한 방법 을 사용 하면 Salt 가 더욱 유연 해 집 니 다. state 파일 을 많이 쓰 면 무엇 을 써 야 하 는 지 더욱 잘 알 수 있 습 니 다.그 결 과 는 시스템 관리자 와 개발 자의 수요 가 계속 증가 하 더 라 도 시스템 이 쉽게 이해 할 수 있다 는 것 이다.States 는 master 엔 드 의 텍스트 파일 에 저 장 됩 니 다. master 의 파일 서비스 (Salt File Server) 를 통 해 필요 에 따라 minion 엔 드 로 전 송 됩 니 다.이 state 파일 들 은 State 트 리 를 구성 합 니 다.Salt 에서 중심 state 시스템 을 시작 하려 면 먼저 Salt 파일 서비스 (Salt 파일 서버 가 Salt State 시스템 에 응용 되 고 파일 전송 기능 을 제공 하 는 지 확인 해 야 합 니 다).Salt State 설정 은 master 에서 이 루어 집 니 다. state 파일 의 편집 도 master 에서 이 루어 집 니 다.여기 서 우리 가 알 아야 할 것 은 SLS 파일 은 모두 YAML 형식 언어 로 작 성 된 것 입 니 다.기본적으로 YAML 은 솔 트 스 택 전 체 를 관통 했다.
관련 문서
  • 솔 트 스테이 트 시스템 개관
  • Salt State System Reference
  • 명령 행 에서 State System 이 지원 하 는 목록 보기
  • salt '*' sys.list_state_modules
  • 특정 states 가 지원 하 는 functions 보기
  • salt '*' sys.list_state_functions
  • 지정 한 states 의 상세 한 용법 보기
  • salt '' sys.state_doc iptables 에서 minion 에서 사용 할 수 있 는 서비스 목록 salt 'service. get 가 져 오기all salt
    1. Salt State 사용 (Salt 파일 서버 사용)
    master 의 설정 을 수정 하여 가격 을 묻 고 file 을 엽 니 다.루트 환경
    file_roots:
       base:
         - /srv/salt/
    

    Salt File Server 를 여 는 것 을 표시 합 니 다.Salt State 의 SLS 파일 도 file 에 적 혀 있 습 니 다.roots 가 정의 하 는 디 렉 터 리 아래.
    2. SLS 파일 편집
    SLS 파일 은 / srv / salt / 디 렉 터 리 아래 에 있 습 니 다.
    httpd 설치 예
    1. TOP 파일 준비: / srv / salt / top. sls
    base:
      '*':
        - httpd
    

    파일 내용 분석:
  • top. sls 는 minion 과 SLS 파일 의 연결 을 책임 집 니 다. 즉, 어떤 minion 이 어떤 SLS 파일 을 실행 하 는 지 입 니 다.top. sls 는 기본 값 으로 base 탭 부터 분석 합 니 다. 다음 단 계 는 작업 할 목표 (즉, minion) 입 니 다. miniom 은 정규 로 일치 할 수도 있 고 grain 모듈, 그룹 이름 등 을 통 해 일치 할 수도 있 습 니 다.다음 단 계 는 실행 할 state 파일
  • 입 니 다.
  • '*' 는 모든 minion
  • 과 일치 합 니 다.
  • httpd 는 httpd. sls 파일 을 실행 하 겠 다 고 밝 혔 다.따라서 httpd. sls 파일
  • 을 / srv / salt / 디 렉 터 리 에서 편집 해 야 합 니 다.
  • grains 를 사용 하여 minion 과 일치 합 니 다.CentOS 시스템 과 일치 하 는 경우:
  • base:
      'os:CentOS':
        - match: grain          
        - httpd
    

    이곳 의 os 는 grains 의 속성 이 고 CentOS 는 os 속성 값 입 니 다.명령: salt 'grains. items 를 통 해 grains 가 어떤 속성 을 수 집 했 는 지 볼 수 있 습 니 다. match: grain 을 정의 해 야 합 니 다. 여 기 는 grains 를 통 해 minion 과 일치 하 는 * 이기 때 문 입 니 다.
    top. sls 파일 이 든 다른 state 파일 이 든 문법 이 정확 해 야 합 니 다 (예 를 들 어 state modules, modules funtion 등 이 정확 해 야 합 니 다). 그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다.
    2. / srv / salt / httpd. sls 파일 편집
    httpd:
       pkg:
         - installed
       service:
         - running
         - require:
           - pkg: httpd
    

    다른 표기 법:
    httpd:
      pkg.installed: []
      service.running:
        - require:
          - pkg: httpd
    

    파일 내용 분석 (첫 번 째 쓰기 로 예 를 들 면)
  • httpd. sls 의 데 이 터 는 YAML 형식
  • 첫 번 째 줄: ID 설명: 이 그룹의 데이터 ID.이 ID 는 유지 해 야 할 물건 의 이름 을 설정 합 니 다.예 를 들 어 명령, 소프트웨어 또는 패키지 이름 (예: httpd), 작 동 할 파일 또는 기타. * *
  • 두 번 째 줄: state 성명, 즉 어떤 state modules 를 사용 하 는 지 정의 합 니 다. 예 를 들 어 state pkg 을 사용 하여 주어진 가방 이 설치 되 었 는 지 확인 합 니 다.
  • 세 번 째 줄: 함수 성명;pkg state 의 어떤 함수 가 state 를 사용 하 는 지 정의 합 니 다.사실 두 번 째, 세 번 째 줄 은 pkg. intalled (형식 은. function >), 즉 위의 두 번 째 쓰기
  • 라 고 쓸 수 있 습 니 다.
  • 네 번 째 줄 은 service 라 는 state module
  • 이다.
  • 다섯 번 째 줄: service 의 함수
  • 여섯 번 째, 일곱 번 째 줄: require 함수, 이 조작 을 수행 하려 면 require 함수 후의 조건 이 달성 되 어야 합 니 다.httpd 서 비 스 를 실행 하려 면 httpd 패키지 가 설치 되 어 있 는 지 확인 해 야 합 니 다
  • 이상 의 데이터 역할: httpd 패키지 가 설치 되 고 서비스 가 실행 상태 에 있 는 지 확인 합 니 다.httpd 소프트웨어 가 설치 되 어 있 지 않 으 면 httpd 패키지
  • 를 설치 합 니 다.
  • state modules 더 보기
  • * * 비고: 이 ID 는 임의로 사용 할 수 있 습 니 다.임의의 것 이 라면 state modules 에서 유지 하거나 관리 할 것 을 명확 하 게 지정 해 야 합 니 다 (일반적으로 name 매개 변수 지정). 그렇지 않 으 면 설치 할 가방 이나 처리 할 파일 등 으로 이 ID 를 직접 사용 합 니 다. * *개인 적 으로 name 매개 변 수 를 사용 하여 지정 하 는 것 이 좋 습 니 다. 그러면 초보 자 들 이 쉽게 알 아 볼 수 있 습 니 다...................................

  • 위의 SLS 파일 은 이렇게 고 칠 수 있 습 니 다.
    install_httpd:
      pkg.installed:
        - name: httpd
    

    처음에 이런 SLS 파일 을 썼 을 때 나 는 매우 곤 혹 스 러 웠 다. 실제로 이런 이른바 'state modules', 함수 가 매개 변 수 를 설명 하 는 것 은 무엇 입 니까?사실 이런 대응 하 는 것 은 하나의 클래스 나 함수 이다.함수 성명 은 실제 적 으로 함 수 를 호출 하 는 것 입 니 다. 함수 성명 후의 값 은 함수 안의 매개 변수 입 니 다. pkg 모듈 을 예 로 들 면 우 리 는 그의 정 의 를 봅 니 다.
    salt.states.pkg.installed(name, version=None, refresh=None, fromrepo=None, skip_verify=False, skip_suggestions=False, pkgs=None, sources=None, allow_updates=False, pkg_verify=False, normalize=True, ignore_epoch=False, reinstall=False, update_holds=False, **kwargs)
    

    우 리 는 SLS 파일 을 쓸 때 이렇게 썼 다.installed 는 함수 입 니 다.서비스 모듈 의 정 의 를 다시 보십시오. 다음 과 같 습 니 다.
    salt.states.service.running(name, enable=None, sig=None, init_delay=None, **kwargs)
    

    Python 기반 이 있 으 면 훨씬 간단 해 보 입 니 다. 풀 한 덩어리 에 이 르 지 않 고 사용 할 줄 만 알 지만 어떻게 파 라 메 터 를 전달 하 는 지 모 릅 니 다.
    3. SLS 파일 실행
    SLS 파일 을 다 쓴 후에 해당 하 는 minion 에 대해 SLS 파일 을 실행 할 수 있 습 니 다. 실행 방법 은 두 가지 로 나 눌 수 있 습 니 다.
  • 모든 State SLS 파일 실행
  • salt '*' state.highstate
    minion 이 state. highstate 명령 을 실행 하면 minion 은 top. sls 파일 을 다운로드 하고 파일 의 표현 식 과 일치 합 니 다. 표현 식 이 일치 하면 열 거 된 모듈 은 다운로드, 컴 파일, 실 행 됩 니 다.
  • 특정한 State SLS 파일 실행
  • salt '*' state.sls
    이 예 와 같이:
    salt '*' state.sls httpd
    비고: State SLS 파일 에서 Grains 와 Pillar 의 데 이 터 를 참조 할 수 있 습 니 다.
    3. 여러 개의 SLS 파일
    Salt 를 확장 적 으로 배치 할 때 여러 개의 SLS 파일 을 사용 할 수 있 으 며, 2 개 이상 의 SLS 파일 에 대해 서 는 SLS 파일 트 리 를 결합 하여 만 들 수 있 습 니 다.
    예 를 들 어 httpd 서 비 스 를 설치 하고 시작 한 후 index. html 파일 을 minion 엔 드 의 / var / www / html 에 다운로드 하여 접근 할 수 있 습 니 다.
    /srv/salt/top.sls
    base:
      '*':
        - httpd
    

    /srv/salt/httpd/init.sls
    httpd:
      pkg:
        - installed
      service:
        - running
        - require:
          - pkg: httpd
    
    
    /var/www/html/index.html:
      file.managed:
        - source: salt://httpd/index.html
        - require:
          - pkg: httpd
    

    ID 를 설명 할 때 실제로 minion 이 파일 을 다운로드 한 후의 저장 경 로 를 지정 합 니 다. / var / www / html / index. html
    /srv/salt/httpd/index.html
    this is test
    
  • 마지막 으로 SLS
  • 실행
    salt '*' state.sls httpd
    4. Jinja 템 플 릿 형식의 SLS 파일
    예시
    5. state 의 상용 모듈
    Salt State System 의 SLS 파일 에서 state 의 각종 모듈 은 특정한 문법 이 있 습 니 다.
    SLS 파일 의 Salt State 모든 모듈 및 사용 방법
    SLS 파일 의 변수 참조 문법
    1. 상용 모듈
  • pkg: 소프트웨어 설치
  • file: 파일 관리
  • iptables: iptables 규칙
  • 2. 사용 사례
  • openssh - server 서비스 설치 및 방화벽 설정
  • /srv/salt/top.sls
    base:
      '*':
        - sshd
    

    /srv/salt/sshd/init.sls
    sshd:
      pkg:
        - installed
        - name: openssh-server
      service:
        - running
        - require: 
          - pkg: openssh-server
    
    firewall:
      iptables.append:
        - table: filter         #  filter 
        - chain: INPUT          #  INPUT 
        - jump: ACCEPT          #    :ACCEPT/REJECT
        - match: state          #    
        - connstate: NEW
        - dport: 22             #      
        - proto: TCP            #    
        - sport: 1025:65535     #     
        - save: True            #service iptables save。    /etc/sysconfig/iptables
    

    iptables 마지막 명령 은 다음 과 같 습 니 다:
    #/sbin/iptables  -t filter -A INPUT  -p TCP -m state --state NEW --dport 22 --sport 1025:65535 --jump ACCEPT
    
    #service iptables save
    

    Salt State 시스템 은 Salt 의 핵심 중 하나 입 니 다. SLS 를 능숙 하 게 쓰 면 여러 대상 호스트 를 편리 하 게 관리 할 수 있 습 니 다.더 많은 State Modules 홈 페이지 참조

    좋은 웹페이지 즐겨찾기