Salt Project は、イベント駆動型の IT 自動化、リモート タスクの実行、および構成管理を行うための Python ベースのオープンソース ソフトウェアです。

Salt の詳細については、Salt ユーザー ガイドを参照してください。

Salt では、salt-minion をゲストに展開する必要があります。Salt 固有のゲスト変数はホスト側で仮想マシンごとに設定され、その後ゲスト内の VMware Tools によって読み取られます。次に VMware Tools は salt バンドルをダウンロードし、ゲスト内で salt-minion インスタンスを起動します。

前提条件

  • 64 ビット OS のみをサポートします。
  • Windows では、Windows 8 以降のバージョンがサポートされます。
    注: Windows 2008R2 はサポートされていません。
  • VMware Tools は Salt ミニオン機能とともにインストールする必要があります。デフォルトで、この機能は有効になっています。
  • Linux のインストール済みパッケージには依存関係があります(curl や wget など)。

手順

  • [ゲスト変数を使用した仮想マシンごとのホスト側の構成]
    ホスト管理者は、VIM API または vSphere/VC UI を使用して、ホスト側で特定の仮想マシンのすべてのゲスト変数設定を管理します。
      • Windows:

        VMware Tools Salt ミニオン機能がデフォルトでインストールされ、カスタム インストールで変更できます。

        VMware Tools で特定の仮想マシンに salt-minion インスタンスを作成し、salt-minion を salt-master に接続するには、ホスト管理者がその仮想マシンのゲスト変数を構成して設定する必要があります。

        vSphere ホストのユーザー インターフェイスで、特定の仮想マシンを選択し、右クリックして設定を編集します。[仮想マシン オプション] タブで、[詳細] > [構成の編集] > [パラメータの追加/削除] の順に選択し、次のように設定します。

        • guestinfo./vmware.components.salt_minion.desiredstate を present に設定する
        • guestinfo./vmware.components.salt_minion.args<VMware Tools salt-minion セットアップ スクリプトへのカスタム引数> に設定する

        たとえば、

        guestinfo./vmware.components.salt_minion.desiredstate → present

        guestinfo./vmware.components.salt_minion.args → master=1.2.3.4

      • Linux:
        ホスト管理者は open-vm-tools と open-vm-tools-salt-minion をインストールし、特定の仮想マシンのゲスト変数を次のように設定する必要があります。
        • guestinfo./vmware.components.salt_minion.desiredstate を present に設定する
        • guestinfo./vmware.components.salt_minion.args<VMware Tools salt-minion セットアップ スクリプトへのカスタム引数> に設定する

        たとえば、

        guestinfo./vmware.components.salt_minion.desiredstate → present

        guestinfo./vmware.components.salt_minion.args → master=1.2.3.4 id=12345

    • [salt-minion の削除]

      Windows または Linux でホスト管理者がゲスト変数 guestinfo./vmware.components.salt_minion.desiredstate を absent に設定した場合、VMware Tools はゲスト仮想マシンの salt-minion インスタンスを削除します。

      たとえば、

      guestinfo./vmware.components.salt_minion.desiredstate → absent

    • [ゲスト内の salt-minion の最新ステータスの確認]

      vSphere ユーザー インターフェイスでゲスト内の salt-minion の最新のステータスを確認するには、次のゲスト変数を使用します。

      guestinfo.vmware.components.salt_minion.laststatus

  • [tools.conf を使用したゲスト側の構成]

    tools.conf ファイルには、VMware Tools の構成が .ini 形式で含まれています。このツールは、salt_minion セクションを探し、そのセクションで定義された構成を使用します。このファイルは次の場所に保存されます。

    Windows - C:\ProgramData\VMware\VMware Tools\tools.conf

    Linux - /etc/vmware-tools/tools.conf

    次に、tools.conf セクションで定義されている salt_minion セクションの例を示します。

    [salt_minion]
    master=1.2.3.4
    conf_file=/etc/salt/minion
    id=dev_minion
    注: tools.conf で使用できるのは、ミニオン構成オプションだけです。目的のスクリプト アクションを tools.conf から取得できません。
    • [ゲスト変数での状態変化を監視する間隔の構成:]

      VMware Tools は、ゲスト変数を定期的にポーリングして、状態変化を確認します。デフォルトのポーリング間隔は 180 秒で、tools.conf 設定で構成できます。

      [componentmgr]

      #poll-interval=180(デフォルト値:180 秒)

    • [コンポーネントの有効化と無効化 (salt_minion):]
      • ゲスト管理者は、tools.conf 設定を構成して salt_minion を有効にできます。

        [componentmgr]

        included=salt_minion

      • ゲスト管理者は、tools.conf 設定を構成して、すべてのコンポーネントを有効にできます。

        [componentmgr]

        included=all(デフォルト構成)

      • ゲスト管理者は、tools.conf 設定を構成して、すべてのコンポーネントを無効にできます。

        [componentmgr]

        included=none
  • [インストール スクリプトを使用した salt-minion のインストール]
      • Linux 環境
        Linux システムでは、インストール スクリプト svtminion.sh は次の前提条件を備えた bash スクリプトです。
        • - systemctl
        • - curl
        • - sha512sum
        • - vmtoolsd
        • - grep
        • - awk
        • - sed
        • - cut
        • - wget

        svtminion.sh --help は、コマンドライン オプションを表示します。

        使用方法:
        ./svtminion.sh [-c|--clear] [-d|--depend] [-h|--help] [-i|--install] 
         [-j|--source] [-l|--loglevel] [-m|--minionversion]
        [-r|--remove] [-s|--status] [-v|--version]

        ここで、./svtminion.sh [-j|--source] は、Salt ミニオンのインストール元を指定します。デフォルトは repo.saltproject.io の場所です。

        例:URL の場所

        http://my_web_server.com/my_salt_onedir

        https://my_web_server.com/my_salt_onedir

        file:////my_path/my_salt_onedir

        //my_path/my_salt_onedir

        注: Salt ミニオンの特定のバージョンが指定されている場合 ([-m | --minionversion]) は、ソースに追加されます。デフォルトは最新バージョンです。

        次に、tools.conf で定義されている salt_minion のインストール例を示します。

        [salt_minion]
        master=1.2.3.4
        conf_file=/etc/salt/minion
        id=dev_minion
        source=https://my_web_server.com/my_salt_onedir
        注: Salt の標準リポジトリの場所のプライベート レプリカからインストールする場合は、 source=https://repo.saltproject.io/salt/vmware-tools-onedir/ を使用します。
      • Windows 環境

        Windows システムでは、インストール スクリプト svtminion.ps1 は PowerShell スクリプトです。Windows の唯一の前提条件は、ゲスト変数データのクエリに使用される「vmtoolsd.exe」バイナリです。

        このスクリプトのヘルプを表示するには、コマンド svtminion.ps1 -h または Get-Help svtminion.ps1 を実行します。

        Windows ゲストで Salt ミニオンを管理するための VMware Tools スクリプトは次のとおりです。
        .\svtminion.ps1 [-Install] [-MinionVersion <String>] [-Source <String>] [[-ConfigOptions] <String[]>] [-LogLevel <String>] [-Help] [-Version] [<CommonParameters>]

        -Source <String> は、インストーラを含むリポジトリの URL またはパスです。

        これには、デフォルトの場所 https://repo.saltproject.io/salt/vmware-tools-onedir/ と同様のディレクトリ構造が含まれます。これは、http、https、ftp、unc、local などの最も一般的なプロトコルを処理できます。

        たとえば、

        PS>svtminion.ps1 -Install
                PS>svtminion.ps1 -Install -MinionVersion 3004-1 master=192.168.10.10 id=dev_box
                PS>svtminion.ps1 -Install -Source https://my.domain.com/vmtools/salt
        注:

        例を表示するには、get-help .\svtminion.ps1 -examples と入力します。

        詳細については、get-help .\svtminion.ps1 -detailed と入力します。

        技術情報については、get-help .\svtminion.ps1 -full と入力します。

  • [ログ情報の取得]
    ゲスト管理者は、salt-minion に関連するログ情報を次のパスから取得できます。
    Windows
    ログ ファイル 場所
    salt-minion のステータスを確認するためのログ ファイル C:\Windows\Temp\vmware-svtminion-status-{Timestamp}.log
    ゲスト内に salt-minion インスタンスをインストールするためのログ ファイル C:\Windows\Temp\vmware-svtminion-install-{TimeStamp}.log
    ゲスト内の salt-minion インスタンスを削除するためのログ ファイル: C:\Windows\Temp\vmware-svtminion-remove-{TimeStamp}.log
    ゲスト内の salt-minion インスタンスのインストールまたは削除後にランタイム情報を確認するためのログ ファイル C:\salt\var\log\minion log files
    Linux
    ログ ファイル 場所
    salt-minion のステータスを確認するためのログ ファイル /var/log/vmware-svtminion.sh-status-{Timestamp}.log
    ゲスト内に salt-minion インスタンスをインストールするためのログ ファイル /var/log/vmware-svtminion.sh-install-{TimeStamp}.log
    ゲスト内の salt-minion インスタンスを削除するためのログ ファイル: /var/log/vmware-svtminion.sh-remove-{TimeStamp}.log
    ゲスト内の salt-minion インスタンスのインストールまたは削除後にランタイム情報を確認するためのログ ファイル /var/log/salt/minion