GNU/Linux >> Linux の 問題 >  >> Debian

Debian11にSaltstackマスターとミニオンをインストールする方法

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マスターとミニオンが正常にインストールおよび構成されました。また、状態ファイルとコマンドラインを使用してミニオンを管理する方法についても説明しました。これが、中央の場所からインフラストラクチャを自動化および管理するのに役立つことを願っています。ご不明な点がございましたら、お気軽にお問い合わせください。


Debian
  1. / usr/binと/usr/ local / bin Linuxの場合?

  2. Linux – / usr/binと/usr/sbinを/bin(gnu / linux)にマージしますか?

  3. /usr/sbin、/usr/local/sbin、/usr/local/bin の意味は何ですか?

  1. Debian11にAnsibleをインストールして使用する方法

  2. Debian11にMariaDBをインストールして保護する方法

  3. /bin と /usr/bin の違い

  1. Debian11にNode.jsとnpmをインストールする方法

  2. バイナリを /bin、/sbin、/usr/bin、および /usr/sbin にインストールし、 --prefix および DESTDIR と対話します

  3. #!/usr/bin/env bash と #!/usr/bin/bash の違いは何ですか?