Automation Config サービスをインストールして統合したら、Automation Config を使用して管理する予定のすべてのノードに Salt ミニオン サービスをインストールし、実行、登録する必要があります。ノードに Salt ミニオン サービスを展開するには、VMware Aria Automation クラウド テンプレートを使用するか、SSH を介してサービスをインストールします。

Salt とその Automation Config に対する関係

Automation Config は Salt 上で実行されます。Salt は Python ベースのオープンソースのリモート実行フレームワークで、次の目的に使用されます。

  • 構成管理
  • 自動化
  • プロビジョニング
  • オーケストレーション

Salt は、Automation Config の中核機能の基盤となるテクノロジーです。Automation Config は Salt を強化および拡張して、使いやすさを高める追加の機能を提供します。

Salt は、コントローラがクライアントに対してコマンドを発行し、クライアントがそのコマンドを実行するというコントローラ/クライアント モデルを使用します。Salt エコシステムの中で、コントローラは Salt マスター サービスを実行するサーバです。コントローラは 1 つ以上の Salt ミニオンに対してコマンドを発行します。Salt ミニオンは、Salt ミニオン サービスを実行していて、その特定のマスターに登録されているノードです。

Salt は、パブリッシャとサブスクライバのモデルとして説明することもできます。マスターは実行する必要があるジョブをパブリッシュし、ミニオンはそれらのジョブをサブスクライブします。特定のジョブがそのミニオンに適用されると、ジョブが実行されます。ミニオンは、ジョブの実行を完了すると、ジョブの返却データをマスターに返します。

ミニオンとは、Salt ミニオン サービスが実行されるノードです。サービスは Salt マスターからのコマンドをリッスンし、要求されたタスクを実行します。ミニオンは VMware Aria Automation クラウド テンプレートから展開できます。

構成管理に Automation Config を使用するためには、まず、管理するすべてのノードに Salt ミニオン サービスをインストールする必要があります。また、Automation Config にノードのキーを送信して受け入れることにより、ミニオンを登録する必要があります。

開始する前に

  • Automation Config をインストールして構成し、VMware Aria Automation と統合します。
  • Automation Config によって管理されるノードは、Salt マスターに到達できる必要があり、Automation Config 統合ポイントおよび Salt マスターと同じネットワーク上に存在する必要があります。
  • プライベート ネットワークに展開されている vSphere マシンは、Automation Config 統合および Salt マスターとの接続を開始できる必要があります。

SSH を介した Salt ミニオン サービスのインストール

SSH を使用して Salt ミニオン サービスをインストールするプロセスは、これらのノードで実行されているオペレーティング システムによって異なります。

Salt ミニオン サービスをインストールした後は、次の手順に従います。
  1. /etc/salt/minion.d ディレクトリ内に master.conf ファイルを作成して、各ミニオンがマスターと通信するように構成します。このファイルで、マスターの IP アドレスを指定します。例:master: 192.0.2.1
  2. ミニオン サービスを開始します。

    sudo systemctl enable salt-minion

    sudo systemctl start salt-minion

  3. 残りのすべてのノードについて、前の手順を繰り返します。

Salt マスターを参照するようにこれらのミニオン ファイルを構成したら、ミニオン キー ワークスペースの Automation Config サービスでミニオン キーを受け入れます。

VMware Aria Automation クラウド テンプレートを使用した Salt ミニオン サービスのインストール

クラウド テンプレートを使用して Salt ミニオン サービスを展開するには、cloud-init (Linux) または Cloudbase-init (Windows) へのアクセス権を持ち、使用に慣れている必要があります。Automation Config 統合用に構成された Salt マスターに Salt ミニオンを追加するには、クラウド テンプレート内の仮想マシンが cloud-init (Linux) または Cloudbase-init (Windows) をサポートしている必要があります。

以降のセクションでは、クラウド テンプレートを使用して Salt ミニオン サービスを展開する方法を説明します。

VMware Aria Automation 用に構成された Salt マスターへのミニオンの追加

Automation Config のインストール時には Salt マスターの IP アドレスが指定されます。このマスター IP アドレスは、VMware Aria Automation クラウド テンプレートからミニオンを展開するときに masterAddress プロパティとして使用されます。

VMware Aria Automation のクラウド テンプレートまたは展開で、cloud-init または Cloudbase-init スクリプトを使用してミニオンをインストールして展開します。これらの形式のいずれかを使用するクラウド構成スクリプトを示すイメージ マッピングを使用することもできます。VMware Aria Automation Automation Config 統合用に関連付けられた Salt マスターに Salt ミニオンを追加するには、ターゲット マシンが cloud-init (Linux) または Cloudbase-init (Windows) をサポートしている必要があります。VMware Aria Automation のクラウド構成スクリプトでは、両方の形式がサポートされています。

クラウド テンプレートで minionId 値と cloudConfig 値を指定してマシン リソースを構成し、プロパティ グループ SaltStackConfiguration を参照します。SaltStackConfiguration プロパティ グループは、VMware Aria Suite LifecycleAutomation Config サービスがインストールおよび構成されるときに作成されます。ここには、masterAddress プロパティと masterFingerprint プロパティが含まれます。

minionId 値は、クラウド テンプレート コードの cloudConfig セクションでマシンの /salt/minion_id に指定された値と一致する必要があります。

注: デフォルトでは、ミニオンはホスト名によってマスターから識別されますが、カスタムのミニオン ID を設定することもできます。カスタムのミニオン ID の設定方法については、 Automation Config のインストールと更新ドキュメントの「 カスタムのミニオン ID の設定(オプション)」を参照してください。
Windows ベースおよび Linux ベースの VMware Aria Automation クラウド テンプレート コードの例を次に示します。クラウド構成スクリプトは、次の方法を使用して指定できます。
  • クラウド テンプレート コードから呼び出される VMware Aria Automation イメージ
  • クラウド テンプレート コードから呼び出されるクラウド構成スクリプト
  • クラウド テンプレート コードに直接追加されるクラウド構成スクリプトのコンテンツ

注:Salt ミニオンを含むクラウド テンプレートを展開しても Automation Assembler に展開が表示されない場合は、Automation Service Broker サービスを使用することによって展開を表示できます。

例:Linux ベースの展開と cloud-init

cloud-init をサポートする Linux ベース マシンにミニオンを展開するためのクラウド テンプレート構成のサンプルを以下に示します。
resources:
  Salt-Minion:
    type: Cloud.Machine
    properties:
      image: Ubuntu-18
      flavor: medium
      constraints:
        - tag: 'env:vsphere'
      cloudConfig: |
        #cloud-config
        hostname: ${input.saltminionhostname}
        users:
          - name: ${input.user}
            sudo: ['ALL=(ALL) NOPASSWD:ALL']
            groups: sudo
            shell: /bin/bash
        runcmd:
          - PASS=${input.password}
          - USER=${input.user}
          - echo $USER:$PASS | /usr/sbin/chpasswd
          - sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
          - service ssh reload
          - curl -L https://bootstrap.saltstack.com -o install_salt.sh
          - sudo sh install_salt.sh -A ${propgroup.SaltStackConfiguration.masterAddress}

例:Windows ベースの展開と Cloudbase-init

Cloudbase-init をサポートする Windows ベース マシンにミニオンを展開するためのクラウド テンプレート構成のサンプルを以下に示します。
formatVersion: 1
inputs: {}
resources:
  WindowsVM-Minion:
    type: Cloud.vSphere.Machine
    properties:
      image: win2016
      flavor: medium
      customizationSpec: Windows
      minionId: '${resource.WindowsVM-Minion.resourceName}'
      networks:
        - network: '${resource.wpnet.id}'
          name: '${wpnet.name}'
          assignPublicIpAddress: true
      cloudConfig: |
        #ps1_sysnative
        [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -OutFile C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe -Uri https://repo.saltstack.com/windows/Salt-Minion-3002.2-Py3-AMD64-Setup.exe
        Start-Process -Wait -FilePath "C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe" -ArgumentList "/S" -PassThru
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master: salt", "master: ${propgroup.SaltStackConfiguration.masterAddress}") | Set-Content -Path C:\salt\conf\minion
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master_finger: ''", "master_finger: '${propgroup.SaltStackConfiguration.masterFingerPrint}'") | Set-Content -Path C:\salt\conf\minion
        Set-Content -Path C:\salt\conf\minion_id -Value '${resource.WindowsVM-Minion.resourceName}'
        C:\salt\salt-call.bat service.restart salt-minion
  wpnet:
    type: Cloud.Network
    properties:
      name: wpnet
      networkType: existing

PowerShell コマンドの構成方法

PowerShell コマンドは、クラウド テンプレートの cloudConfig セクションで構成します。

PowerShell コマンドを有効にする前に、Salt repo Web サイトから Salt ミニオン パッケージをダウンロードします。次に、以下の手順を実行します。
  1. Windows 仮想マシンに Salt ミニオン サービスをインストールします。
  2. ミニオンの構成にある Salt マスター ホスト名の値を更新します。
  3. ミニオンの構成にある Salt マスターのフィンガープリントの値を更新します。
  4. Salt マスターでミニオンを受け入れるために使用される仮想マシン リソース名を minion_id に設定します。
  5. ミニオンを再起動します。

Salt ミニオンの展開に関する詳細

統合 Automation Config を使用して VMware Aria Automation クラウド テンプレートから Salt ミニオンを展開する別の方法については、Assembler and ABX Secrets (and how to use them for installing Automation Config Minion Agents)を参照してください。

Automation Assembler テンプレートの定義および展開の全般的な関連情報については、Assembler 展開の設計を参照してください。Config に関する知識があり、Aria Automation の操作は初めての場合は特に重要です。