Ini adalah modul boneka untuk mengonfigurasi Pulse Secure vTM - sebelumnya:
Zeus Load Balancer
Zeus eXtensible Traffic Manager (ZXTM)
Zeus Traffic Manager
Riverbed Stingray
Riverbed SteelApp
Brocade vTM
Boneka mengubah cara penanganan pelarian dalam string yang dikutip tunggal dari boneka versi 4.
Versi 1.x dari modul ini mencakup manifes yang mendukung boneka 3.x.
Versi 2.x sebaiknya digunakan jika Anda menggunakan boneka 4.x atau lebih tinggi.
Menggunakan genManifests dan genNodeConfig
Jika Anda membuat manifes sendiri, maka ada tanda @PUP4X di lib/brocade/puppetmanifest
yang mengontrol format manifes. Bendera akan menjadi benar di modul 2.x dan salah di modul 1.x. Hanya itu yang perlu Anda ubah untuk beralih antara pembuatan manifes 3.x dan 4.x.
Jika Anda ingin mengelola vTM yang menjalankan versi 9.9 dan lebih tinggi maka Anda dapat menggunakan 1.33.x
Namun jika Anda ingin mengakses semua fitur vTM Anda saat ini, gunakan versi API terbaru yang tersedia
Versi vTM | API REST | Versi Boneka 3.x | Versi Boneka 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 |
Lihat catatan tentang pembuatan versi Modul di bawah....
Modul ini tidak melibatkan penerapan vTM. Ada banyak cara bagi Anda untuk mengotomatiskan penerapan vTM tergantung di mana vTM dijalankan... Termasuk:
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
Setelah vTM Anda berdiri. Modul ini dapat membantu Anda mengelola konfigurasi instans vTM tersebut.
Anda dapat mencoba salah satu lokasi berikut:
Pulse Aman - Informasi vADC
Pulsa Aman - Coba Sekarang
Pulse Aman - Dokumentasi vADC
Pulse Aman - Gambar Docker vTM
Pembuatan versi modul ini tidak persis mengikuti Pembuatan Versi Semantik.
Saya ingin menunjukkan versi REST API yang disediakan di nomor versi, dan bukannya menggunakan
Besar . Kecil. Tambalan
Kami menyertakan versi API lainnya di nomor Minor.
Versi Modul. API-Mayor + API-Minor . Tambalan
Misalnya.
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'
Saat mendeklarasikan kelas pulsevtm, Anda harus memberikan parameter rest_user
dan rest_pass
. Semua parameter lainnya bersifat opsional.
Defaults:
rest_user = undef
rest_pass = undef
rest_ip = 127.0.0.1
rest_port = 9070
purge = false
purge_state_dir = undef
Secara default, boneka hanya peduli dengan konfigurasi yang Anda nyatakan secara eksplisit. Jika ada konfigurasi di vTM yang tidak disertakan dalam manifes simpul Anda, konfigurasi tersebut akan diabaikan.
Jika Anda ingin boneka menghapus konfigurasi yang tidak dikelola, Anda dapat menyetel $purge => true
(dan menyediakan tempat bagi modul untuk menyimpan status $purge_state_dir
). Wayang kemudian akan menyimpan nama sumber daya yang diketahui di direktori status, dan akan menghapus semua sumber daya yang tidak diketahui dari vTM.
Peringatan: Pembersihan Itu Berbahaya! Peringatan: Jika Anda menggunakan $purge
maka Anda harus menyertakan objek konfigurasi default. (yaitu jangan gunakan genNodeConfig -n
)
Contoh layanan web sederhana. Menggunakan satu VIP dengan dua server virtual: HTTP dan HTTPS. Layanan HTTPS melakukan pembongkaran SSL, dan keduanya menggunakan kumpulan server yang sama.
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',
}
Direktori bin berisi alat yang digunakan untuk menghasilkan file manifes untuk modul ini.
cleanup
- menghapus manifes saat ini dan file pendukung
updateDocs
- menghasilkan dokumentasi untuk digunakan dalam manifes
genManifests
- menghasilkan manifes itu sendiri.
genNodeConfig
- menghasilkan manifes simpul langsung dari vTM
Anda dapat meningkatkan atau menurunkan versi API apa pun dengan menggunakan alat ini. Misalnya, untuk meningkatkan ke REST API versi 3.5 Anda dapat menjalankannya
./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
Saya menyarankan Anda menjalankan genManifests pada host vTM yang baru dibuat/bersih, kecuali Anda secara eksplisit ingin menyertakan beberapa konfigurasi Anda sebagai manifes default.
Alat ini adalah yang paling berguna bagi kebanyakan orang. Ini memungkinkan Anda membuat manifes dengan mengimpor konfigurasi vTM yang telah dikonfigurasi sebelumnya.
Secara default, ini akan menghasilkan konfigurasi untuk semua objek di konfigurasi Anda dan menyertakan semua parameter untuk objek tersebut. Anda dapat memberi tahu alat tersebut untuk menghasilkan file konfigurasi yang jarang dengan -s
, atau mengabaikan objek bawaan yang tidak dimodifikasi dengan -n
.
Penggunaan:
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
Untuk menghasilkan manifes sekecil mungkin, tanpa objek default/bawaan, Anda akan menggunakan:
./bin/genNodeConfig -h vtm1 -v 3.3 -U admin -P admin -d 1 -o vtm1_manifest.pp -s -n
Untuk menghasilkan konfigurasi lengkap - yang merupakan metode default dan direkomendasikan:
./bin/genNodeConfig -h vtm1 -v 3.3 -U admin -P admin -d 1 -o vtm1_manifest.pp
Konfigurasi non-JSON/biner apa pun akan disimpan dalam file, diawali dengan file keluar. Anda dapat menggunakan -b dir
untuk menentukan folder tempat mereka ditempatkan.
Catatan: VTM tidak menyediakan kunci SSL pribadi melalui api REST. Jadi alat ini tidak bisa menyimpan kunci pribadi Anda. Sebaliknya ia akan menyimpan sidik jari SHA256 seperti yang disediakan oleh REST. Anda perlu menambahkan kunci pribadi ke manifes secara manual jika Anda menginginkannya
Hapus file dalam manifes, templat, file, dan skel/docs opsional, lalu salin dalam konfigurasi awal dari folder skel.
Penggunaan:
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
Untuk membersihkan semua file termasuk dokumentasi di skel/docs
./bin/cleanup -d
Konfigurasi awal hanya berisi init.pp, Anda perlu menjalankan genManifests setelah menjalankan pembersihan
Anda harus memiliki salinan skema REST yang tersedia untuk menggunakan ini. Skema dapat ditemukan di $ZEUSHOME/zxtm/etc dari vTM versi 10.0 dan yang lebih baru. Ekstrak skema ke dalam folder lalu arahkan alat ke skema tersebut.
Penggunaan:
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
Jika Anda ingin membuat dokumentasi untuk API versi 3.3, dari salinan skema REST ZXTM 10.1, maka Anda dapat menggunakan
./bin/updateDocs -d zxtm-10.1/3.3
updateDocs menempatkan file penurunan harga untuk setiap skema REST di folder skel/docs. Alat genManifests akan mencari di folder ini saat membuat manifes, jadi Anda harus memastikan bahwa Anda menggunakan versi API yang sama di keduanya.
Saya hanya menulis manifes init.pp dan purge.pp sendiri, sisanya dihasilkan oleh skrip Ruby. Skrip menjalankan vTM REST API dan kemudian menulis manifes untuk setiap jenis dan objek yang ditemukan.
Manifes versi API ditunjukkan dengan angka tengah (angka minor) dalam string versi. Versi "x.33.z" apa pun akan menunjukkan REST API 3.3 dan kompatibel dengan vTM versi 9.9 (LTS) dan yang lebih baru.
Jika Anda menjalankan versi yang lebih lama dari 9.9, maka Anda mungkin harus memutakhirkan.
Penggunaan:
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
Alat Ruby yang menghasilkan manifes disertakan dan dapat ditemukan di bin/genManifests.
Jika Anda ingin menggunakan boneka untuk mengelola versi yang lebih lama dari 9.9 (yaitu versi API yang lebih lama), maka genManifests dapat membantu.
Semua versi vTM yang dirilis sejak 9.9 masih memiliki dukungan untuk API versi 3.3, namun jika Anda ingin menggunakan panggilan atau fitur API yang lebih baru maka Anda dapat membuat ulang manifes menggunakan alat ini.
./bin/genManifests -h <vTM Host> -v <API Version> -U <User> -P <Pass> -d <debug level>
Alat ini menghasilkan manifes dengan menjalankan API. Tipe apa pun yang ditemukannya (misalnya Server Virtual, Kumpulan, Monitor) akan dibuatkan tipe yang ditentukan, sehingga Anda dapat menerapkan instance dari tipe tersebut. Konfigurasi apa pun yang ditemukannya akan digunakan untuk menghasilkan Kelas. Misalnya Monitor Default dibuat sebagai kelas, jadi Anda cukup include pulsevtm::moinitors_simple_http
.
Ini memiliki efek samping yang bagus karena juga dapat menghasilkan kelas untuk konfigurasi default apa pun yang ingin Anda sertakan. Misalnya, Anda dapat membuat kelas khusus untuk kunci FLA Anda hanya dengan mengunggah kunci FLA sebelum menjalankan genManifests. Kemudian include pulsevtm::licenses_myfla