Citrix ADC
قامت Citrix بتطوير موفر Terraform مخصص لأتمتة عمليات نشر وتكوينات Citrix ADC. باستخدام Terraform، يمكنك تخصيص ADCs لحالات الاستخدام المختلفة مثل Load Balancing وSSL وContent Switching وGSLB وWAF وما إلى ذلك.
تعرف على المزيد حول أتمتة Citrix ADC هنا
?لنشر Citrix ADC في Public Cloud - AWS وAzure، تحقق من البرامج النصية السحابية في github repo terraform-cloud-scripts.
✉️ في حالة وجود أي مشاكل أو مساعدة فورية، تواصل معنا على [email protected]!
remote-exec
للمهام لمرة واحدة Terraform عبارة عن بنية تحتية مفتوحة المصدر كأداة برمجية للتعليمات البرمجية توفر سير عمل متسق لواجهة سطر الأوامر (CLI) لإدارة مئات الخدمات السحابية. يقوم Terraform بتدوين واجهات برمجة التطبيقات السحابية في ملفات تكوين تعريفية. يمكن استخدام Terraform لنشر ADC وتكوينه . يوفر تكوين Citrix ADC من خلال Terraform فوائد متعددة.
citrixadc
- يحتوي على كافة مكتبة موارد ADC التي ندعمها من خلال Terraform. ستقوم مكتبات الموارد هذه باستدعاء NITRO APIS داخليًا لتكوين ADC الهدف.examples
- يحتوي على أمثلة للمستخدمين لاستخدام موارد ADC المتنوعة، على سبيل المثال، يحتوي المجلد simple_lb على Resources.tf الذي يوضح كيف يمكن استخدام مورد citrixadc_lbvserver لإنشاء خادم موازنة التحميل على ADC الهدف. وبالمثل، تحتوي المجلدات المختلفة على أمثلة حول تعريف الموارد المختلفة. من المتوقع من المستخدمين مراجعة هذه الأمثلة وتحديد تكوينات ADC المطلوبة.docs
- https://github.com/citrix/terraform-provider-citrixadc/tree/master/docs/resources - يحتوي على وثائق جميع تكوينات الموارد المدعومة من خلال Terraform. ارجع إلى هذا لفهم الحجج والقيم المختلفة التي يأخذها مورد معين. يحتوي provider.tf
على معلومات حول هدف ADC حيث تريد تطبيق التكوين.
provider "citrixadc" {
username = " ${ var . ns_user } " # You can optionally use `NS_LOGIN` environment variables.
password = " ${ var . ns_password } " # You can optionally use `NS_PASSWORD` environment variables.
endpoint = " http://10.71.136.250/ " # You can optionally use `NS_URL` environment variables.
}
يمكننا استخدام عنوان URL https
وقبول شهادة السلطة غير الموثوق بها على Citrix ADC عن طريق تحديد insecure_skip_verify = true
لاستخدام https
دون الحاجة إلى تعيين insecure_skip_verify = true
اتبع هذا الدليل حول كيفية استبدال شهادة TLS الافتراضية بشهادة من مرجع مصدق موثوق به.
يفضل استخدام https
. سيؤدي استخدام http
إلى إرسال جميع متغيرات تكوين الموفر بالإضافة إلى متغيرات الموارد بنص واضح. سيتمكن أي شخص يراقب تدفق بيانات HTTP من تحليل القيم الحساسة مثل كلمة مرور الموفر.
تجنب تخزين بيانات اعتماد الموفر في الحالة المحلية باستخدام واجهة خلفية تدعم التشفير. يوصى أيضًا بموفر hasicorp vault لتخزين البيانات الحساسة.
يمكنك أيضًا استخدام متغيرات البيئة كما هو مذكور في التعليقات أعلاه.
يتم دعم الحجج التالية.
username
- هذا هو اسم المستخدم للوصول إلى Citrix ADC. الإعدادات الافتراضية هي nsroot
ما لم يتم تعيين متغير البيئة NS_LOGIN
password
- هذه هي كلمة المرور للوصول إلى Citrix ADC. الإعدادات الافتراضية هي nsroot
ما لم يتم تعيين متغير البيئة NS_PASSWORD
endpoint
- (مطلوبة) نقطة نهاية Nitro API في النموذج http://<NS_IP>/
أو http://<NS_IP>:<PORT>/
. يمكن تحديده في متغير البيئة NS_URL
insecure_skip_verify
- (اختياري، صحيح/خطأ) ما إذا كان سيتم قبول الشهادة غير الموثوق بها على Citrix ADC عندما تكون نقطة نهاية Citrix ADC هي https
proxied_ns
- (اختياري، NSIP) الهدف Citrix ADC NSIP لمكالمات وكيل MAS. عند تحديد هذا الخيار، يجب أن يشير username
password
ونقطة endpoint
إلى وكيل MAS. يمكن توفير اسم المستخدم وكلمة المرور ونقطة النهاية في متغيرات البيئة NS_LOGIN
و NS_PASSWORD
و NS_URL
.
يحتوي Resources.tf على الحالة المطلوبة للموارد التي تريدها على الهدف ADC. على سبيل المثال، لإنشاء خادم موازنة التحميل في ADC، يحتوي Resource.tf التالي على التكوينات المطلوبة لـ lbvserver
citrixadc_lbvserver
resource "citrixadc_lbvserver" "foo" {
name = " sample_lb "
ipv46 = " 10.71.136.150 "
port = 443
servicetype = " SSL "
lbmethod = " ROUNDROBIN "
persistencetype = " COOKIEINSERT "
sslcertkey = " ${ citrixadc_sslcertkey . foo . certkey } "
sslprofile = " ns_default_ssl_profile_secure_frontend "
}
لفهم الوسائط والقيم المحتملة والوسائط الأخرى المتاحة لمورد معين، راجع وثائق NITRO API https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/ موازنة التحميل/lbvserver/lbvserver/ ووثائق Terraform مثل https://github.com/citrix/terraform-provider-citrixadc/blob/master/docs/resources/lbvserver.md .
لا تتم مزامنة
state
السمة مع الكائن البعيد. إذا كانت حالة lb vserver غير متزامنة مع تكوين terraform، فستحتاج إلى تشويه المورد يدويًا وتطبيق التكوين مرة أخرى.
تحتوي المجلدات الفرعية الموجودة في مجلد المثال على أمثلة لتكوينات ADC المختلفة من خلال terraform. ارجع إلى مثال simple_lb لفهم البنية والاستخدام أدناه.
resources.tf
كائنات تكوين NetScaler الفعلية التي سيتم إنشاؤها. سمات هذه الموارد إما مشفرة بشكل ثابت أو يتم البحث عنها من متغيرات الإدخال في terraform.tfvars
variables.tf
متغيرات الإدخال لتكوين terraform. يمكن أن يكون لهذه الإعدادات الافتراضيةprovider.tf
لتحديد اسم المستخدم وكلمة المرور ونقطة النهاية لـ NetScaler. وبدلاً من ذلك، يمكنك تعيين متغيرات البيئة NS_URL وNS_LOGIN وNS_PASSWORD.terraform.tfvars
على المدخلات المتغيرة المحددة في variables.tf
terraform.tfvars
و provider.tf
ليناسب نشر NetScaler الخاص بك.terraform plan
وتطبيق terraform apply
لتكوين NetScaler. قم بتعديل مجموعة الخدمات الخلفية واستخدم terraform plan
وتطبيق terraform apply
للتحقق من التغييرات
لن يقوم الموفر بتنفيذ تغييرات التكوين على المتجر المستمر الخاص بـ Citrix ADC. للقيام بذلك، قم بتشغيل البرنامج النصي Shell ns_commit.sh
:
export NS_URL=http:// < host > : < port > /
export NS_LOGIN=nsroot
export NS_PASSWORD=nsroot
./ns_commit.sh
للتأكد من حفظ التكوين في كل عملية تشغيل، يمكننا استخدام شيء مثل terraform apply && ns_commit.sh
يمكن العثور على قائمة حالات الاستخدام المدعومة في ADC هنا https://registry.terraform.io/providers/citrix/citrixadc/latest/docs.
remote-exec
للمهام لمرة واحدة يعد Terraform مفيدًا للحفاظ على الحالة المطلوبة لمجموعة من الموارد. وهو أقل فائدة لمهام مثل تكوين الشبكة التي لا تتغير. يشبه تكوين الشبكة استخدام مزود خدمة داخل Terraform. يعرض دليل examples/remote-exec
أمثلة لكيفية استخدام Terraform لـ ssh لإنجاز هذه المهام لمرة واحدة.
جرب برنامجنا العملي في المختبر لتجربة تجربة استخدام Terraform for ADC.
الخطوة الأولى لاستخدام Terraform for ADC هي تثبيت Terraform CLI. راجع وثائق Hashicorp لتثبيت Terraform CLI لبيئتك الخاصة.
راجع قسم التنقل في مستودعنا
اتبع المقالة حول بدء استخدام Terraform على NetScaler للحصول على التكوين الأول
لكتابة موارد Terraform لـ Citrix ADC، راجع الروابط التالية وثائق NITRO API أو وثائق تسجيل terraform.
إليك قالب Terraform الذي تتبعه لتكوين إلغاء تحميل SSL.
راجع قسم التغييرات الالتزام
تريد رؤية الحالة الحالية لكيانات ADC في Terraform
إذا كنت تريد تجاوز تكوين ADC بالتكوينات الموجودة في ملف مورد Terraform، فقم بذلك
قم بتحديث ملف حالة terraform الخاص بك ليعكس الحالة الحالية/الحقيقية لـ ADC
تعرف على كيفية استيراد تكوينات NetScaler الموجودة إلى موارد Terraform هنا
ارجع إلى البرامج النصية السحابية الخاصة بـ terraform الخاصة بـ AWS والفيديو التجريبي
سيتم تحديده لاحقًا
يتيح تكامل Consul-Terraform-Sync للمستخدمين إنشاء مجموعات الخدمة وتحديثها وحذفها تلقائيًا في Citrix ADC التي تتم مزامنتها مع إطار عمل Consul Terraform Sync.
قم بدمج ADC وتكوينه لتسهيل نشر اللون الأزرق والأخضر باستخدام Terraform. تحقق من الحل