これは、Pulse Secure vTM を構成するための Puppet モジュールです (以前は:)
Zeus Load Balancer
Zeus eXtensible Traffic Manager (ZXTM)
Zeus Traffic Manager
Riverbed Stingray
Riverbed SteelApp
Brocade vTM
Puppet では、Puppet バージョン 4 から一重引用符で囲まれた文字列でのエスケープの処理方法が変更されました。
このモジュールのバージョン 1.x には、puppet 3.x をサポートするマニフェストが含まれています。
Puppet 4.x 以降を使用している場合は、バージョン 2.x を使用する必要があります。
genManifest と genNodeConfig の使用
独自のマニフェストを生成する場合は、マニフェスト形式を制御するフラグ @PUP4X がlib/brocade/puppetmanifest
にあります。フラグは 2.x モジュールでは true、1.x モジュールでは false になります。 3.x と 4.x マニフェスト生成を切り替えるために必要な変更はこれだけです。
9.9 以降のバージョンを実行している vTM を管理する場合は、1.33.x を使用できます。
ただし、現在の vTM のすべての機能にアクセスしたい場合は、利用可能な最新の API バージョンを使用してください。
vTM バージョン | REST API | パペット 3.x バージョン | パペット 4+ バージョン |
---|---|---|---|
10.4 (LTS) | 3.8 | 1.38.x | - |
17.2 (LTS) | 4.0 | 1.400.x | 2.400.x |
17.3 | 5.0 | 1.500.x | 2.500.x |
17.4 | 5.1 | 1.501.x | 2.501.x |
18.1 | 5.2 | 1.502.x | 2.502.x |
18.2 | 6.0 | 1.600.x | 2.600.x |
以下のモジュールのバージョン管理に関する注記を参照してください。
このモジュール自体は、vTM の展開には関与しません。 vTM の展開を自動化するには、vTM が実行されている場所に応じてさまざまな方法があります。
Cloud APIs (Amazon, RackSpace, Joyent, etc, etc)
Docker modules (if you use docker)
puppetlabs-vsphere (if you run ESXi)
Guest Customisations (if you run ESXi)
cloud-init (Openstack and others)
./zinstall --replay-from= on generic Linux
vTM を立ち上げたら。このモジュールは、vTM インスタンスの構成の管理に役立ちます。
次のいずれかの場所を試してみてください。
Pulse Secure - vADC 情報
Pulse Secure - 今すぐお試しください
Pulse Secure - vADC ドキュメント
Pulse Secure - vTM Docker イメージ
このモジュールのバージョン管理は、セマンティック バージョニングに正確に従っていません。
提供されている REST API のバージョンをバージョン番号で示したいので、
選考科目 。マイナー。パッチ
残りの API バージョンはマイナー番号に含まれます。
モジュールバージョン 。 API メジャー + API マイナー 。パッチ
例えば。
puppet module install pulse-pulsevtm
puppet module install pulse-pulsevtm -v 1.35.0
puppet module install pulse-pulsevtm -v '>=1.35.0 <1.36.0'
pulsevtm クラスを宣言するときは、 rest_user
およびrest_pass
パラメータを指定する必要があります。他のパラメータはすべてオプションです。
Defaults:
rest_user = undef
rest_pass = undef
rest_ip = 127.0.0.1
rest_port = 9070
purge = false
purge_state_dir = undef
デフォルトでは、puppet は明示的に宣言した設定のみを考慮します。ノード マニフェストに含まれていない構成が vTM に存在する場合、その構成は無視されます。
Puppet に管理対象外の設定を削除させたい場合は、 $purge => true
を設定します (そしてモジュールに状態$purge_state_dir
保存する場所を提供します)。次に、Puppet は既知のリソースの名前を状態ディレクトリに保存し、すべての未知のリソースを vTM から削除します。
警告:パージは危険です!警告: $purge
使用する場合は、デフォルトの構成オブジェクトを含める必要があります。 (つまり、 genNodeConfig -n
使用しないでください)
簡単な Web サービスの例。単一の VIP と 2 つの仮想サーバー (HTTP と HTTPS) を使用します。 HTTPS サービスは SSL オフロードを実行し、両方とも同じサーバー プールを使用します。
class { 'pulsevtm':
rest_user => 'puppet',
rest_pass => 'master',
rest_ip => '10.1.1.22',
}
include pulsevtm::global_settings
pulsevtm::traffic_ip_groups { 'Web%20VIP':
ensure => present,
basic__enabled => true,
basic__ipaddresses => ["10.1.1.10"],
basic__machines => ["vtm1.internal.local"],
}
pulsevtm::virtual_servers { 'WebService':
ensure => present,
basic__enabled => true,
basic__listen_on_any => false,
basic__listen_on_traffic_ips => ["Web VIP"],
basic__pool => "WebPool",
basic__port => 80,
}
pulsevtm::virtual_servers { 'WebService%20SSL':
ensure => present,
basic__enabled => true,
basic__listen_on_any => false,
basic__listen_on_traffic_ips => ["Web VIP"],
basic__pool => "WebPool",
basic__port => 443,
basic__ssl_decrypt => true,
ssl__server_cert_default => 'TEST-CERT',
}
pulsevtm::pools { 'WebPool':
ensure => present,
basic__nodes_table => '[{"node":"10.1.1.1:80","priority":1,"state":"active","weight":1}]',
}
pulsevtm::ssl_server_keys { 'TEST-CERT':
ensure => present,
basic__note => '',
basic__private => '-----BEGIN RSA PRIVATE KEY-----nMIIEpAIBAAKCAQEAsiZD53KCrcN3r4yAW6GwkITYEQyzg1bbDP8fiRvaWJxOgRtEn/8E4KRDdeqOCuV1YNuLaTsfCkF34T4pvI00wZ5lSdXBnVrEie49ip7z0QNQ/W4mvnDzkDQ/Och1lRevflAhJUfgiVizCxDbxJfR6oSip3RAeGarBIhp7TlfLKQj7YdnIynFROcHIMkLZ7aq7tUzVvcGonz5YXrmDDKFoGvbaJnNC0SAiM0aJIomOlexQmL4cgInhQQ1YlrF9hnulSbZN20zNz8fSeJ1UmyUgrYqLgzLXUb54pqK1aGg4rQNIqwoAbyqnibqzc2rO/o6MXgEb9zzFwAyHI38nptE7OdiC+wIDAQABAoIBAEk98iz1p0RJWKuTn2DHUCANimnJoBmW5D9YIDa8RBHPpz1zFGVkM10oK5QPGtbf/6ISoP5ikCBnSiIQrnJgYddgkhwAUIcXPy33ptOOI9jS4aFPJNaOuZRP5q6a+7yQQFZuGzJ4mpfdH78s7yn2kPWltnnG6GcdmbmkurF4beEWiNhgsex2hLhhj20oVUaGF1BGMdrp20vYE496B52n4Wuax9lfFoFuv8FAz96EZQOQS6J1Wf+o0qqZYNDaBRI5wi3EjrNpcEHhELp9eHeGnnFwDgQD15HyK2Qio4ig3T386OTUGT/FCNMxqT3wDn4ov+kTFtDoI+2qvJ/l6vULvn20f50AECgYEA6f7K1jVb7nNLwUjPld0azXbQgE3mdlwJVI8urz80JLQwKckg53tPngol8NaZOxo7gQlML/5ltK/y5cW6B2JhxjFtNoAAzNNBmGTRvLpLK3HHGEfVRVexZn8ZmssEzG49Xk6l1A7O+UWgqFUMlLBcYFKEvvGS8efcXBLwOV7G3EXxsCgYEAwucKnJ4jN8ECtDuMHY0sKbbfLXpqPS7KMfdWio1SaR1ctEos5wrKaX3vG3Zbiz6weYCkontNI9ioQVQ7D0Uc+lhhhlxeHAVnNFJhpZowYdf44mI/LCW2pga3dOZ9vDRqWP29KGnUwzH1RfXPtZBqMC5vPHd42kAGgGXwBvPZChOSaECgYEAiNjyV4StVy8mxsuGW+cLnnc428lKczevVqRZz/xm/rReUc1ulWrvLLFSrx9STjZxRm3hmM/3O00LiUWyHk9zTny3o6U7DKQcD/dQ4tV9eRvIrtg+MsxkuL7rgpPpIoX2bgkhAnwGn9IQu2HCEdNyswnKPj/xILCGlxlNtGqBLPNfLECgYEAlYqHtAW3XRuCrOVsibbN7ZkTpSaZw87fFL2Rn6BfFt+8fWhcQ3l4DLDfgQay/oe/B7q4l2XdmWJ03Y5SmIQ9dRSH7FHU+Chave6jEnFd1fTLtYcESW82UPTeVgdzebAN2PH27MOXSY7ts3/7KM9lnJKTu6r/2kYk/Oi0vLnOGHkj4ECgYBaxw/qFIMWAvi8r84cbUG/PYivHeJNJ53EhXE6UZPxi6QuVhlbitrinHk6SP443RCdjAR9IiZoDQkl+yW0z86ZShJYXF+1JFQU+ftsRzCtfx2XLD5dQO5qnnleXIH8z/4lUuPMyBw5bGj9eRXat7/SI2W6cuksMHLIMBiAognmdvRw==n-----END RSA PRIVATE KEY-----n',
basic__public => '-----BEGIN CERTIFICATE-----nMIIDFjCCAf4CCQD4M1+rCABUDjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQGEwJHnQjESMBAGA1UEBxMJQ2FtYnJpZGdlMRAwDgYDVQQKEwdCcm9jYWRlMRgwFgYDVQQDnEw93d3cuYnJvY2FkZS5jb20wHhcNMTUwODIwMTQ1MzQ3WhcNMTYwODE5MTQ1MzQ3nWjBNMQswCQYDVQQGEwJHQjESMBAGA1UEBxMJQ2FtYnJpZGdlMRAwDgYDVQQKEwdCncm9jYWRlMRgwFgYDVQQDEw93d3cuYnJvY2FkZS5jb20wggEiMA0GCSqGSIb3DQEBnAQUAA4IBDwAwggEKAoIBAQCyJkPncoKtw3evjIBbobCQhNgRDLODVtsM/x+JG9pYnnE6BG0T/wTgpEN16o4K5XVg24tpOx8KQXfhPim8jTTBnmVJ1cGdWsSJ7j2KnvPRAn1D9bia8POQND85yHWVF69+UCElR+CJWLMLENvEl9HqhKKndEB4ZqsEiGntOV8spCnPth2cjIVE5wcgyQtntqru1TNW9waifPlheuYMMoWga9tomc0LRICIzRokiiY6V7FnCYvhyAiFBDViWsX2Ge6VJtk3bTM3Px9J4nVSbJSCtiouDMtdRvnimorVoaDitA0inrCgBvKqJurNzas7+joxeARv3PMXADIcjfyem0Ts52IL7AgMBAAEwDQYJKoZIhvcNnAQELBQADggEBAJcuRIh3ngpFz0nHym5z56tbzHBrjF3frwp75Nknz3kuyCjdG7NrnPF5WvDl7lb1WX9EgAn/vJznYCmMxbjnUhHTMIMWbyIoTKJIIHCsrDyiK21NoI3nYnu/9V1TADGdkqGSag00UqygF4nVkbvKJcjXHq9t0zz56xAvCamBvlNCkJ0/mQN3Qdn5r/HgiRX69MSG1RRAFB+rkZInGekedLumBYCuALFCY5SB1+ns9XtGGJGRMh74oUpngjE62k/mEGPhLaXGJRupY07ezQKJOMBLRN1+HzIETsdH68FDdowFLzcH8fOn9HIgnCuhlcpfk5VfCaeIqdqYEsrxY+KADA8ss06M=n-----END CERTIFICATE-----n',
basic__request => '-----BEGIN NEW CERTIFICATE REQUEST-----nMIICkjCCAXoCAQAwTTELMAkGA1UEBhMCR0IxEjAQBgNVBAcTCUNhbWJyaWRnZTEQnMA4GA1UEChMHQnJvY2FkZTEYMBYGA1UEAxMPd3d3LmJyb2NhZGUuY29tMIIBIjANnBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsiZD53KCrcN3r4yAW6GwkITYEQyzng1bbDP8fiRvaWJxOgRtE/8E4KRDdeqOCuV1YNuLaTsfCkF34T4pvI00wZ5lSdXBnnVrEie49ip7z0QNQ/W4mvDzkDQ/Och1lRevflAhJUfgiVizCxDbxJfR6oSip3RAeGnarBIhp7TlfLKQj7YdnIyFROcHIMkLZ7aq7tUzVvcGonz5YXrmDDKFoGvbaJnNC0SnAiM0aJIomOlexQmL4cgIhQQ1YlrF9hnulSbZN20zNz8fSeJ1UmyUgrYqLgzLXUb5n4pqK1aGg4rQNIqwoAbyqibqzc2rO/o6MXgEb9zzFwAyHI38nptE7OdiC+wIDAQABnoAAwDQYJKoZIhvcNAQELBQADggEBAGnf+2VPIY8zW6IE2htseeLHxH5SlNc6GJsInkGmc9WG72yV97EakpzwsIgsz06QXwCh+HloNUPZQAQ9KcUFhskLXxLE7PYXKnPLrnMMAvA7aqCGPhb3/p738tT+G9IKUQfkbYmvY4ROIk56XzWT0ufVTw11jrIglQXo+gnWdJt2MbNC6f/1+NVL85q9pRBvFSeBk7D43U/B+KkM/7wmB+5fMB6DJfRAHCvjOEInX56MyO4UJXsvs9jriDHLoqpAu3IkV1oxGzdaE/dRveqq21q1hz5S2PaOU5jPzetHnAra3APjd55zS5EGex8t82ZJbI3aru2lPl6ztfErSWQLGNrxbVlE=n-----END NEW CERTIFICATE REQUEST-----n',
}
bin ディレクトリには、このモジュールのマニフェスト ファイルを生成するために使用されるツールが含まれています。
cleanup
- 現在のマニフェストとサポート ファイルを削除します
updateDocs
- マニフェストで使用するドキュメントを生成します
genManifests
- マニフェスト自体を生成します。
genNodeConfig
- vTM から直接ノード マニフェストを生成します
これらのツールを使用すると、API の任意のバージョンにアップグレードまたはダウングレードできます。たとえば、REST API バージョン 3.5 にアップグレードするには、次のコマンドを実行します。
./bin/cleanup -d
./bin/updateDocs -d zxtm10.1/3.5
./bin/genManifests -v 3.5 -h <clean vtm host> -U admin -P password -d 1
構成の一部をデフォルトのマニフェストとして明示的に含める場合を除き、新しく構築されたクリーンな vTM ホストに対して genManifests を実行することをお勧めします。
このツールは、ほとんどの人にとって最も便利なツールです。事前構成された vTM の構成をインポートしてマニフェストを構築できます。
デフォルトでは、構成内のすべてのオブジェクトの構成が生成され、それらのオブジェクトのすべてのパラメーターが含まれます。 -s
を使用してスパース構成ファイルを生成するか、 -n
を使用して組み込みの未変更オブジェクトを無視するようにツールに指示できます。
使用法:
Usage: genNodeConfig [options]
Specific options:
-h, --host <vTM Host> The hostname or ip address of the vTM to probe
-p, --port <vTM Port> The REST API port of the vTM to probe
-v, --version <REST Version> The REST Version
-U, --user <username> The REST API User
-P, --pass <password> The REST API Password
-o, --outfile <filename> The output file to write
-b, --bindir <filename> The directory in which to store any binary content (eg rules)
-m, --mandir <manifest dir> The location of the manifests
-d, --debug <level> The Debug level, 0 (lowest) to 5 (highest)
-s Generate a sparse configuration (ignore default params)
-n Generate a sparse configuration (ignore built-in objects)
-?, --help Show this message
Mandatory Parameters: --version, --user, --password, --outfile
デフォルト/組み込みオブジェクトを使用せずに、可能な限り最小のマニフェストを生成するには、以下を使用します。
./bin/genNodeConfig -h vtm1 -v 3.3 -U admin -P admin -d 1 -o vtm1_manifest.pp -s -n
完全な構成を生成するには、次の手順を実行します。これはデフォルトで推奨される方法です。
./bin/genNodeConfig -h vtm1 -v 3.3 -U admin -P admin -d 1 -o vtm1_manifest.pp
非 JSON/バイナリ構成は、outfile というプレフィックスが付いたファイルに保存されます。 -b dir
使用して、それらを配置するフォルダーを指定できます。
注: vTM は、REST API 経由で秘密 SSL キーを提供しません。したがって、このツールは秘密鍵を保存できません。代わりに、REST によって提供される SHA256 フィンガープリントが保存されます。秘密キーが必要な場合は、手動でマニフェストに秘密キーを追加する必要があります。
マニフェスト、テンプレート、ファイル、およびオプションで skel/docs 内のファイルを削除し、skel フォルダーから初期構成をコピーします。
使用法:
Usage: cleanup [options]
Specific options:
-y, --jfdi Just do it, don't ask me
-d, --docs Clean the skel/docs tree too
-?, --help Show this message
skel/docs 内のドキュメントを含むすべてのファイルをクリーンアップするには
./bin/cleanup -d
初期設定には init.pp のみが含まれているため、クリーンアップの実行後に genManifests を実行する必要があります。
これを使用するには、REST スキーマのコピーが必要です。スキーマは、vTM 10.0 以降のバージョンの $ZEUSHOME/zxtm/etc にあります。スキーマをフォルダーに抽出し、ツールでそれらのスキーマを指定します。
使用法:
Usage: updateDocs [options]
Specific options:
-y, --jfdi Just do it, don't ask me
-d, --dir REST FOLDER folder containing REST schemas
-o, --outdir Docs Folder output folder for documentation
-?, --help Show this message
Mandatory Parameters: --dir
REST スキーマの ZXTM 10.1 コピーから API バージョン 3.3 のドキュメントを作成したい場合は、次のようにします。
./bin/updateDocs -d zxtm-10.1/3.3
updateDocs は、各 REST スキーマのマークダウン ファイルを skel/docs フォルダーに配置します。 genManifests ツールはマニフェストを構築するときにこのフォルダーを参照するため、両方で同じ API バージョンを使用する必要があります。
私は init.pp と purge.pp マニフェストのみを自分で作成し、残りは Ruby スクリプトによって生成されます。スクリプトは vTM REST API を実行し、検出したタイプとオブジェクトごとにマニフェストを書き込みます。
マニフェストの API バージョンは、バージョン文字列の中央の番号 (マイナー番号) で示されます。 「x.33.z」バージョンは REST API 3.3 を示し、vTM バージョン 9.9 (LTS) 以降と互換性があります。
9.9 よりも古いバージョンを実行している場合は、おそらくアップグレードする必要があります。
使用法:
Usage: genManifests [options]
Specific options:
-h, --host <vTM Host> The hostname or ip address of the vTM to probe
-p, --port <vTM Port> The REST API port of the vTM to probe
-v, --version <REST Version> The REST Version
-U, --user <username> The REST API User
-P, --pass <password> The REST API Password
-d, --debug <level> The Debug level, 0 (lowest) to 5 (highest)
-y, --[no-]jfdi Don't print warning, just do it
-?, --help Show this message
Mandatory Parameters: --version, --user, --password
マニフェストを生成する Ruby ツールが含まれており、bin/genManifests にあります。
Puppet を使用して 9.9 より古いバージョン (つまり、API の古いバージョン) を管理したい場合は、genManifests が役に立ちます。
9.9 以降にリリースされた vTM のすべてのバージョンでは、引き続き API バージョン 3.3 がサポートされていますが、新しい API 呼び出しまたは機能を利用したい場合は、このツールを使用してマニフェストを再生成できます。
./bin/genManifests -h <vTM Host> -v <API Version> -U <User> -P <Pass> -d <debug level>
このツールは、API を実行することによってマニフェストを生成します。検出されたタイプ (仮想サーバー、プール、モニターなど) には定義されたタイプが作成され、それらのタイプのインスタンスをデプロイできるようになります。見つかった構成はすべて、クラスの生成に使用されます。たとえば、デフォルト モニターはクラスとして作成されるため、 include pulsevtm::moinitors_simple_http
だけで済みます。
これには、含めたいデフォルト設定のクラスも生成できるという素晴らしい副次効果があります。たとえば、genManifests を実行する前に FLA キーをアップロードするだけで、FLA キーのカスタム クラスを作成できます。次に、 include pulsevtm::licenses_myfla