SaltStack ConfigvRealize Automation と統合した場合は、展開内の仮想マシンにミニオンをインストールするときに SaltStack Config リソースを適用できます。ミニオンを展開した後は、SaltStack Config の強力な構成管理、ドリフト修正、状態管理の各機能を使用してリソースを管理できます。

ミニオンとは、Salt ミニオン サービスを実行するエージェントです。このサービスは、Salt マスター サービスを実行するサーバである Salt マスターによって公開されたジョブをサブスクライブします。ミニオンに特定のジョブが適用されると、ミニオンがジョブを実行します。

Linux および Windows マシンを展開するときに、SaltStack Config リソースを使用してミニオンを展開し、状態ファイルを適用することができます。既存の展開でミニオンおよび状態ファイルを追加または更新するには、[SaltStack リソースの接続] Day 2 アクションを実行します。Day 2 アクションの詳細については、Cloud Assembly 環境で実行できるアクションを参照してください。

saltConfiguration プロパティを使用してミニオンおよび状態ファイルを Day 0 アクションとして展開する場合は、SaltStack Config リソースを使用するようにクラウド テンプレートを更新することを検討してください。saltConfiguration プロパティは廃止されました。クラウド テンプレートの saltConfiguration プロパティは引き続き使用できますが、SaltStack Config 統合機能は制限されます。

[Salt 構成の適用] Day 2 アクションは、saltConfiguration プロパティを使用するリソースで引き続き使用できます。

開始する前に

  1. SaltStack Config をインストール済みで、統合が構成されていることを確認します。vRealize Automation での SaltStack Config 統合の作成を参照してください。

    ミニオンの主要な概念など、SaltStack Config の仕組みを理解するには、SaltStack ユーザー インターフェイスについてを参照してください。

  2. SaltStack Config で、ミニオンからマスターへの FQDN の名前解決が機能していることを確認します。
    1. SaltStack Config で Salt マスターの FQDN を確認するには、[ミニオン] > [すべてのミニオン] の順に選択します。
    2. [ミニオン ID] 列を値 [saltmaster] でフィルタリングします。
    3. 詳細を表示するには、[saltmaster] をクリックします。
    4. FQDN の値が正しいことを確認します。
  3. Linux マシンにミニオンを展開する場合は、Salt ミニオンを使用して展開する vSphere 内のイメージで SSH 機能が有効になっていることを確認します。SSH は、リモートからマシンにアクセスし、ミニオンを展開するために使用されます。
  4. Windows マシンにミニオンを展開する場合は、Windows 環境で API (RaaS) を使用してミニオンを展開する方法を参照してください。

  5. 展開するマシンに IP アドレスを割り当てることができることを確認します。

    SaltStack Config では、マシンに IP アドレスが必要です。Salt マスターが配置されている SDDC (Software-Defined Datacenter) のパブリック IP CIDR 範囲内の IP アドレスを使用します。

  6. SaltStack Config リソース プロパティを追加する前に、ミニオンの追加先のクラウド テンプレートが展開可能であることを確認します。
  7. 次のサービス ロールがあることを確認します。
    1. Cloud Assembly 管理者
    2. Cloud Assembly ユーザー
    3. Service Broker 管理者

    SaltStack Config リソースを使用するには、これらのサービス ロールが必要です。

クラウド テンプレートへの SaltStack Config リソースの追加

クラウド テンプレート開発者は、テンプレートの展開時に SaltStack Config ミニオンをインストールするプロパティを YAML に追加できます。

テンプレートに追加するコア プロパティには、展開するマシンへのリモート アクセスと、SaltStack Config リソースの構成プロパティが含まれます。この手順では、一部のプロパティのみを扱います。YAML には、この例で使用されていない他の SaltStack Config リソース プロパティが含まれています。詳細については、スキーマを確認してください。

この例では、リモート アクセスのプロパティにユーザー名とパスワードを追加する方法を示していますが、シークレット プロパティを構成して、テンプレートにそのプロパティを追加することもできます。例については、Cloud Assembly のシークレット プロパティを参照してください。

手順

  1. Cloud Assembly で、[デザイン] > [クラウド テンプレート] の順に選択します。
  2. 既存のテンプレートを開きます。
  3. [SaltStack Config] リソースを見つけて、キャンバスにドラッグします。
  4. ミニオンをインストールするマシンに、[SaltStack Config] リソースを接続します。
  5. コード ペインで、Cloud_SaltStack_1 リソースにプロパティを追加します。

    使用可能なすべてのプロパティを含める必要はありません。この例で使用している値については、表で説明しています。

    Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource.Cloud_vSphere_Machine_1.id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe

    この例で使用されている Cloud_SaltStack_1 プロパティの説明。

    プロパティ 説明
    masterId この例のスキーマでは、masterId 値は saltstack_enterprise_installer です。SaltStack Config[管理] > [マスター キー] で、マスター ID を定義してある場合があります。
    ホスト hosts 値は、ミニオンのインストール先となるマシンまたはマシン クラスタの ID です。SaltStack Config のデフォルトでは、マシンの名前がミニオン ID として渡されます。

    Windows にミニオンを展開する場合は特に、マシン名を 15 文字以下にすることを推奨します。Windows では、15 文字を超えるホスト名は許可されません。

    展開するマシンに対してカスタム命名規則を定義する場合は、Cloud Assembly に展開されたリソースのカスタム命名を参照してください。

    saltEnvironment この例では、sse が状態ファイルの配置場所です。SaltStack Config[構成] > [ファイル サーバ] により、状態ファイルを他のファイル サーバに置くこともできます。
    stateFiles この例で、doe.sls は、saltEnvironment で指定されるファイル サーバ ディレクトリに格納される状態ファイルです。
    variables 変数は、状態ファイルで使用される値です。この例では、doe.slsuser 値を受け入れます。
  6. Salt ミニオンをホストするマシンに、remoteAccess プロパティを追加します。

    authentication キーの値は、usernamePassword または generatedPublicPrivateKey にする必要があります。publicPrivateKey はサポートされていません。

     remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
  7. YAML に次のサンプルのようなプロパティが含まれていることを確認します。
    resources:
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: ubuntu
          flavor: small
          remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
      Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource.Cloud_vSphere_Machine_1.id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
  8. クラウド テンプレートをテストして展開します。
    ミニオンの展開が失敗する場合は、 ミニオンの展開のトラブルシューティングを参照してください。
  9. 展開されたマシンの Salt 構成プロパティを確認します。
    1. [展開] > [展開] の順に選択して、展開の詳細を開きます。
    2. [トポロジ] タブでマシンをクリックし、右側のペインでプロパティを展開します。

      右側のペインに Salt 構成プロパティが展開されている [トポロジ] タブのスクリーンショット。プロパティには、マスター ID、Salt 環境、状態ファイルがあります。

SaltStack Config でのミニオンの確認

仮想マシンにミニオンをインストールしたら、ミニオンを特定し、リソースに対してジョブまたはコマンドを実行します。

手順

  1. SaltStack Config を開くには、右上隅にあるアプリケーション メニューをクリックし、[Cloud Services コンソール] をクリックします。
  2. [SaltStack Config] サービス タイルをクリックします。
  3. SaltStack Config で、[ミニオン キー] を展開し、[受け入れ済み] をクリックします。
  4. [ミニオン ID] 列で、フィルタ アイコンをクリックし、ミニオンの名前を入力します。
    デフォルトでは、ミニオンの名前は仮想マシンのホスト名になります。この例では、ミニオン ID は vra-vm-05 です。
    SaltStack Config で受け入れ済みのミニオン キーのスクリーンショット。
  5. 詳細を表示するには、ミニオンの名前をクリックします。
    ミニオンに対してジョブまたはコマンドを実行できます。たとえば、[ディスク使用率のサンプル] などです。このジョブは、ミニオンのディスク使用率の統計を返します。
    サンプル ミニオン ID の詳細画面のスクリーンショット

ミニオンの展開のトラブルシューティング

SaltStack Config リソースまたは saltConfiguration プロパティを使用して Salt ミニオンを展開するときにユーザーに発生する一般的なエラーについて確認します。

ホストの起動の遅延

クラウド テンプレートを展開した後でホスト上の Windows または Linux のサービスの準備ができていない場合、Cloud Assembly に「ミニオンの展開または状態ファイルの実行に失敗しました」というエラーが表示されることがあります。

このエラーを解決するには、マスター プラグインを最新の安定バージョンにアップグレードします。アップグレード後、Salt ミニオンを展開する前に Windows および Linux のサービスが有効になる構成設定を /etc/salt/master.d/raas.conf で有効にできます。

マスター プラグインの最新バージョンにアップグレードした後、次の手順を実行してホストの起動を遅らせます。

  1. 展開の詳細ページで [履歴] タブを確認します。
  2. 「ミニオンの展開または状態ファイルの実行に失敗しました」というエラー メッセージが表示された場合は、ジョブ ID (JID) をコピーし、SaltStack Config を開きます。
  3. SaltStack Config で、[アクティビティ] > [完了] の順に選択して、完了したジョブを開きます。
  4. [JID] 列でフィルタ アイコンをクリックし、JID を入力します。
  5. JID をクリックして、ジョブの結果ページを確認します。
  6. [未フォーマット] タブをクリックすると、ジョブの未フォーマット出力が表示されます。

    Windows

    ジョブの未フォーマット出力の最後の行に「ホストに接続できませんでした: タイムアウト」が含まれている場合は、起動を 180 秒遅らせるために、次の構成設定を /etc/salt/master.d/raas.conf に追加する必要があります。
    sseapi_win_minion_deploy_delay: 180

    Linux

    ジョブの未フォーマット出力の最後の行に「指定された認証情報を使用してリモート ホストに接続できません」が含まれている場合は、起動を 90 秒遅らせるために、次の構成設定を /etc/salt/master.d/raas.conf に追加する必要があります。
    sseapi_linux_minion_deploy_delay: 90
  7. Salt マスター サービスの再起動:
    systemctl restart salt-master
  8. クラウド テンプレートを再展開します。

    展開が成功しなかった場合は、遅延パラメータの値を大きくしてテンプレートを再展開することができます。

次の手順

SaltStack Config 機能を使用してリソースを管理するには、SaltStack Config のドキュメントを参照してください。