Citrix ADC
プロバイダーCitrix は、Citrix ADC の導入と構成を自動化するカスタム Terraform プロバイダーを開発しました。 Terraform を使用すると、ロード バランシング、SSL、コンテンツ スイッチング、GSLB、WAF などのさまざまなユースケースに合わせて ADC をカスタム構成できます。
Citrix ADC オートメーションの詳細については、こちらをご覧ください。
?パブリッククラウド(AWSおよびAzure)にCitrix ADCを展開する場合は、githubリポジトリのterraform-cloud-scriptsでクラウドスクリプトを確認してください。
✉️ 緊急の問題やサポートが必要な場合は、[email protected] までご連絡ください。
remote-exec
を使用するTerraform は、数百ものクラウド サービスを管理するための一貫した CLI ワークフローを提供するコード ソフトウェア ツールとしてのオープンソース インフラストラクチャです。Terraform は、クラウド API を宣言型構成ファイルに体系化します。 Terraform を使用して ADC を展開および構成できます。 Terraform を介して Citrix ADC を構成すると、複数の利点が得られます。
citrixadc
フォルダー - Terraform を通じてサポートされるすべての ADC リソース ライブラリが含まれています。これらのリソース ライブラリは、内部で NITRO APIS を呼び出して、ターゲット ADC を構成します。examples
フォルダー - ユーザーがさまざまな ADC リソースを使用するためのサンプルが含まれています。たとえば、simple_lb フォルダーには、citrixadc_lbvserver リソースを使用してターゲット ADC 上にロード バランシング vserver を作成する方法を示す resource.tf が含まれています。同様に、さまざまなフォルダーに、さまざまなリソースの定義に関する例が含まれています。ユーザーはこれらの例を確認し、必要な 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.
}
https
URLを使用し、 insecure_skip_verify = true
と指定することで、Citrix ADCで信頼できない認証局の証明書を受け入れることができます。
insecure_skip_verify = true
を設定せずにhttps
使用するには、このガイドに従ってデフォルトの TLS 証明書を信頼できる証明機関からの証明書に置き換える方法を説明します。
https
の使用が推奨されます。 http
使用すると、すべてのプロバイダー構成変数とリソース変数がクリアテキストで送信されます。 HTTP データ ストリームを観察している人は誰でも、プロバイダーのパスワードなどの機密性の高い値を解析できます。
暗号化をサポートするバックエンドを使用して、プロバイダーの資格情報をローカル状態に保存しないようにします。 hasicorp ボールト プロバイダーは、機密データの保存にも推奨されます。
上記のコメントで述べたように、環境変数を使用することもできます。
次の引数がサポートされています。
username
- これは、Citrix ADC にアクセスするためのユーザー名です。環境変数NS_LOGIN
が設定されていない場合、デフォルトはnsroot
です。password
- これはCitrix ADCにアクセスするためのパスワードです。環境変数NS_PASSWORD
が設定されていない限り、デフォルトはnsroot
になります。endpoint
- (必須) http://<NS_IP>/
またはhttp://<NS_IP>:<PORT>/
形式の Nitro API エンドポイント。環境変数NS_URL
で指定可能insecure_skip_verify
- (オプション、true/false) Citrix ADC エンドポイントがhttps
場合に、Citrix ADC で信頼できない証明書を受け入れるかどうかproxied_ns
- (オプション、NSIP) MAS プロキシ呼び出しのターゲット Citrix ADC NSIP。このオプションが定義されている場合、 username
、 password
、およびendpoint
MAS プロキシを参照する必要があります。ユーザー名、パスワード、およびエンドポイントは、環境変数NS_LOGIN
、 NS_PASSWORD
、およびNS_URL
で指定できます。
Resources.tf には、ターゲット ADC 上で必要なリソースの望ましい状態が含まれています。たとえば、ADC でロード バランシング vserver を作成する場合、次の 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/ を参照してください。 load-balancing/lbvserver/lbvserver/ および Terraform ドキュメントなどhttps://github.com/citrix/terraform-provider-citrixadc/blob/master/docs/resources/lbvserver.md 。
属性の
state
はリモート オブジェクトと同期されていません。 lb vserver の状態が terraform 構成と同期していない場合は、リソースを手動で汚染し、構成を再度適用する必要があります。
サンプル フォルダー内のサブフォルダーには、terraform によるさまざまな ADC 構成のサンプルが含まれています。以下の構造と使用法を理解するには、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
変更します。terraform plan
とterraform apply
を使用して NetScaler を構成します。 バックエンド サービスのセットを変更し、 terraform plan
とterraform apply
を使用して変更を確認します。
プロバイダーは、構成変更をCitrix ADCの永続ストアにコミットしません。これを行うには、シェル スクリプト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 を使用してこれらの 1 回限りのタスクを実行する方法の例が示されています。
ハンズオン ラボを試して、ADC に Terraform を使用する様子を体験してください。
ADC に Terraform を使用するための最初のステップは、Terraform CLI をインストールすることです。独自の環境に Terraform CLI をインストールするには、Hashicorp のドキュメントを参照してください。
「リポジトリのナビゲート」セクションを参照してください。
NetScaler での Terraform の概要に関する記事に従って、最初の構成を取得します。
Citrix ADC の Terraform リソースを作成するには、次のリンクの NITRO API ドキュメントまたは Terraform レジストリ ドキュメントを参照してください。
これは、SSL オフロードを構成するために使用する Terraform テンプレートです。
「変更のコミット」セクションを参照してください。
Terraform の ADC エンティティの現在の状態を確認したい
Terraform リソース ファイルにある構成で ADC 構成をオーバーライドする場合は、次のようにします。
ADC の現在/実際の状態を反映するように terraform 状態ファイルを更新します。
既存の NetScaler 構成を Terraform リソースにインポートする方法については、こちらをご覧ください。
AWS 用の Terraform クラウド スクリプトとデモ ビデオを参照してください。
未定
Consul-Terraform-Sync の統合により、ユーザーは Consul Terraform Sync フレームワークと同期されるサービス グループを Citrix ADC で自動的に作成、更新、削除できます。
ADC を統合し、Terraform を使用して Blue-Green 導入を容易にするように構成します。ソリューションを確認してください。