IT 자동화 · 6 min read · Oct 26, 2025
AlmaLinux 9에서 Salt IT 자동화 프레임워크 시작하기

Salt 또는 Saltstack은 관리자가 여러 머신에 원격으로 명령을 실행할 수 있도록 하는 오픈 소스 IT 자동화 프레임워크입니다. Salt는 주로 Python으로 작성되었으며 Master와 Minion 아키텍처를 사용하여 설계되었습니다. SaltStack 마스터는 Salt 구성 관리의 중앙 컨트롤러이며, Minions는 SaltStack 마스터에 의해 관리되는 서버로, Minion을 대상 서버로 명명할 수 있습니다.
SaltStack 마스터는 기본적으로 Linux OS에서 실행되지만, Minion은 모든 운영 체제에서 사용할 수 있습니다. Saltstack은 자동화 배포, 원격 작업 실행 및 코드로서의 인프라를 위한 혁신적인 구성 관리입니다. SaltStack은 물리적 및 가상 서버를 포함한 여러 인프라 서버와 클라우드를 프로비저닝하는 데에도 사용할 수 있습니다.
이 튜토리얼에서는 AlmaLinux 9 서버에 Salt를 설치하는 방법을 보여줍니다. 또한 Salt 모듈의 기본 사용법을 배우고 첫 번째 Salt 상태 프로젝트를 생성합니다. 이 경우 LEMP 스택을 설치하기 위한 Salt 상태 프로젝트를 생성합니다.
필수 조건
이 가이드를 시작하기 전에 다음 사항을 확인하십시오:
- AlmaLinux 9 서버 3대.
- sudo 관리자 권한이 있는 비루트 사용자.
- 상태가 Permissive 또는 Disabled인 SELinux.
Salt 마스터에서 Firewalld 설정하기
Salt를 설치하기 전에 Salt 마스터 서버에서 Salt Minions가 Salt 마스터에 연결하는 데 사용할 포트 4505 및 4506를 열어야 합니다. 이를 위해 Firewalld를 사용할 것입니다.
다음 명령을 실행하여 Salt 마스터 서버의 포트 4505 및 4506을 엽니다.
sudo firewall-cmd --zone=public --permanent --add-port={4505,4506}/tcp이제 변경 사항을 적용하기 위해 firewalld를 다시 로드하고, 아래 명령을 사용하여 firewalld에서 열린 포트 목록을 확인합니다.
sudo firewall-cmd --reload
sudo firewall-cmd --list-all명령을 실행한 후 포트 4505 및 4506이 firewalld에 추가됩니다.

Salt 저장소 추가하기
Salt 패키지는 공식 Salt 저장소에서 사용할 수 있습니다. 이제 Salt 마스터와 Minion 모두에 대해 AlmaLinux 서버에 Salt 저장소를 추가합니다.
아래 명령을 실행하여 Salt GPG 키를 가져옵니다.
sudo rpm --import https://repo.saltproject.io/salt/py3/redhat/9/x86_64/SALT-PROJECT-GPG-PUBKEY-2023.pub이제 아래 명령을 사용하여 시스템에 Salt 저장소를 다운로드합니다.
curl -fsSL https://repo.saltproject.io/salt/py3/redhat/9/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo
Salt GPG 키와 저장소가 추가되면 아래 dnf 명령을 실행하여 시스템에서 사용 가능한 저장소 목록을 확인하고 모든 사용 가능한 저장소에 대한 메타데이터를 다운로드합니다.
sudo dnf repolist
sudo dnf makecache명령이 성공적으로 실행되면, 출력은 다음과 유사해야 합니다:

Salt 마스터 설치 및 구성하기
Salt 저장소를 추가한 후, 주 Salt 마스터 서버에 salt-master 패키지를 설치하고 구성합니다.
아래 dnf 명령을 사용하여 salt-master 패키지를 설치합니다. 설치를 진행하라는 메시지가 표시되면 y를 입력합니다.
sudo dnf install salt-master
설치가 완료되면, 다음 nano 편집기 명령을 사용하여 기본 Salt 구성 /etc/salt/master를 엽니다.
sudo nano /etc/salt/master기본 인터페이스 옵션을 로컬 IP 주소로 변경하고 ID 옵션을 서버 호스트 이름으로 변경합니다. 이 경우 Salt 마스터 서버는 로컬 IP 주소 192.168.5.50 및 호스트 이름 master로 구성됩니다.
interface: 192.168.5.50
id: master완료되면 파일을 저장하고 닫습니다.
다음으로, 아래 systemctl 명령을 실행하여 salt-master 서비스를 시작하고 활성화합니다.
sudo systemctl start salt-master
sudo systemctl enable salt-master마지막으로, 아래 명령을 실행하여 salt-master 서비스가 실행 중인지 확인합니다.
sudo systemctl status salt-master성공적으로 작동하면, 표시된 출력은 active (running)이어야 하며, 이는 salt-master 서비스가 실행 중임을 나타냅니다.

Salt Minion 설치 및 구성하기
Salt 마스터를 구성한 후, 다음 단계는 salt-minion을 설치하고 Minion 서버가 Salt 마스터에 연결하도록 구성하는 것입니다.
아래 dnf 명령을 실행하여 Minion 서버에 salt-minion 패키지를 설치합니다. 설치를 확인하라는 메시지가 표시되면 y를 입력합니다.
sudo dnf install salt-minion
설치 후, 아래 nano 편집기 명령을 사용하여 기본 Salt 구성 /etc/salt/minion을 엽니다.
sudo nano /etc/salt/minionmaster 옵션 내에 Salt 마스터 IP 주소를 입력합니다.
master: 192.168.5.50인터페이스 옵션에 Minion 로컬 IP 주소를 입력하고 ID 옵션에 서버 호스트 이름을 입력합니다.
interface: 192.168.5.20
id: minion1작업이 완료되면 파일을 저장하고 편집기를 종료합니다.
다음으로, 아래 systemctl 명령을 실행하여 salt-minion 서비스를 시작하고 활성화합니다.
sudo systemctl start salt-minion
sudo systemctl enable salt-minionsalt-minion 서비스가 시작되면, 아래 명령을 사용하여 확인합니다.
sudo systemctl status salt-minion모든 것이 잘 진행되면, 출력은 active (running)이 되어 salt-minion 서비스가 실행 중임을 확인합니다.

Salt Minions를 Salt Master에 등록하기
이 시점에서 salt-minion 서비스가 실행 중입니다. 그에 따라 Salt Minions는 Salt 마스터에 등록 요청을 보냅니다. Salt Minion 등록을 적용하려면 Salt 마스터에서 지문 키를 수락해야 합니다.
Salt 마스터로 이동하여 아래 salt-key 명령을 실행하여 지문 키 목록을 가져옵니다.
salt-key --finger-all여기에서 Salt Minion 서버 minion1 및 minion2의 지문이 여전히 ‘ Unaccepted Keys ‘ 상태입니다.

아래 명령을 실행하여 minion1 및 minion2 서버의 Salt Minion 키를 수락합니다.
salt-key -a minion1
salt-key -a minion2키를 수락하라는 메시지가 표시되면 Y를 입력하고, ‘ Key for minion minion1/2 accepted ‘와 같은 출력을 받아야 합니다.

이제 아래 명령을 사용하여 Salt 마스터에서 지문 키 목록을 다시 확인합니다.
salt-key --finger-all여기에서 minion1 및 minion2 서버의 Salt Minion 지문이 Accepted Keys 섹션에 있습니다.
이제 Salt 명령줄을 통해 Salt 마스터에서 Salt Minion 서버를 제어할 수 있습니다.
아래 salt 명령을 실행하여 Salt 마스터와 Minions 간의 연결을 확인하고 Minion 서버에서 Salt 버전을 확인합니다.
salt '*' test.ping
salt '*' test.versionSalt 마스터와 Minion 간의 연결이 성공하면 출력 True가 표시됩니다. 또한, test.version 매개변수의 결과로 Salt 3006.4가 설치되어 있음을 확인할 수 있습니다.

추가로, 아래와 같이 salt 명령을 사용하여 대상 Minion을 지정할 수 있습니다.
salt minion1 test.pingSalt 상태 모듈의 기본 사용법
다음 섹션에서는 Minion 서버를 관리하기 위한 Salt 상태 모듈 사용법을 배웁니다. cmd 모듈을 사용하여 임의의 Linux 명령을 실행하고, pkg 모듈을 사용하여 패키지 및 저장소를 관리하며, 서비스 모듈을 사용하여 서비스를 관리하는 등의 Salt 상태 모듈을 탐색합니다.
cmd 모듈을 통한 임의 명령 실행
아래 명령을 실행하여 cmd 상태 모듈을 통해 특정 Linux 명령을 실행합니다. 이 예에서는 uname -a 명령을 통해 Linux 커널의 세부 정보를 확인합니다.
salt '*' cmd.run 'uname -a'pkg 모듈을 통한 패키지 및 저장소 관리
이제 아래 pkg 상태 모듈을 사용하여 Minion 서버에서 패키지 및 저장소를 관리합니다.
pkg.list_repos를 통해 저장소 목록을 확인한 후, pkg.refresh_db를 통해 저장소를 업데이트합니다.
salt '*' pkg.list_repos
salt '*' pkg.refresh_db아래 pkg.list_upgrades 인수를 사용하여 사용 가능한 패키지 업데이트 목록을 확인할 수도 있습니다.
salt '*' pkg.list_upgrades특정 패키지를 설치하려면 아래 pkg.install을 사용합니다.
salt '*' pkg.install vim
서비스 모듈을 통한 서비스 관리
다음으로, 서비스 상태 모듈을 사용하여 Minion 서버에서 서비스를 관리할 수 있습니다.
대상 서버에서 서비스가 사용 가능한지 확인하려면 service.available 인수를 사용합니다. 또는 service.enabled 인수를 사용하여 대상 서비스가 활성화되어 있는지 확인하거나, service.get_running을 사용하여 서비스가 실행 중인지 확인할 수 있습니다.
salt '*' service.available chronyd
salt '*' service.enabled chronyd
salt '*' service.get_running
마지막으로, 특정 서비스에 의해 실행되는 시작 명령을 확인하려면 service.execs 인수를 사용합니다.
salt '*' service.execs첫 번째 Salt 상태 만들기
이 섹션에서는 LEMP 스택(Nginx, MariaDB 및 PHP-FPM)을 대상 Minion 서버에 설치하기 위한 첫 번째 Salt 상태 프로젝트를 생성합니다.
더 진행하기 전에, 특정 버전 패키지를 설치하는 데 사용할 저장소 모듈을 활성화하기 위해 아래 명령을 실행합니다.
salt '*' cmd.run 'sudo dnf module enable nginx:1.22 -y'
salt '*' cmd.run 'sudo dnf module enable php:8.1 -y'
이제 Salt 상태를 저장할 새 구성 디렉토리 /srv/salt/를 생성합니다.
mkdir -p /srv/salt/아래 명령을 실행하여 새 프로젝트 디렉토리 /srv/salt/lemp 및 init.sls 파일을 생성합니다.
mkdir -p /srv/salt/lemp
nano /srv/salt/lemp/init.sls다음 구성을 파일에 삽입합니다. 이 경우, pkg 상태 모듈을 통해 Minion 서버에 LEMP 스택 패키지를 설치하고, 각 서비스가 실행 중이고 활성화되어 있는지 확인합니다.
lemp_stack:
pkg.installed:
- pkgs:
- nginx
- mariadb-server
- php
- php-fpm
ginx:
service.running:
- enable: True
- reload: True
mariadb:
service.running:
- enable: True
- reload: True
php-fpm:
service.running:
- enable: True
- reload: True작업이 완료되면 파일을 저장하고 닫습니다.
다음으로, 아래 명령을 실행하여 lemp 프로젝트의 상태 구성 세부 정보를 표시합니다.
sudo salt * state.show_sls lemp명령이 실행된 후, 다음과 같은 자세한 구성을 받아야 합니다.

이제 아래 명령을 실행하여 Minion 서버에 lemp 상태를 적용합니다.
sudo salt '*' state.apply lemp자동 설치의 생성된 보고서를 볼 수 있어야 합니다. 이 경우 두 Minion 서버에 LEMP 스택 패키지를 성공적으로 설치했습니다.

서비스가 실행 중이고 활성화된 경우의 세부 사항은 다음과 같습니다.

결론
결론적으로, 이제 AlmaLinux 9 서버에 Salt를 단계별로 설치했습니다. AlmaLinux 서버에서 Salt 마스터와 Minions를 설치하고 구성했으며, Salt 상태 모듈의 기본 사용법을 배우고 LEMP 스택을 설치하기 위한 첫 번째 Salt 상태 프로젝트를 생성했습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.