최근에 SaltStack에 대해서 업무적으로 활용을 해야 하는 상황이라 관련 자료를 찾아 스터디를 하게 되었다.
saltstack 홈페이지에 가면 많은 자료를 확인할 수 있지만, 여기에서는 중요한 부분만 요약하여 정리해 보도록 하겠다.
아래 사이트가 saltstack 메인 사이트로 전체 자료를 보고 싶은 사람은 아래 링크를 참고하도록 하자.
https://docs.saltproject.io/en/getstarted/overview.html
SaltStack은 기본적으로 마스터 서버와 클라이언트라고 하는 Minion 서버로 구성되며,
Master 서버에서 실행할 명령을 Minion을 지정하여 전달하면, 실행후 해당 결과를 마스터 서버로 전달하는 구조로 실행 결과를 확인할 수 있는 Stateful을 방식이다.
1. Salt Master Install
Mater
$sudo apt-get install salt-master $sudo apt-get install salt-ssh |
설치를 완료하면 시스템 데몬으로 등록됨
salt-master.service
주요 환경 설정 파일/etc/salt/master
# The address of the interface to bind to: # The tcp port used by the publisher: |
Interface이외에는 기본 값을 사용하면 되며, minion의 기본 통신 포트는 TCP 4505 포트임
디버그 모드 실행
$sudo systemctl stop salt-master $sudo salt-master -l debug |
2. Slat Minion Install
Minion
$sudo apt-get install salt-minion |
설치를 완료하면 시스템 데몬으로 등록됨
현재 AWS의 경우 Sec.Arc. 팀에서 사전에 설치해 놓은 데몬이 있기 때문에 별도로 설치가 필요하지 않음
주요 환경 설정 파일 /etc/salt/minion
master: |
minion 옵션중 master:를 구성한 마스터 서버 IP를 입력하면 연결이 완료된다.
정상 동작 확인을 위해 디버깅 모드 실행은 서비스 데몬을 중지 하고 실행하여 동작 현황을 확인 할 수 있다.
디버그 모드 실행
#sudo systemctl stop salt-minion #sudo salt-monion -l debug |
3. Minion Join
기본적으로 minion이 통신을 요청하면 마스터에서 승인을 해줘야 마스터에 가입이 가능한 구조
Minion 승인을 위해 구분하는 id는 별도로 지정하지 않으면, Hostname(AWS는 인스턴스 id)이 구분 키로 확인된다.
(salt-key -L 를 통해 확인가능)
기본적으로는 Minion 승인 작업을 진행해야 한다. Mater에서 salt-key -L 명령을 통해 리스트를 확인하자.
$sudo salt-key -L ##리스트 확인후 대기중인 id를 -a를 통해 승인 $sudo salt-key -a <id> |
auto-accept 필드를 이용하여 자동으로 승인하는 것도 가능하다.
이제 클라이언트 minion이 정상적으로 응답을 하는지 test.ping을 통해 확인하여 True를 반환한다면 명령을 실행할 준비가 된 것이다.
## 가입 ID가 기본으로 사용됨 $sudo salt '*' test.ping
## CIDR 방식으로 사용가능 $sudo salt -S xxx.xxx.xxx.xxx/24 test.ping |
'Linux' 카테고리의 다른 글
Linux 파일 안의 내용 검색하기 (0) | 2021.05.05 |
---|---|
SaltStack - 2. Grains 그룹기반 관리 (0) | 2021.03.12 |
MySQL/MariaDB - root 계정 초기화/비밀번호 재설정 (0) | 2021.01.25 |
Linux - Disable IPv6 (0) | 2021.01.20 |
How to Install Squid 3 on Ubuntu (0) | 2020.12.29 |