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 ミニオン サービスをインストールするプロセスは、これらのノードで実行されているオペレーティング システムによって異なります。
- RedHat Linux または CentOS への Salt ミニオン サービスのインストールの詳細については、Automation Config の必須の依存関係を参照してください。
- 他のオペレーティング システムについては、http://repo.saltstack.com/を参照してください。
/etc/salt/minion.d
ディレクトリ内にmaster.conf
ファイルを作成して、各ミニオンがマスターと通信するように構成します。このファイルで、マスターの IP アドレスを指定します。例:master: 192.0.2.1
- ミニオン サービスを開始します。
sudo systemctl enable salt-minion
sudo systemctl start salt-minion
- 残りのすべてのノードについて、前の手順を繰り返します。
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 Lifecycle で Automation Config サービスがインストールおよび構成されるときに作成されます。ここには、masterAddress プロパティと masterFingerprint プロパティが含まれます。
minionId 値は、クラウド テンプレート コードの cloudConfig
セクションでマシンの /salt/minion_id
に指定された値と一致する必要があります。
- クラウド テンプレート コードから呼び出される VMware Aria Automation イメージ
- クラウド テンプレート コードから呼び出されるクラウド構成スクリプト
- クラウド テンプレート コードに直接追加されるクラウド構成スクリプトのコンテンツ
注:Salt ミニオンを含むクラウド テンプレートを展開しても Automation Assembler に展開が表示されない場合は、Automation Service Broker サービスを使用することによって展開を表示できます。
例:Linux ベースの展開と cloud-init
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
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
セクションで構成します。
- Windows 仮想マシンに Salt ミニオン サービスをインストールします。
- ミニオンの構成にある Salt マスター ホスト名の値を更新します。
- ミニオンの構成にある Salt マスターのフィンガープリントの値を更新します。
- Salt マスターでミニオンを受け入れるために使用される仮想マシン リソース名を
minion_id
に設定します。 - ミニオンを再起動します。
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 の操作は初めての場合は特に重要です。