Agentless Salt – 스테이트 적용

솔트 스테이트는 솔트 SSH와 완전히 호환되며 시스템 설정 및 구성을 신속하게 자동화하는 데 사용할 수 있습니다.

 Configuration Management 가이드에는 솔트 상태 생성에 대한 자세한 설명이 포함되어 있습니다. 이 설명서의 모든 정보(Salt pillar 및 Salt’s file server 포함)는 Salt SSH를 사용하여 상태를 적용하는 데 사용할 수 있습니다.

자습서: 스테이트

상태를 생성하고 적용하기 전에 Salt SSH 환경에 몇 가지를 추가하여 salt-ssh 디렉토리의 디렉토리를 가리키도록 상태 시스템 파일 위치를 구성하겠습니다(기본적으로 상태 파일은 /srv/salt에 저장됨).

이전에 생성한 Salt SSH 디렉토리(~/salt-ssh)에 있고 가상 환경(source venv/bin/activate)을 활성화했는지 확인합니다.

  1. 다음 내용으로 salt-ssh/master 파일을 생성하십시오.
file_roots:
  base:
    - /home/vagrant/salt-ssh/states # you might need to replace 'vagrant' in your environment

2. states 이름이 지정된 디렉터리를 생성한 후 다음을 states/network.sls로 추가하고 저장하십시오:

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

3. 패키지를 설치 중이므로 이 상태를 적용하기 전에 상승된 권한을 사용하도록 설정해야 합니다. roster 파일을 열고 sudo: True를 추가합니다.

managed:
  host: 192.168.70.11
  user: vagrant
  sudo: True

4. 다음 명령을 사용하여 상태를 적용합니다.

salt-ssh '*' state.apply network

(이전에는 Saltfile에 config_dir 경로를 추가했으므로, salt-ssh는 salt-ssh/master 파일을 찾습니다.)

파일 관리

솔트 SSH 상태에서도 파일을 관리할 수 있습니다! Salt SSH는 모든 salt:// 파일 참조를 확인하고 에이전트 없는 시스템으로 파일을 자동으로 전송합니다.

  1. salt-ssh/states 디렉터리에서 이름이 files인 하위 디렉터리를 생성하십시오.
  2. 다음과 함께 salt-ssh/states/files/sample.conf 파일을 추가합니다.
setting=value
setting2=value2

3. 다음 내용이 포함된 salt-ssh/states/config.sls라는 새 상태 파일을 추가하고 저장합니다.

manage some app config file:
  file.managed:
    - name: /tmp/sample.conf
    - source: salt://files/sample.conf

4. 다음 명령을 사용하여 상태를 적용합니다.

salt-ssh '*' state.apply config

이 상태를 적용할 때마다 에이전트 없는 시스템의 구성 파일이 salt-ssh/status/files의 버전과 일치하도록 업데이트됩니다.

추가된 재미를 위해 원격 실행을 사용하여 구성 파일의 내용을 나열할 수 있습니다.

salt-ssh '*' cmd.run 'cat /tmp/sample.conf'

소스 제어

salt-ssh/states 디렉토리에 상태 파일을 배치하는 대신 salt-ssh/master의 내용을 다음과 같이 변경하여 GitHub repo에 액세스하도록 솔트를 쉽게 구성할 수 있습니다.

fileserver_backend:
  - git

gitfs_remotes:
  - https://github.com/yourusername/yourrepo.git

자세한 내용은 Git Fileserver Backend를 참조하십시오.

추가 예

다음은 시스템을 구성하기 위해 스테이트 파일에 추가할 수 있는 다른 명령의 몇 가지 예입니다.

Github에서 클론

Clone the SaltStack bootstrap script repo:
  pkg.installed: 
    - name: git # make sure git is installed first!
  git.latest:
    - name: https://github.com/saltstack/salt-bootstrap
    - rev: develop
    - target: /tmp/salt

서비스 실행

Make sure the mysql service is running:
  service.running:
    - name: mysql

사용자 생성

user account for pete:
  user.present:
    - name: pete
    - shell: /bin/bash
    - home: /home/pete
    - groups:
      - sudo

이 가이드에서는 Salt SSH를 사용하여 서버 관리를 시작하는 간단한 방법을 보여 줍니다. Salt SSH에서 사용하는 모든 상태 파일과 명령은 마스터-미니언 모드에서 실행되는 Salt와 완전히 호환되므로 두 모드 간에 쉽게 전환할 수 있습니다.

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

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

You May Also Like