설치 가이드 · 6 min read · Nov 15, 2025
Debian 11에서 Saltstack Master 및 Minion 설치 방법

SaltStack은 무료이며 오픈 소스이고 Python 기반의 자동화 및 구성 관리 소프트웨어입니다. 중앙 위치에서 인프라를 관리하는 데 도움이 되는 명령줄 도구입니다. SaltStack은 네 가지 구성 요소로 구성됩니다. 각 구성 요소에 대한 간략한 설명은 아래에 나와 있습니다:
- Salt Master는 미니언에 대한 명령줄 컨트롤러 역할을 합니다. 여러 미니언을 제어하고 관리하는 데 사용됩니다.
- Salt Minions는 마스터로부터 구성 및 명령을 받는 슬레이브 데몬입니다.
- Formula는 구성 관리 파일입니다.
- Execution은 미니언에서 실행되는 여러 명령 및 모듈입니다.
이 기사에서는 Debian 11에서 SaltStack Master 및 Minion 시스템을 설치하는 방법을 보여드리겠습니다.
전제 조건
- Debian 11을 실행하는 두 개의 서버.
- 서버에 루트 비밀번호가 설정되어 있어야 합니다.
Saltstack Master 설치
기본적으로 SaltStack은 Debian 11 기본 저장소에 포함되어 있지 않습니다. 따라서 SaltStack 저장소를 APT에 추가해야 합니다. 다음 명령을 실행하여 추가할 수 있습니다:
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list저장소가 추가되면 다음 명령을 사용하여 저장소 캐시를 업데이트합니다:
apt-get update -y다음으로, 다음 명령을 사용하여 필요한 종속성을 설치합니다:
apt-get install python3 salt-common -y다음으로, 다음 명령을 사용하여 SaltStack 마스터를 설치합니다:
apt-get install salt-master -y성공적으로 설치한 후 다음 단계로 진행할 수 있습니다.
Saltstack Master 구성
다음으로, SaltStack 구성 파일에서 바인드 인터페이스를 정의해야 합니다.
nano /etc/salt/master다음 줄을 변경합니다:
interface: 0.0.0.0파일을 저장하고 닫은 후 다음 명령을 사용하여 SaltStack 마스터를 재시작합니다:
systemctl restart salt-master다음 명령을 사용하여 SaltStack의 상태를 확인할 수 있습니다:
systemctl status salt-master다음과 같은 출력을 얻을 수 있습니다:
? salt-master.service - The Salt Master Server
Loaded: loaded (/lib/systemd/system/salt-master.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-02-12 07:39:48 UTC; 9s ago
Docs: man:salt-master(1)
file:///usr/share/doc/salt/html/contents.html
https://docs.saltproject.io/en/latest/contents.html
Main PID: 19403 (salt-master)
Tasks: 32 (limit: 2341)
Memory: 201.5M
CPU: 6.109s
CGroup: /system.slice/salt-master.service
??19403 /usr/bin/python3 /usr/bin/salt-master
??19407 /usr/bin/python3 /usr/bin/salt-master
??19431 /usr/bin/python3 /usr/bin/salt-master
??19434 /usr/bin/python3 /usr/bin/salt-master
??19435 /usr/bin/python3 /usr/bin/salt-master
??19436 /usr/bin/python3 /usr/bin/salt-master
??19437 /usr/bin/python3 /usr/bin/salt-master
??19444 /usr/bin/python3 /usr/bin/salt-master
??19445 /usr/bin/python3 /usr/bin/salt-master
??19446 /usr/bin/python3 /usr/bin/salt-master
??19448 /usr/bin/python3 /usr/bin/salt-master
??19451 /usr/bin/python3 /usr/bin/salt-master
??19454 /usr/bin/python3 /usr/bin/salt-master
Feb 12 07:39:48 debian11 systemd[1]: Starting The Salt Master Server...
Feb 12 07:39:48 debian11 systemd[1]: Started The Salt Master Server.작업이 끝나면 다음 단계로 진행할 수 있습니다.
Saltstack Minion 설치 및 구성
이 시점에서 SaltStack Master가 설치되고 구성되었습니다. 이제 다른 머신에 로그인하고 다음 명령을 사용하여 SaltStack Minion 저장소를 추가합니다:
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list저장소가 추가되면 다음 명령을 사용하여 저장소 캐시를 업데이트합니다:
apt-get update -y다음으로, 다음 명령을 사용하여 SaltStack Minion을 설치합니다:
apt-get install salt-minion -y성공적으로 설치한 후 SaltStack Minion 구성 파일을 편집하고 마스터 IP 주소를 정의합니다.
nano /etc/salt/minion다음 줄을 변경합니다:
master: salt-master-ip작업이 끝나면 파일을 저장하고 닫습니다.
다음으로, 마스터의 공개 지문을 사용하여 미니언을 인증해야 합니다.
Salt Master 머신에서 다음 명령을 사용하여 모든 지문을 나열합니다:
salt-key --finger-all다음과 같은 출력을 얻을 수 있습니다:
Local Keys:
master.pem: b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78
master.pub: 5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1이제 master.pub 지문 줄을 복사하여 Minion 구성 파일에 추가합니다.
Minion 머신에서 구성 파일을 편집합니다:
nano /etc/salt/minion아래와 같이 마스터 지문을 추가합니다:
master_finger: '5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1'또한 Minion의 이름을 정의해야 합니다:
id: Minion1파일을 저장하고 닫은 후 다음 명령을 사용하여 SaltStack Minion을 재시작합니다:
systemctl restart salt-minion다음 명령을 사용하여 SaltStack Minion의 상태를 확인할 수 있습니다:
systemctl status salt-minion다음과 같은 출력을 얻을 수 있습니다:
? salt-minion.service - The Salt Minion
Loaded: loaded (/lib/systemd/system/salt-minion.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-02-12 07:46:04 UTC; 7s ago
Docs: man:salt-minion(1)
file:///usr/share/doc/salt/html/contents.html
https://docs.saltproject.io/en/latest/contents.html
Main PID: 2324 (salt-minion)
Tasks: 8 (limit: 2341)
Memory: 59.9M
CPU: 1.185s
CGroup: /system.slice/salt-minion.service
??2324 /usr/bin/python3 /usr/bin/salt-minion
??2326 /usr/bin/python3 /usr/bin/salt-minion
??2328 /usr/bin/python3 /usr/bin/salt-minion
Feb 12 07:46:04 debian11 systemd[1]: Starting The Salt Minion...
Feb 12 07:46:04 debian11 systemd[1]: Started The Salt Minion.다음 명령을 사용하여 미니언 지문을 확인할 수도 있습니다:
salt-call key.finger --local다음과 같은 출력을 얻을 수 있습니다:
local:
14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27SaltStack Master 머신에서 다음 명령을 사용하여 지문을 일치시킵니다:
salt-key --finger-all다음과 같은 출력을 얻을 수 있습니다:
Local Keys:
master.pem: b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78
master.pub: 5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1
Unaccepted Keys:
Minion1: 14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27SaltStack Master에서 다음 명령을 사용하여 Minion을 수락합니다:
salt-key -a Minion1다음과 같은 출력을 얻을 수 있습니다:
The following keys are going to be accepted:
Unaccepted Keys:
Minion1
Proceed? [n/Y] Y
Key for minion Minion1 accepted.이제 다음 명령을 사용하여 Master와 Minion 간의 연결을 확인합니다:
salt Minion1 test.ping다음과 같은 출력을 얻을 수 있습니다:
Minion1:
True작업이 끝나면 다음 단계로 진행할 수 있습니다.
Master에서 Minion 제어
Master와 Minion 간의 연결이 성공적으로 이루어진 후, Minion에서 몇 가지 명령을 실행해 보겠습니다.
다음 명령을 실행하여 Minion에서 사용 가능한 디스크 공간을 나열합니다:
salt '*' disk.usage다음과 같은 출력을 얻을 수 있습니다:
Minion1:
----------
/:
----------
1K-blocks:
51538400
available:
47658628
capacity:
4%
filesystem:
/dev/sda1
used:
1661604
/dev:
----------
1K-blocks:
998936
available:
998936
capacity:
0%
filesystem:
udev
used:
0
/dev/shm:
----------
1K-blocks:
1015232
available:
1015152
capacity:
1%
filesystem:
tmpfs
used:
80Minion에 Apache 패키지를 설치하려면 다음 명령을 실행합니다:
salt Minion1 pkg.install apache2다음과 같은 출력을 얻을 수 있습니다:
Minion1:
----------
apache2:
----------
new:
2.4.52-1~deb11u2
old:
apache2-bin:
----------
new:
2.4.52-1~deb11u2
old:
apache2-data:
----------
new:
2.4.52-1~deb11u2
old:
apache2-utils:
----------
new:
2.4.52-1~deb11u2
old:
libapr1:
----------
new:
1.7.0-6+deb11u1
old:
libaprutil1:
----------
new:
1.6.1-5
old:
libaprutil1-dbd-sqlite3:
----------
new:
1.6.1-5
old:
libaprutil1-ldap:
----------
new:
1.6.1-5
old:Minion에서 여유 메모리를 확인하려면 다음 명령을 실행합니다:
salt '*' cmd.run 'free -m'다음과 같은 출력을 얻을 수 있습니다:
Minion1:
total used free shared buff/cache available
Mem: 1982 140 1392 2 450 1691
Swap: 0 0 0Minion 관리에 Salt 상태 파일 사용
상태 파일은 Minion을 구성하고 관리하는 데 사용되는 구성 관리 파일로도 알려져 있습니다.
상태 파일을 만들려면 SaltStack을 위한 환경 기본을 생성해야 합니다.
mkdir /src/salt다음으로, 다음 명령을 사용하여 상태 파일을 생성합니다:
nano /src/salt/setup.slsMinion에 PHP, UNZIP 및 Apache 패키지를 설치하기 위한 코드를 추가합니다:
network_utilities:
pkg.installed:
- pkgs:
- php
- unzip
apache2_pkg:
pkg.installed:
- name: apache2
apache2_service:
service.running:
- name: apache2
- enable: True
- require:
- pkg: apache2_pkg파일을 저장하고 닫은 후 다음 명령을 사용하여 모든 Minion에 구성을 적용합니다:
salt '*' state.apply setup다음과 같은 출력을 얻을 수 있습니다:
Minion1:
----------
ID: network_utilities
Function: pkg.installed
Result: True
Comment: The following packages were installed/updated: php, unzip
Started: 07:51:22.424504
Duration: 17349.907 ms
Changes:
----------
libapache2-mod-php7.4:
----------
new:
7.4.25-1+deb11u1
old:
php:
----------
new:
2:7.4+76
old:
php-common:
----------
new:
2:76
old:
php7.4:
----------
new:
7.4.25-1+deb11u1
old:
php7.4-cli:
----------
new:
7.4.25-1+deb11u1
old:
php7.4-common:
----------
new:
7.4.25-1+deb11u1
old:
php7.4-json:
----------
new:
7.4.25-1+deb11u1
old:
php7.4-opcache:
----------
new:
7.4.25-1+deb11u1
old:
php7.4-readline:
----------
new:
7.4.25-1+deb11u1
old:
psmisc:
----------
new:
23.4-2
old:
unzip:
----------
new:
6.0-26
old:
----------
ID: apache2_pkg
Function: pkg.installed
Name: apache2
Result: True
Comment: All specified packages are already installed
Started: 07:51:39.780956
Duration: 1029.457 ms
Changes:
----------
ID: apache2_service
Function: service.running
Name: apache2
Result: True
Comment: The service apache2 is already running
Started: 07:51:40.812210
Duration: 35.61 ms
Changes:
Summary for Minion1
------------
Succeeded: 3 (changed=1)
Failed: 0
------------
Total states run: 3
Total run time: 18.415 s결론
축하합니다! Debian 11 서버에 SaltStack Master 및 Minion을 성공적으로 설치하고 구성했습니다. 또한 상태 파일 및 명령줄을 사용하여 Minion을 관리하는 방법을 설명했습니다. 이것이 중앙 위치에서 인프라를 자동화하고 관리하는 데 도움이 되기를 바랍니다. 질문이 있으면 언제든지 문의해 주세요.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.