IT自動化 · 2 min read · Oct 26, 2025
AlmaLinux 9でのSalt IT自動化フレームワークの始め方

SaltまたはSaltstackは、管理者が複数のマシンに対してリモートでコマンドを直接実行できるオープンソースのIT自動化フレームワークです。Saltは主にPythonで書かれており、マスターとミニオンのアーキテクチャを使用して設計されています。SaltStackマスターはSalt構成管理の中央コントローラーであり、ミニオンはSaltStackマスターによって管理されるサーバーで、ターゲットサーバーとしてミニオンと呼ばれます。
SaltStackマスターはデフォルトでLinux OS上で実行されますが、ミニオンは任意のオペレーティングシステムで使用できます。Saltstackは、自動化デプロイメント、リモートタスク実行、インフラストラクチャをコードとして管理するための革命的な構成管理です。SaltStackは、物理および仮想サーバー、さらにはクラウドを含む複数のインフラストラクチャサーバーをプロビジョニングするためにも使用できます。
このチュートリアルでは、AlmaLinux 9サーバーにSaltをインストールする方法を示します。また、Saltモジュールの基本的な使用法を学び、最初のSaltステートプロジェクトを作成します。この場合、LEMPスタックをインストールするためのSaltステートプロジェクトを作成します。
前提条件
このガイドを始める前に、以下の条件を満たしていることを確認してください:
- AlmaLinux 9サーバーが3台。
- sudo管理者権限を持つ非ルートユーザー。
- SELinuxのステータスがPermissiveまたはDisabledであること。
SaltマスターでのFirewalldの設定
Saltをインストールする前に、Saltマスターサーバーでポート4505と4506を開く必要があります。これらのポートは、SaltミニオンがSaltマスターに接続するために使用されます。これを実現するために、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リポジトリで入手できます。今、あなたはすべてのAlmaLinuxサーバー、Saltマスターとミニオンの両方に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ミニオンのインストールと設定
Saltマスターの設定が完了したら、次のステップはsalt-minionをインストールし、ミニオンサーバーをSaltマスターに接続するように設定することです。
以下のdnfコマンドを実行して、ミニオンサーバーに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インターフェースオプションにミニオンのローカル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ミニオンをSaltマスターに登録
この時点で、salt-minionサービスは実行中です。それに伴い、Saltミニオンは自らをSaltマスターに登録するためのリクエストを送信します。Saltミニオンの登録を申請するには、Saltマスターでフィンガープリントキーを受け入れる必要があります。
Saltマスターに移動し、以下のsalt-keyコマンドを実行してフィンガープリントキーのリストを取得します。
salt-key --finger-allここでは、Saltミニオンサーバーminion1とminion2のフィンガープリントが表示され、まだ「Unaccepted Keys」の状態です。

以下のコマンドを実行して、minion1およびminion2サーバーのSaltミニオンキーを受け入れます。
salt-key -a minion1
salt-key -a minion2キーを受け入れるように求められたらYを入力し、出力として「Key for minion minion1/2 accepted」のようなメッセージが表示されるはずです。

次に、以下のコマンドを使用してSaltマスターでフィンガープリントキーのリストを再確認します。
salt-key --finger-allここでは、minion1およびminion2サーバーのSaltミニオンのフィンガープリントがAccepted Keysセクションに表示されます。
これで、SaltマスターからSaltミニオンサーバーをSaltコマンドラインを介して制御できるようになります。
以下のsaltコマンドを実行して、Saltマスターとミニオン間の接続を確認し、ミニオンサーバーでのSaltバージョンを確認します。
salt '*' test.ping
salt '*' test.versionSaltマスターとミニオン間の接続が成功した場合、出力はTrueと表示されます。また、test.versionパラメータの結果としてSalt 3006.4がインストールされていることが確認できます。

さらに、以下のようにsaltコマンドを使用してターゲットミニオンを指定することもできます。
salt minion1 test.pingSaltステートモジュールの基本的な使用法
次のセクションでは、Minionサーバーを管理するためのSaltステートモジュールの使用方法を学びます。cmdモジュールを使用して任意のLinuxコマンドを実行し、pkgモジュールを使用してパッケージとリポジトリを管理し、serviceモジュールを使用してサービスを管理するなど、いくつかの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
serviceモジュールを介してサービスを管理
次に、serviceステートモジュールを使用して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ステートの作成
このセクションでは、ターゲットMinionサーバーにLEMPスタック(Nginx、MariaDB、PHP-FPM)をインストールするための最初の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スタックパッケージをインストールし、各サービスが実行中で有効であることをserviceステートモジュールを使用して確認します。
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コマンドが実行されると、以下のような詳細な構成が表示されるはずです。

次に、以下のコマンドを実行してlempステートをMinionサーバーに適用します。
sudo salt '*' state.apply lemp自動インストールの生成されたレポートが表示されるはずです。この場合、両方のMinionサーバーにLEMPスタックパッケージが正常にインストールされました。

以下は、サービスが実行中で有効であるときの詳細です。

結論
結論として、AlmaLinux 9サーバーにSaltを段階的にインストールしました。AlmaLinuxサーバー上でSaltマスターとミニオンの両方をインストールおよび設定し、Saltステートモジュールの基本的な使用法を学び、LEMPスタックをインストールするための最初のSaltステートプロジェクトを作成しました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。