アンシブルを使用したターミナルサービスエージェントのリモート展開
Resolution
アンシブルは、通常、IT インフラストラクチャ内のサーバーの状態を強制するために使用される構成管理ツールです。これは、サーバーが実際に同じ状態になるようにするために使用されます。適切なパッケージがインストールされ、適切な構成ファイルが配置され、正しいサービスが正しいアクセス許可で実行されていることが保証されます。
管理者は、関するプレイブックの形式で、簡単な言語 (YAML) で一組の規則を書きます。 アンシブルは、ノードに接続し、それらに"アンシブルモジュール"と呼ばれる小さなプログラムを押し出すことによって動作します。アンシブルの作品の詳細についてはここ を見つけることができます
管理者は、Windows アンシブルモジュール(http://docs.ansible.com/ansible/latest/list_of_windows_modules.html) を使用し、リモートでターミナルサービスエージェント (管理者ガイド) をインストールおよび管理 することができます
デフォルトではアンシブルは SSH を使用して Linux を管理します。Windows を管理するには、PowerShell リモート処理を使用します。アンシブルで Windows マシンを管理するには、アンシブルサイトに記載されている手順に従う必要があります。
リファレンス:http://docs.ansible.com/ansible/latest/intro_windows.html
次の手順では、リモートでターミナルサービス (TS) エージェントを展開するためにアンシブル脚本を記述するために使用される Windows アンシブルモジュールのいくつかを紹介します。
アンシブルは、インフラストラクチャ内の複数のシステムに対して同時に動作します。これは、アンシブルのインベントリに記載されているシステムの一部を選択することによって行われ、デフォルトではロケーションに保存されます /etc/ansible/hosts
たとえば、私はタグ (windows) の下に TS エージェントサーバー (tsagent1 palab) を定義している
windows
tsagent1. palab. ローカル
次のモジュールは、TS エージェントを Windows サーバーにインストールします。win_package モジュールの詳細については 、こちらをご覧ください。
次の例では、TS エージェントインストーラー (* .msi) がネットワーク共有でホストされています。
-ホスト: windows の
タスク:
-名前: インストール TS エージェント
win_package:
パス: \\DC1\Users\Administrator\Downloads\TaInstall64.x64-8.0.8-2.msi
product_id: パンターミナルサーバーエージェントの
状態: 現在の
user_name: PALAB\Administrator
user_password: MySuperSecretPass
次のコマンドは、脚本を実行します。
アンシブル-脚本-vvv install_ts
アンシブルは、秘密を暗号化するためにアンシブルボールト (リンク) と呼ばれるツールが付属しています。これらのシークレットは、タスクで使用できます。
秘密の yaml ファイルを作成します。
---
mysecret: MySuperSecretPass
秘密のファイルを暗号化する
# アンシブル-ボールトの暗号化の秘密。新しい vault のパスワードを EnterASuperSecretPass: 新しいボールトの
パスワードを確認する
: EnterASuperSecretPass
暗号化が成功 しました
シークレットファイルの内容は暗号化され、以下のようになります (内容は環境によって異なります)
猫の秘密
$ANSIBLE _vault; 1.1;AES256
63303662393262633865366536333531383362633838316462313739306431656130383730303036
6433623639316439313565393430333430643930623266350a353533666432613438626331396636
32326366386361363363383335333135386364346466636533353434323261373739363533626238
3635613765383762380a306439383961336261316432376266386338643765313064376264633535
35616534613264353739333564633534353230623630653762373632323766643838
mysecret で定義された変数 (例:) は、次のように関するプレイブックで使用できるようになりました。
-ホスト: windows の
タスク:
-名前: シークレット
include_vars: シークレット。
名前: TS エージェントのインストール
win_package:
パス: \\DC1\Users\Administrator\Downloads\TaInstall64.x64-8.0.8-2.msi
product_id: パンターミナルサーバーエージェントの
状態: 現在の
user_name: PALAB\Administrator
user_password: "{{mysecret} }"
上記の脚本を実行するには、次コマンドを入力してください:
ルート @ カリ:/etc/ansible# アンシブル-脚本-質問-ボールト-パス install_ts_vault
パスワード: EnterASuperSecretPass
vault の詳細については、http://docs.ansible.com/ansible/latest/playbooks_vault.html を参照してください。
(オプション)
ファイアウォールと ts エージェントの間の SSL 接続を認証するために、管理者は ts エージェントにカスタム証明書をアップロードできます。
ファイアウォールと TS エージェント間の相互認証を有効にするには、マスタ Windows サーバーで次の手順を実行し、そのサーバーの構成と証明書を使用して、リモートで他のサーバーにプッシュします。
- TS エージェントを Windows サーバーにインストールする
- そのサーバーにカスタム証明書をアップロードします。
- ターミナルサービスエージェントサービスを再起動しない
- Windows サーバーからレジストリ値をコピーし、サーバーの TS エージェントインストールディレクトリからカスタム証明書 (custom-cert) をコピーします。
TS エージェントは、証明書のパスフレーズを暗号化し、レジストリエントリ (TSAgentSSL) を作成します。TS エージェントのサービスを再起動すると、レジストリエントリが削除され、暗号化されたパスフレーズが資格情報ストアに書き込まれます。カスタム証明書 (custom-cert) がロードされ、ファイアウォールとの通信に使用されます。
次の手順では、ts エージェントがインストールされているマスタ Windows サーバー (前の手順を参照) から "custom-cert" をリモート ts エージェントサーバーにコピーします。
リモート ts エージェントサーバー上の ts エージェントインストールフォルダに custom-cert ファイルをコピーするには、"win_copy" (link) を使用します。たとえば、次のタスクを実行するには、"アンシブル-脚本-vvv copy_ts_cert" コマンドを使用します。
-ホスト: windows の
タスク:
-名前: ファイル名を
win_copy:
src: custom-cert
dest: c:\\ プログラムの Files\Palo アルト Networks\Terminal サーバーエージェント \
上記のタスクでは、custom-cert ファイルがマスター Windows server からアンシブルコントローラーにアップロードされ、アンシブルコントローラーから、リモートの TS エージェントサーバーにコピーされます。
root @ myans:/etc/ansible# ls ファイル/custom-cert
ファイル/custom-cert pem
リモート TS エージェント Windows サーバーでは、レジストリキーを更新します。前の手順から、次のレジストリキーに注意しました。
- TSAgentCNEXPIRY
- TSAgentCNISSUER
- TSAgentCNNAME
- TSAgentCNSUBJECT
- TSAgentSSL
"win_regedit" モジュール (リンク) を使用して、リモートサーバー上のレジストリキーが更新 されます
-ホスト: windows の
タスク:
-名前: CN の有効期限
win_regedit:
パス: HKLM: \ Software\Palo アルト Networks\TS Agent\Conf
名前: TSAgentCNEXPIRY
データ: Mar 14 20:15: 47 2019 GMT
のタイプ: 文字列
名: cn 発行
win_regedit:
パス: HKLM: \ Software\Palo アルト Networks\TS Agent\Conf
名前: TSAgentCNISSUER
データ:/CN = palab. ローカル
の種類: 文字列
-名前: cn 名
win_regedit を:
パス: HKLM: \ Software\Palo アルト Networks\TS Agent\Conf
名前: TSAgentCNNAME
データ: cert_TS12Cert
の種類: 文字列
名: CN 件名
win_regedit:
パス: HKLM: \ Software\Palo アルト Networks\TS
Agent\Conf名前: TSAgentCNSUBJECT
データ:/CN = 192.168.75.12
タイプ: 文字列
-名前: パスフレーズ
win_regedit:
パス: HKLM: \ Software\Palo アルト Networks\TS Agent\Conf
名前: TSAgentSSL
データ: ro6lSTTRERERERERTRRRR の
種類: 文字列
"win_service" モジュール (リンク) を使用して、ターミナルサーバーエージェントサービスを再起動することができます。サービスが再起動されると、TS エージェントはカスタム証明書を使用し、パスフレーズをレジストリから資格情報ストアに移動します。レジストリキー (TSAgentSSL) を移動すると、レジストリで表示することはできなくなります。
-ホスト: windows
のタスク:
-名前: 再起動サービス
win_service:
名前: パンターミナルサーバーエージェントの
状態: 再起動
ファイアウォールでは、接続セキュリティが (デバイス > ユーザー id > 接続セキュリティ) の下で構成されていることに注意してください。この手順では、ファイアウォールは、ターミナルサービスエージェントの証明書に署名した CA 証明書を確認します。
TS エージェントの Windows サーバーでは、CA 証明書がインストールされていることを前提としています。CA 証明書は、Windows グループポリシー (リンク) を使用してインストールできます。
1つは、レジストリに変更を加えることによって、ターミナルサービスエージェントの構成を変えることができます。次のライブ記事 (link) では、TS エージェントレジストリをチューニングしてポートの割り当てと処理を改善する方法について説明します。
次のスクリーンショットは、変更できるさまざまなレジストリエントリを示しており、これによって TS エージェントが内部的に再構成されます。
「win_regedit」モジュールを使用して、TS エージェントレジストリを変更することができます。次のタスクは、TS エージェントに対して行われたいくつかの変更を示しています。
次のキーのレジストリ値の変更:
- StartSize
- Maxsize
- StartPort
- EndPort
- FreePortBlockDelay
- EnableTws
- TSAgentDomain
- OverrideDomainEnable
- ReservedPorts