هذه وحدة دمية لتكوين Pulse Secure vTM - سابقًا:
Zeus Load Balancer
Zeus eXtensible Traffic Manager (ZXTM)
Zeus Traffic Manager
Riverbed Stingray
Riverbed SteelApp
Brocade vTM
غيرت الدمية طريقة التعامل مع عمليات الهروب في سلاسل مفردة مقتبسة من الإصدار 4 من الدمية.
يتضمن الإصدار 1.x من هذه الوحدة البيانات التي تدعم الإصدار 3.x من الدمية.
يجب استخدام الإصدار 2.x إذا كنت تستخدم دمية 4.x أو أعلى.
باستخدام genManifests وgenNodeConfig
إذا قمت بإنشاء بياناتك الخاصة، فهناك علامة @PUP4X في lib/brocade/puppetmanifest
والتي تتحكم في تنسيق البيان. ستكون العلامة صحيحة في الوحدات النمطية 2.x وخطأ في الوحدات النمطية 1.x. هذا هو كل ما تحتاج إلى تغييره للتبديل بين إنشاء البيان 3.x و4.x.
إذا كنت تريد إدارة أجهزة vTM التي تعمل بالإصدارات من 9.9 وما فوق، فيمكنك استخدام 1.33.x
ومع ذلك، إذا كنت تريد الوصول إلى كافة ميزات جهاز vTM الحالي لديك، فاستخدم أحدث إصدار متوفر من واجهة برمجة التطبيقات (API).
نسخة vTM | واجهة برمجة تطبيقات REST | دمية 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 اعتمادًا على مكان تشغيله... بما في ذلك:
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 هذا.
يمكنك تجربة أحد هذه المواقع:
نبض آمن - معلومات vADC
نبض آمن - جرب الآن
نبض آمن - وثائق vADC
Pulse Secure - صورة vTM Docker
إصدار هذه الوحدة لا يتبع الإصدار الدلالي تمامًا.
أريد الإشارة إلى إصدار REST API المقدم في رقم الإصدار، وذلك بدلاً من استخدامه
رئيسي . صغير . رقعة
نقوم بتضمين إصدار API المتبقي في الرقم الثانوي.
إصدار الوحدة النمطية . API-Major + API-Minor . رقعة
على سبيل المثال.
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'
عند الإعلان عن فئةpullevtm الخاصة بك، يجب عليك توفير معلمة 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
بشكل افتراضي، تهتم الدمية فقط بالتكوين الذي تعلنه صراحةً. إذا كان التكوين موجودًا على vTM ولم يتم تضمينه في بيان العقدة، فسيتم تجاهله.
إذا كنت تريد من الدمية إزالة التكوين غير المُدار، فيمكنك تعيين $purge => true
(وتوفير مكان للوحدة لتخزين الحالة $purge_state_dir
). سيقوم Puppet بعد ذلك بتخزين أسماء الموارد المعروفة في دليل الحالة، وسيقوم بإزالة كافة الموارد غير المعروفة من vTM.
تحذير: التطهير أمر خطير! تحذير: إذا كنت تستخدم $purge
، فيجب عليك تضمين كائنات التكوين الافتراضية. (أي لا تستخدم genNodeConfig -n
)
مثال بسيط لخدمة الويب. يستخدم VIP واحدًا مع خادمين افتراضيين: 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
أوصي بتشغيل genManifests على مضيف vTM حديث/نظيف، إلا إذا كنت تريد صراحةً تضمين بعض التكوينات الخاصة بك كبيانات افتراضية.
هذه الأداة هي الأكثر فائدة بالنسبة لمعظم الناس. فهو يسمح لك بإنشاء بيان عن طريق استيراد تكوين 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/ثنائي في ملفات، مسبوقة بالملف الخارجي. يمكنك استخدام -b dir
لتحديد مجلد لوضعها فيه.
ملاحظة: لا يوفر vTM مفاتيح SSL خاصة عبر REST api. لذلك لا تستطيع هذه الأداة تخزين مفاتيحك الخاصة. وبدلاً من ذلك، سيتم تخزين بصمة SHA256 كما هو منصوص عليه بواسطة REST. ستحتاج إلى إضافة مفاتيحك الخاصة يدويًا إلى البيان الخاص بك إذا كنت تريدها
احذف الملفات الموجودة في البيانات والقوالب والملفات و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 المتاحة لاستخدام هذا. يمكن العثور على المخططات في $ZEUSHOME/zxtm/etc لأي إصدار 10.0 وأحدث من vTM. قم باستخراج المخططات إلى مجلد ثم قم بتوجيه الأداة إليها.
الاستخدام:
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
إذا أردت إنشاء وثائق لإصدار API 3.3، من نسخة ZXTM 10.1 من مخططات REST، فقد تستخدم
./bin/updateDocs -d zxtm-10.1/3.3
يقوم updateDocs بوضع ملف تخفيض السعر لكل مخطط REST في مجلد skel/docs. ستبحث أداة genManifests في هذا المجلد أثناء إنشاء البيانات، لذا يجب عليك التأكد من استخدام نفس إصدار API في كليهما.
لقد كتبت فقط init.pp وpurge.pp يظهران بنفسي، ويتم إنشاء الباقي بواسطة برنامج نصي روبي. يتعامل البرنامج النصي مع 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
يتم تضمين أداة روبي التي تنشئ البيانات ويمكن العثور عليها في bin/genManifests.
إذا كنت تريد استخدام puppet لإدارة إصدار أقدم من 9.9 (أي إصدار أقدم من واجهة برمجة التطبيقات)، فيمكن أن تساعدك genManifests.
لا تزال جميع إصدارات vTM التي تم إصدارها منذ 9.9 تدعم إصدار 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
.
هذا له تأثير جانبي لطيف حيث يمكنه أيضًا إنشاء فئات لأي تكوين افتراضي تريد تضمينه. على سبيل المثال، يمكن أن يكون لديك فئة مخصصة لمفتاح FLA الخاص بك تم إنشاؤها ببساطة عن طريق تحميل مفتاح FLA قبل تشغيل genManifests. ثم include pulsevtm::licenses_myfla