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

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

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

手順

  1. Automation Assembler で、[デザイン] > [クラウド テンプレート] の順に選択します。
  2. 既存のテンプレートを開きます。
  3. SaltStack resourceを見つけて、キャンバスにドラッグします。
  4. ミニオンをインストールするマシンに、SaltStack resourceを接続します。
  5. コード ペインで、SaltStack resourceにプロパティを追加します。
    使用可能なすべてのプロパティを含める必要はありません。この例で使用している値については、表で説明しています。
    注: デフォルトでは、createTimeout プロパティは 30 分に設定されています。必要に応じて、分または時間の形式(30m、1h など)を使用してこの値を更新できます。
    Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource["Cloud_VM_1".id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
          additionalMinionParams:
            grains:
              roles:
                - webserver
                - database   
           additionalAuthParams:
             profile:
                tmp_dir: /var/run

    ここでは、この例で使用されている Cloud_SaltStack_1 プロパティについて説明します。

    プロパティ 説明
    masterId この例のスキーマでは、masterId 値は saltstack_enterprise_installer です。

    マスター ID は、Automation Config[管理] > [マスター キー] で定義することもできます。

    ホスト hosts 値は、ミニオンのインストール先となるマシンまたはマシン クラスタの ID です。Automation Config のデフォルトでは、マシンの名前がミニオン ID として渡されます。

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

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

    saltEnvironment この例では、sse が状態ファイルの配置場所です。

    Automation Config[構成] > [ファイル サーバ] により、状態ファイルを他のファイル サーバに置くこともできます。

    stateFiles この例では、doe.sls は、saltEnvironment で指定されるファイル サーバ ディレクトリに格納される状態ファイルです。
    variables クラウド テンプレートで定義された変数は、ピラーとして Salt 状態に渡されます。この例では、変数 userdoe.sls ファイルに渡されます。

    次の例に示すように、状態ファイル内の変数は Jinja を使用して参照できます。

    {% set username = pillar.get('user', 'random') %}
    
    friend:
      user.present:
        - names:
          -  {{username}}

    doe.sls ファイルを使用すると、クラウド テンプレート内の変数 user で表されるユーザーが存在するようになります。クラウド テンプレートで変数が指定されていない場合は、ユーザー random が存在するようになります。

    additionalMinionParams このプロパティを使用して、ミニオンに追加の構成パラメータを渡します。次のパラメータはディクショナリとして渡す必要があります。

    • grains:このプロパティを使用して、ミニオンにカスタム Salt Grain を割り当てます。1 つ以上の key:value ペアを指定できます。値には、文字列、配列、またはマップを使用できます。

      新しいマシンをプロビジョニングする場合は、カスタム Grain データのみを割り当てることができます。[SaltStack リソースの接続] または [Salt 構成の更新] Day 2 アクションを実行する場合は、カスタム Grain データを割り当てることはできません。

    additionalAuthParams このプロパティを使用して、デフォルトの salt-cloud 構成とマージされる、またはこの構成によってオーバーライドされるミニオンをプロビジョニングするための追加の認証パラメータを渡します。これらのパラメータはディクショナリとして渡す必要があります。

    1 つ以上の key:value ペアを文字列、配列、またはマップとして使用できます。このプロパティの使用方法の例については、「使用事例:Linux 環境で API を使用してミニオンを展開する方法」を参照してください。

    注: [Salt 構成の更新] Day 2 アクションを実行する場合、追加の認証パラメータを割り当てることはできません。
  6. Salt ミニオンをホストするマシンに、remoteAccess プロパティを追加します。

    Salt ミニオンを Linux マシンに展開する場合は、authentication キーの値を usernamePassword または generatedPublicPrivateKey にすることができます。publicPrivateKey はサポートされていません。

    Salt ミニオンを Windows マシンに展開する場合は、authentication キーの値を usernamePassword. にする必要があります。

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

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

Automation Config でのミニオンの確認

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

手順

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

Salt Grain データの表示

仮想マシンへの Salt ミニオンの展開が完了したら、Automation Assembler でミニオンの Grain を表示できます。

Salt Grain は、ミニオンのオペレーティング システム、ドメイン名、IP アドレス、カーネル、OS タイプ、メモリ、その他多くのシステム プロパティについて収集されます。Automation Config にアクセスできない場合、または Automation Assembler ユーザー インターフェイスから移動しないで Grain データをすばやく表示する場合は、[トポロジ] タブを使用して Grain データを表示します。Grain データの詳細については、Salt Grainを参照してください。

ミニオン Grain を表示するには、次の手順を実行します。

  1. Automation Assembler で、[リソース] > [展開] の順に選択し、展開を特定します。
  2. [トポロジ] タブで、SaltStack resource に接続されている仮想マシンを選択します。
  3. 右側のペインで [Salt 構成] セクションを特定し、下にスクロールして Grain データのリストを表示します。Automation Assembler の Grain データのスクリーンショット

ミニオンを展開すると、ミニオンの Grain データが取得されます。Grain データが最後に更新された日時を確認するには、[Salt 構成] セクションの一番下までスクロールします。

注: または、 [リソース] > [仮想マシン] の順にクリックし、マシンの構成と属性を表示する目的の仮想マシンを選択して、Salt Grain データを表示することもできます。
Automation Assembler の最後に更新された Grain データのスクリーンショット