Citrix ADC
Citrix telah mengembangkan penyedia Terraform khusus untuk mengotomatiskan penerapan dan konfigurasi Citrix ADC. Dengan menggunakan Terraform, Anda dapat mengonfigurasi ADC secara khusus untuk berbagai kasus penggunaan seperti Load Balancing, SSL, Content Switching, GSLB, WAF, dll.
Pelajari lebih lanjut tentang Otomatisasi Citrix ADC di sini
?Untuk menerapkan Citrix ADC di Public Cloud - AWS dan Azure, lihat skrip cloud di github repo terraform-cloud-scripts.
✉️ Untuk masalah atau bantuan mendesak apa pun, hubungi kami di [email protected]!
remote-exec
untuk tugas satu kali Terraform adalah infrastruktur sumber terbuka sebagai alat perangkat lunak kode yang menyediakan alur kerja CLI yang konsisten untuk mengelola ratusan layanan cloud. Terraform mengkodifikasi API cloud ke dalam file konfigurasi deklaratif. Terraform dapat digunakan untuk menyebarkan dan mengkonfigurasi ADC. Mengonfigurasi Citrix ADC melalui Terraform memberikan banyak manfaat.
citrixadc
- Berisi semua perpustakaan sumber daya ADC yang kami dukung melalui Terraform. Pustaka sumber daya ini secara internal akan memanggil NITRO APIS untuk mengonfigurasi ADC target.examples
- Berisi contoh bagi pengguna untuk menggunakan berbagai sumber daya ADC misalnya folder simple_lb berisi resources.tf yang menggambarkan bagaimana sumber daya citrixadc_lbvserver dapat digunakan untuk membuat vserver Load Balancing pada ADC target. Demikian pula, folder yang berbeda berisi contoh cara menentukan sumber daya yang berbeda. Pengguna diharapkan meninjau contoh-contoh ini dan menentukan konfigurasi ADC yang diinginkan.docs
- https://github.com/citrix/terraform-provider-citrixadc/tree/master/docs/resources - berisi dokumentasi semua konfigurasi sumber daya yang didukung melalui Terraform. Lihat ini untuk memahami berbagai argumen, nilai yang diambil oleh sumber daya tertentu. provider.tf
berisi informasi tentang ADC target tempat Anda ingin menerapkan konfigurasi.
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.
}
Kita dapat menggunakan URL https
dan menerima sertifikat otoritas tidak tepercaya di Citrix ADC dengan menentukan insecure_skip_verify = true
Untuk menggunakan https
tanpa perlu menyetel insecure_skip_verify = true
ikuti panduan ini tentang cara mengganti sertifikat TLS default dengan sertifikat dari Certifcate Authority yang tepercaya.
Penggunaan https
lebih disukai. Menggunakan http
akan mengakibatkan semua variabel konfigurasi penyedia serta variabel sumber daya dikirimkan dalam bentuk teks jelas. Siapa pun yang mengamati aliran data HTTP akan dapat mengurai nilai-nilai sensitif seperti kata sandi penyedia.
Hindari menyimpan kredensial penyedia di negara bagian lokal dengan menggunakan backend yang mendukung enkripsi. Penyedia brankas hasicorp juga direkomendasikan untuk menyimpan data sensitif.
Anda juga dapat menggunakan variabel lingkungan seperti yang disebutkan dalam komentar di atas.
Argumen berikut ini didukung.
username
- Ini adalah nama pengguna untuk mengakses Citrix ADC. Defaultnya adalah nsroot
kecuali variabel lingkungan NS_LOGIN
telah disetelpassword
- Ini adalah kata sandi untuk mengakses Citrix ADC. Defaultnya adalah nsroot
kecuali variabel lingkungan NS_PASSWORD
telah disetelendpoint
- (Wajib) Titik akhir Nitro API dalam bentuk http://<NS_IP>/
atau http://<NS_IP>:<PORT>/
. Dapat ditentukan dalam variabel lingkungan NS_URL
insecure_skip_verify
- (Opsional, benar/salah) Apakah akan menerima sertifikat tidak tepercaya di Citrix ADC ketika titik akhir Citrix ADC adalah https
proxied_ns
- (Opsional, NSIP) Target Citrix ADC NSIP untuk panggilan proksi MAS. Jika opsi ini ditentukan, username
, password
, dan endpoint
harus merujuk ke proksi MAS. Nama pengguna, kata sandi, dan titik akhir dapat diberikan dalam variabel lingkungan NS_LOGIN
, NS_PASSWORD
dan NS_URL
.
Resources.tf berisi status sumber daya yang Anda inginkan pada ADC target. Misalnya Untuk membuat vserver Load Balancing di ADC resource.tf berikut berisi konfigurasi lbvserver yang diinginkan
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 "
}
Untuk memahami argumen, nilai yang mungkin, dan argumen lain yang tersedia untuk sumber daya tertentu, lihat dokumentasi NITRO API https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/ load-balancing/lbvserver/lbvserver/ dan dokumentasi Terraform seperti https://github.com/citrix/terraform-provider-citrixadc/blob/master/docs/resources/lbvserver.md.
state
atribut tidak disinkronkan dengan objek jarak jauh. Jika status lb vserver tidak sinkron dengan konfigurasi terraform, Anda perlu mencemari sumber daya secara manual dan menerapkan konfigurasi lagi.
Subfolder di folder contoh berisi contoh konfigurasi ADC yang berbeda melalui terraform. Lihat contoh simple_lb untuk memahami struktur dan penggunaan di bawah ini.
resources.tf
menjelaskan objek konfigurasi NetScaler sebenarnya yang akan dibuat. Atribut sumber daya ini dikodekan secara permanen atau dicari dari variabel masukan di terraform.tfvars
variables.tf
menjelaskan variabel masukan ke konfigurasi terraform. Ini dapat memiliki defaultprovider.tf
digunakan untuk menentukan nama pengguna, kata sandi, dan titik akhir NetScaler. Alternatifnya, Anda dapat mengatur variabel lingkungan NS_URL, NS_LOGIN dan NS_PASSWORD.terraform.tfvars
memiliki input variabel yang ditentukan di variables.tf
terraform.tfvars
dan provider.tf
agar sesuai dengan penerapan NetScaler Anda.terraform plan
dan terraform apply
untuk mengonfigurasi NetScaler. Ubah kumpulan layanan backend dan gunakan terraform plan
dan terraform apply
untuk memverifikasi perubahan
Penyedia tidak akan melakukan perubahan konfigurasi ke penyimpanan persisten Citrix ADC. Untuk melakukan ini, jalankan skrip shell ns_commit.sh
:
export NS_URL=http:// < host > : < port > /
export NS_LOGIN=nsroot
export NS_PASSWORD=nsroot
./ns_commit.sh
Untuk memastikan bahwa konfigurasi disimpan setiap kali dijalankan, kita dapat menggunakan sesuatu seperti terraform apply && ns_commit.sh
Daftar Kasus Penggunaan yang didukung di ADC dapat ditemukan di sini https://registry.terraform.io/providers/citrix/citrixadc/latest/docs .
remote-exec
untuk tugas satu kali Terraform berguna untuk mempertahankan keadaan yang diinginkan untuk sekumpulan sumber daya. Ini kurang berguna untuk tugas-tugas seperti konfigurasi jaringan yang tidak berubah. Konfigurasi jaringan seperti menggunakan penyedia di dalam Terraform. Direktori examples/remote-exec
menunjukkan contoh bagaimana Terraform dapat menggunakan ssh untuk menyelesaikan tugas satu kali ini.
Cobalah Lab Praktis kami untuk merasakan bagaimana rasanya menggunakan Terraform untuk ADC.
Langkah pertama dalam menggunakan Terraform untuk ADC adalah menginstal Terraform CLI. Lihat dokumentasi Hashicorp untuk menginstal Terraform CLI untuk lingkungan Anda sendiri.
Lihat bagian Menavigasi repositori kami
Ikuti artikel tentang Memulai Terraform di NetScaler untuk mendapatkan konfigurasi pertama Anda
Untuk menulis sumber daya Terraform untuk Citrix ADC, lihat tautan berikut dokumentasi NITRO API atau dokumentasi registri terraform.
Berikut adalah Template Terraform yang Anda ikuti untuk mengkonfigurasi SSL Offloading.
Lihat bagian melakukan perubahan
Anda ingin melihat status entitas ADC saat ini di Terraform
Jika Anda ingin mengganti konfigurasi ADC dengan konfigurasi yang Anda miliki di file sumber daya Terraform
Perbarui file status terraform Anda untuk mencerminkan status ADC saat ini/sebenarnya
Pelajari cara mengimpor konfigurasi NetScaler yang ada ke sumber daya Terraform di sini
Lihat skrip cloud terraform kami untuk AWS dan video demo
TBD
Integrasi Consul-Terraform-Sync kami memungkinkan pengguna untuk secara otomatis membuat, memperbarui dan menghapus grup Layanan di Citrix ADC yang disinkronkan dengan kerangka Consul Terraform Sync.
Integrasikan ADC dan konfigurasikan untuk memfasilitasi penerapan Blue-Green menggunakan Terraform. Lihat solusinya