SaltStackは、無料のオープンソースのPythonベースの自動化および構成管理ソフトウェアです。これは、中央の場所からインフラストラクチャを管理するのに役立つコマンドラインツールです。 SoltStackは4つのコンポーネントで構成されています。各コンポーネントの簡単な説明を以下に示します:
- ソルトマスター ミニオンのコマンドラインコントローラーとして機能します。多数のミニオンを制御および管理するために使用されます。
- ソルトミニオン マスターから構成とコマンドを受け取るスレーブデーモンです。
- 式 構成管理ファイルです。
- 実行 ミニオンで実行されるコマンドとモジュールの数です。
この記事では、Debian11にSaltStackマスターおよびミニオンシステムをインストールする方法を紹介します。
- Debian11を実行している2台のサーバー。
- ルートパスワードはサーバーで構成されています。
デフォルトでは、SaltStackはDebian11のデフォルトリポジトリに含まれていません。したがって、SaltStackリポジトリをAPTに追加する必要があります。次のコマンドを実行して追加できます:
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
echo "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構成ファイルでバインドインターフェイスを定義する必要があります。
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.
終了したら、次のステップに進むことができます。
SaltstackMinionのインストールと構成
この時点で、SaltStackマスターがインストールおよび構成されています。次に、別のマシンにログインし、次のコマンドを使用してSaltStackMinionリポジトリを追加します。
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
echo "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
次に、次のコマンドを使用してSaltStackMinionをインストールします。
apt-get install salt-minion -y
インストールが正常に完了したら、SaltStack Minion構成ファイルを編集し、マスターIPアドレスを定義します。
nano /etc/salt/minion
次の行を変更します:
master: salt-master-ip
終了したら、ファイルを保存して閉じます。
次に、マスターの公開指紋を使用してミニオンを認証する必要があります。
ソルトマスターマシンで、次のコマンドを使用してすべてのフィンガープリントを一覧表示します。
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'
ミニオンの名前も定義する必要があります:
id: Minion1
ファイルを保存して閉じ、次のコマンドを使用してSaltStackMinionを再起動します。
systemctl restart salt-minion
次のコマンドを使用して、SaltStackミニオンのステータスを確認することもできます。
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:27
SaltStackマスターマシンで、次のコマンドを使用して指紋を照合します。
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:27
SaltStackマスターで、次のコマンドを使用してミニオンを受け入れます。
salt-key -a Minion1
次の出力が得られます:
The following keys are going to be accepted: Unaccepted Keys: Minion1 Proceed? [n/Y] Y Key for minion Minion1 accepted.
次に、次のコマンドを使用して、マスターとミニオンの間の接続を確認します。
salt Minion1 test.ping
次の出力が得られます:
Minion1:
True
終了したら、次のステップに進むことができます。
マスターとミニオンの間の接続が成功した後。ミニオンでいくつかのコマンドの実行を開始しましょう。
次のコマンドを実行して、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:
80
ミニオンに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:
ミニオンの空きメモリを確認するには、次のコマンドを実行します。
salt '*' cmd.run 'free -m'
次の出力が得られます:
Minion1:
total used free shared buff/cache available
Mem: 1982 140 1392 2 450 1691
Swap: 0 0 0
状態ファイルは、ミニオンの構成と管理に使用される構成管理ファイルとも呼ばれます。
状態ファイルを作成するには、SaltStackの環境ベースを作成する必要があります。
mkdir /src/salt
次に、次のコマンドを使用して状態ファイルを作成します。
nano /src/salt/setup.sls
次のコードを追加して、PHP、UNZIP、およびApacheパッケージをMinionsにインストールします。
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
> ファイルを保存して閉じ、次のコマンドを使用してすべてのミニオンに構成を適用します。
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
おめでとう!これで、Debian11サーバーにSaltStackマスターとミニオンが正常にインストールおよび構成されました。また、状態ファイルとコマンドラインを使用してミニオンを管理する方法についても説明しました。これが、中央の場所からインフラストラクチャを自動化および管理するのに役立つことを願っています。ご不明な点がございましたら、お気軽にお問い合わせください。