StyleBookの設定
ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

DNS ドメイン名を使用した GSLB 設定のデプロイ

NetScaler Consoleの新しいRBAC拡張機能により、権限のあるアプリケーション所有者のみがNetScaler Consoleで独自のDNSドメインを作成および管理できるようになります。これで、特定のStyleBookを使用して、アプリ所有者が所有するDNSドメインからGSLB設定を作成する権限を与えることができます。選択したDNSドメイン名がユーザーによって所有されている場合は、NetScaler ConsoleアプリケーションダッシュボードでGSLB StyleBooksを使用してGSLB構成を作成するときに使用できます。 NetScalerコンソールには、GSLB構成を構成するための2つのワークフローがあります。

  1. 管理者のためのワークフロー。NetScalerコンソールでRBAC環境をセットアップします。つまり、GSLB StyleBook を作成してインポートするには、ユーザーグループ、ポリシー、ロールを作成し、ユーザーをグループに割り当てる必要があります。管理者として、このワークフローを実行する必要があります。

  2. アプリケーション所有者のためのワークフロー。アプリケーション所有者は、所有するドメイン名を使用して GSLB 設定を作成する必要があります。

次のフローチャートは、両方のワークフローを示しています。

GSLB ワークフローの設定

管理者のワークフロー

管理者がNetScaler ConsoleでRBAC環境を作成するワークフローは、次の手順で構成されています。

まず、StyleBookを作成して、NetScaler ADCインスタンスにGSLB構成を展開します。このドキュメントには、独自のStyleBook- Build Your StyleBookの作成に役立つサンプルYAMLコンテンツが用意されています

カスタムStyleBookを作成する方法について詳しくは、「 カスタムStyleBookの作成と使用」を参照してください。

注:

NetScaler Consoleは、StyleBooksの「許可された動的値」という新しい構成をサポートしています。この構成を使用すると、ユーザーはNetScalerコンソールに表示されているDNSドメイン値を一覧表示して選択し、NetScalerコンソールGUIのStyleBookに「ドメイン名」パラメーターを自動的に入力できます。

参考のために、「ドメイン名」パラメータセクションの例を提供しています。

ここで使用される「ドメイン名」パラメータは単なる例です。このパラメータは、カスタムStyleBookで異なる場合があります。

- name: domain-name label: DNS Domain Name description: GSLB DNS Domain Name type: string required: true allowed-dynamic-values: source: local resource-type: dns_domain_entry

注:

現在、NetScaler Consoleでは、「許可された動的値」構成はデフォルトのどのStyleBook でも使用されていません。デフォルトのGSLB StyleBookを使用して、新しいカスタムGSLB StyleBookを作成します。ドメイン名のパラメーターの部分は、上記のサンプルに置き換えます。新しいStyleBookを作成するには、任意のテキストエディタを使用できます。

  1. 管理者としてNetScalerコンソールにログオンします。

  2. アプリケーション 」>「 構成 」>「 StyleBook」に移動します。

  3. 新しいStyleBookのインポート」をクリックし、新しい GSLB StyleBook を NetScaler コンソールにアップロードします。

    StyleBookのインポート

    NetScaler ConsoleにStyleBook をインポートする方法について詳しくは、「カスタムStyleBook を使用する」を参照してください。

  4. [ システム ] > [ ユーザー ] > [ ポリシー ] に移動し、[ 追加 ] をクリックして、アプリケーション所有者のアクセスポリシーを設定します。

    Citrixでは、アプリケーション所有者が設定したRBACルールを回避しないように、アクセスポリシーを作成することをお勧めします。

  5. ポリシーの名前と簡単な説明を入力します。[Permissions] セクションで、次のビュー編集権限が必須にチェックされていることを確認します。

    1. アプリケーション > ダッシュボード

    2. アプリケーション > 構成

    3. インフラストラクチャー > インスタンス

    4. インフラストラクチャ > ライセンス管理

    5. 設定 > ドメイン名

    必要に応じて他の権限を指定し、[ Create] をクリックします。

    ダッシュボード、設定、インスタンス、ライセンス管理、DNS ドメイン名のアクセスポリシーの作成

  6. [ システム ] > [ ユーザー ] > [ ロール ] に移動し、ロールを作成し、前の手順で作成したポリシーを割り当てます。

  7. ロールの名前を入力し、簡単な説明を入力します。[ポリシー] セクションで、[ appownereXampleAccessPolicy] を選択します。

    アプリ所有者ロールの作成

  8. [ システム ] > [ ユーザー ] > [ グループ ] に移動し、グループを作成し、前の手順で作成したロールを関連付けます。

  9. 名前と説明を入力し、[ロール] セクションで [ AppownereXampleRole] を選択します。

    システムグループの作成

  10. [次へ] をクリックします。

  11. 認証設定 ]タブで、アプリケーション所有者がアクセスできるNetScaler ADCインスタンスと、新しいGSLB StyleBookを選択します。

    認証設定

    この手順を繰り返して、組織内で必要な数のユーザーグループを作成します。[Create Group] をクリックします。

  12. システムユーザを作成し、そのユーザをユーザグループに割り当てます。このドキュメントは、ローカルに作成されたユーザーのみを参照します。NetScaler ConsoleがLDAPなどの外部認証を使用するように設定されている場合は、ユーザーグループにユーザーを作成する必要はありません。グループへのユーザーマッピングは、外部認証ディレクトリから取得されます。

    1. [ システム ] > [ ユーザー] > [ **ユーザー**] に移動します。

    2. システムユーザーのユーザー名とパスワードを入力し、ユーザーをグループに割り当てます。

    ユーザーの作成

    注:

    ステップ 12 はオプションであり、LDAP などの外部認証を使用する場合は必須ではありません。

管理ワークフロー用のNetScaler コンソール REST API

NetScaler コンソールにログオンするためのREST API

URL: http: //<MAS_IP>/nitro/v2/config/login HTTPMETHOD: POST Body Payload: { "login": { "username": "<USER_NAME>", "password": "<PASSWORD>", "session_timeout": 1800 } } The response results in a session cookie header, that can be sent with the rest of the API requests below. Set-Cookie: SESSID=##ED31F7C886E248CCDCA8F0E0AD2AA511ACCC5F46C48D6D2BCAA719A9DE62;path=/;secure;HttpOnly

REST API を使用してアクセスポリシーを作成する

URL: https://<MAS_IP>/nitro/v2/config/rba_policy HTTP METHOD: POST { "rba_policy": { "name": " AppOwnerAccessPolicy", "description": " ExampleCompany AppOwner Access Policy", "tenant_id": "7c12ec97-1472-4096-97e7-a5acb453cc5c", "statement": [ { "access_type": true, "resource_type": "application", "operation_name": "add", "dependent_resources": "mail_profile,slack_profile,smtp_server,app_category" }, { "access_type": true, "resource_type": "application", "operation_name": "get", "dependent_resources": "download,smtp_server,ns_vserver_license,app_category,app_summary,app_health_dashboard_details,haproxy_frontend,haproxy_backend,haproxy_frontend_stats" }, { "access_type": true, "resource_type": "si_app_unit", "operation_name": "get", "dependent_resources": "download,smtp_server,app_summary,si_app_summary,si_device,security_app_dashboard_details,si_geo_location,si_safety_app_firewall,si_safety_overview,si_safety_security_check,si_safety_system_security,si_safety_signature" }, { "access_type": true, "resource_type": "stylebooks", "operation_name": "get", "dependent_resources": "download,smtp_server,ns_vserver_license" }, { "access_type": true, "resource_type": "stylebooks", "operation_name": "add", "dependent_resources": "mail_profile,slack_profile,smtp_server" }, { "access_type": true, "resource_type": "configpacks", "operation_name": "get", "dependent_resources": "download,smtp_server,stylebooks,ns_vserver_license" }, { "access_type": true, "resource_type": "configpacks", "operation_name": "add", "dependent_resources": "mail_profile,slack_profile,smtp_server" }, { "access_type": true, "resource_type": "stylebooks_system_settings", "operation_name": "get", "dependent_resources": "download,smtp_server" }, { "access_type": true, "resource_type": "stylebooks_system_settings", "operation_name": "add", "dependent_resources": "mail_profile,slack_profile,smtp_server" }, { "access_type": true, "resource_type": "ns_crvserver", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,perf_cache_redirection_report,poll_activity_status,ns_emon_poll_policy,lb_export_report" }, { "access_type": true, "resource_type": "ns_crvserver", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report" }, { "access_type": true, "resource_type": "haproxy_frontend", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,haproxy_backend,haproxy_server" }, { "access_type": true, "resource_type": "haproxy_frontend", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server" }, { "access_type": true, "resource_type": "ns_server", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,ns_emon_poll_policy,poll_activity_status,ns_server,lb_export_report" }, { "access_type": true, "resource_type": "ns_server", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,ns_emon_poll_policy,poll_activity_status,lb_export_report" }, { "access_type": true, "resource_type": "ns_lbvserver", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,perf_lb_vserver_report,ns_emon_poll_policy,poll_activity_status,lb_export_report" }, { "access_type": true, "resource_type": "ns_lbvserver", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,ns_emon_poll_policy,poll_activity_status,lb_export_report" }, { "access_type": true, "resource_type": "ns_service", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,ns_emon_poll_policy,poll_activity_status,ns_visualizer_lb_bindings,lb_export_report" }, { "access_type": true, "resource_type": "ns_service", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,ns_emon_poll_policy,poll_activity_status,ns_visualizer_lb_bindings,lb_export_report" }, { "access_type": true, "resource_type": "ns_servicegroup", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,ns_emon_poll_policy,poll_activity_status,ns_servicegroupmember_binding,ns_visualizer_lb_bindings,lb_export_report" }, { "access_type": true, "resource_type": "ns_servicegroup", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,ns_emon_poll_policy,poll_activity_status,ns_servicegroupmember_binding,ns_visualizer_lb_bindings,lb_export_report" }, { "access_type": true, "resource_type": "ns_authenticationvserver", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,perf_authentication_report,poll_activity_status,ns_emon_poll_policy,lb_export_report" }, { "access_type": true, "resource_type": "ns_authenticationvserver", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report" }, { "access_type": true, "resource_type": "syslog_messages", "operation_name": "get", "dependent_resources": "download,smtp_server" }, { "access_type": true, "resource_type": "ns_emon_poll_policy", "operation_name": "get", "dependent_resources": "download,poll_activity_status,smtp_server" }, { "access_type": true, "resource_type": "ns_emon_poll_policy", "operation_name": "add", "dependent_resources": "download,poll_activity_status,mail_profile,slack_profile,smtp_server" }, { "access_type": true, "resource_type": "ns_visualizer_gslb_bindings", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,poll_activity_status,ns_emon_poll_policy,ns_gslbvserver_domain,lb_export_report" }, { "access_type": true, "resource_type": "ns_visualizer_gslb_bindings", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,poll_activity_status,ns_emon_poll_policy,ns_gslbvserver_domain,lb_export_report" }, { "access_type": true, "resource_type": "ns_gslbservice", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report" }, { "access_type": true, "resource_type": "ns_gslbservice", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report" }, { "access_type": true, "resource_type": "ns_gslbvserver", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,perf_global_server_load_balancing_report,poll_activity_status,ns_emon_poll_policy,lb_export_report" }, { "access_type": true, "resource_type": "ns_gslbvserver", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report" }, { "access_type": true, "resource_type": "ns_vpnvserver", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report" }, { "access_type": true, "resource_type": "ns_vpnvserver", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,perf_ssl_vpn_report,poll_activity_status,ns_emon_poll_policy,lb_export_report" }, { "access_type": true, "resource_type": "ns_csvserver", "operation_name": "get", "dependent_resources": "download,DeviceAPIProxy,smtp_server,perf_content_switching_report,ns_emon_poll_policy,poll_activity_status,ns_visualizer_cs_bindings,lb_export_report" }, { "access_type": true, "resource_type": "ns_csvserver", "operation_name": "add", "dependent_resources": "DeviceAPIProxy,mail_profile,slack_profile,smtp_server,ns_emon_poll_policy,poll_activity_status,ns_visualizer_cs_bindings,lb_export_report" }, { "access_type": true, "resource_type": "dns_domain_entry", "operation_name": "get", "dependent_resources": "" }, { "access_type": true, "resource_type": "dns_domain_entry", "operation_name": "add", "dependent_resources": "" }, { "access_type": true, "resource_type": "devicewise_detail_summary", "operation_name": "get", "dependent_resources": "download,mps_user_heatmap,ns_event,mps_agent,active_event,smtp_server,mps_datacenter,event_severity_report,event_device_report,ns_conf,device_event_summary" }, { "access_type": true, "resource_type": "devicewise_detail_summary", "operation_name": "add", "dependent_resources": "mail_profile,slack_profile,smtp_server" }, { "access_type": true, "resource_type": "cbwanopt", "operation_name": "get", "dependent_resources": "download,device_backup,traceroute,inventory,inventory_status,ping,mps_datacenter,cbwanopt_device_profile,sdwanvw_device_profile,sdwanvw_snmp_config,sdwanvw_appflowconfig,smtp_server,cbwanopt_snmp_config,cbwanopt_appflowconfig,sdwanvw,tag" }, { "access_type": true, "resource_type": "cbwanopt", "operation_name": "add", "dependent_resources": "inventory,managed_device,device_backup,upload,cbwanopt_device_profile,mps_datacenter,mail_profile,slack_profile,smtp_server,sdwanvw_device_profile,sdwanvw_snmp_config,sdwanvw_appflowconfig,cbwanopt_snmp_config,cbwanopt_appflowconfig,sdwanvw,tag" }, { "access_type": true, "resource_type": "device_login", "operation_name": "get", "dependent_resources": "" }, { "access_type": true, "resource_type": "ns", "operation_name": "get", "dependent_resources": "download,ns_config_replicate,ns_conf,ns_ns_runningconfig,ns_ns_savedconfig,active_event,device_backup,traceroute,inventory,inventory_status,ping,ns_device_profile,nssdx_device_profile,sdx_snmp_config,sdx_syslog_config,smtp_server,ns_cluster,ns_snmp_config,ns_syslog_config,ns_l7_latency_config,ica_l7_latency_update,af_vserver_policy,ns_vserver_appflow_config,mps_datacenter,ns_appflow_param_config,ns_ns_license,ns_ns_mode,ns_network_interface,advanced_analytics_config,tag" }, { "access_type": true, "resource_type": "ns", "operation_name": "add", "dependent_resources": "inventory,ns_l7_latency_config,ica_l7_latency_update,af_vserver_policy,ns_config_replicate,managed_device,device_backup,upload,ns_device_profile,nssdx_device_profile,mps_datacenter,sdx_snmp_config,sdx_syslog_config,mail_profile,slack_profile,smtp_server,ns_cluster,ns_snmp_config,ns_syslog_config,ns_vserver_appflow_config,ns_appflow_param_config,advanced_analytics_config,tag" }, { "access_type": true, "resource_type": "haproxyhost", "operation_name": "get", "dependent_resources": "download,traceroute,inventory,inventory_status,ping,mps_datacenter,smtp_server,haproxy_device_profile,device_backup,tag" }, { "access_type": true, "resource_type": "haproxyhost", "operation_name": "add", "dependent_resources": "inventory,managed_device,mail_profile,slack_profile,smtp_server,mps_datacenter,haproxy_device_profile,haproxy,device_backup,tag" }, { "access_type": true, "resource_type": "docker_host", "operation_name": "add", "dependent_resources": "inventory,ns_snmp_config,managed_device,ns,upload,mail_profile,slack_profile,smtp_server,mps_datacenter,ns_device_profile,docker_nscpx_image" }, { "access_type": true, "resource_type": "docker_host", "operation_name": "get", "dependent_resources": "download,ns_snmp_config,ns_conf,ns_ns_runningconfig,ns_ns_savedconfig,smtp_server,mps_datacenter,ns_device_profile,traceroute,inventory,inventory_status,ping,active_event,ns_ns_license,ns_ns_mode,ns_network_interface" }, { "access_type": true, "resource_type": "perf_reports", "operation_name": "add", "dependent_resources": "mail_profile,slack_profile,smtp_server,perf_custom_dashboard" }, { "access_type": true, "resource_type": "perf_reports", "operation_name": "get", "dependent_resources": "download,smtp_server,perf_report_counters,perf_res_util_report,perf_http_req_tcp_conn_report,perf_lb_ssl_traffic_report,perf_ip_bytes_rxtx_report,perf_ip_pkt_rxtx_report,perf_icmp_pkt_rxtx_report,perf_icmp_bytes_rxtx_report,perf_icmpv6_pkt_rxtx_report,perf_icmpv6_bytes_rxtx_report,perf_ipv6_bytes_rxtx_report,perf_ipv6_pkt_rxtx_report,perf_udp_bytes_rxtx_report,perf_udp_packets_rxtx_report,perf_cmp_bytes_rxtx_report,perf_cmp_tcp_bytes_rxtx_report,perf_cmp_tcp_ratiosaving_report,perf_cmp_decmp_bytes_rxtx_report,perf_cmp_decmp_ratiosaving_report,perf_tcp_server_conn_report,perf_tcp_surgelen_spareconn_report,perf_http_bytes_rx_report,perf_http_gets_posts_report,perf_ssl_transactions_hits_report,perf_ssl_client_auth_report,perf_ssl_rsa_dhkey_report,perf_ssl_frontend_ciphers_report,perf_ssl_backend_ciphers_report,perf_wsdevice_cpu_utilization_report,perf_wsdevice_send_compression_ratio_report,perf_wsdevice_connected_plugins_report,perf_wsdevice_data_reduction_report,perf_wsdevice_link_utilization_report,perf_wsserviceclassstatstable_pass_through_connection_report,perf_wsserviceclassstatstable_service_class_report,perf_wsserviceclassstatstable_acceleration_report,perf_wslinkstatstable_throughput_report,perf_wslinkstatstable_packet_loss_report,perf_wsappstatstable_application_report,perf_wsqosstatstable_qos_report,perf_ssl_cpu_keyexchange_report,perf_ssl_be_rsa_dhkey_report,perf_custom_dashboard,perf_ns_throughput_report,perf_network_interface_report" }, { "access_type": true, "resource_type": "perf_threshold", "operation_name": "get", "dependent_resources": "download,perf_reports,perf_report_counters,smtp_server,sms_server,sms_profile" }, { "access_type": true, "resource_type": "perf_threshold", "operation_name": "add", "dependent_resources": "mail_profile,slack_profile,smtp_server,sms_server,sms_profile" }, { "access_type": true, "resource_type": "perf_poll_config", "operation_name": "add", "dependent_resources": "mail_profile,slack_profile,smtp_server" }, { "access_type": true, "resource_type": "perf_poll_config", "operation_name": "get", "dependent_resources": "smtp_server,download" }, { "access_type": true, "resource_type": "license_server_info", "operation_name": "get", "dependent_resources": "sms_server,license_proxy_server,jazz_license,download,sms_profile,smtp_server,user_managed_tp_vserver,managed_vserver,user_managed_vserver,haproxy_frontend,haproxy_backend,license_file,device_license_info,license_info,ns_authenticationvserver,ns_gslbvserver,ns_vpnvserver,ns_csvserver,ns_crvserver,ns_lbvserver,autoselection_preference,license_threshold,license_expiry_info" }, { "access_type": true, "resource_type": "license_server_info", "operation_name": "add", "dependent_resources": "sms_server,license_proxy_server,jazz_license,sms_profile,mail_profile,slack_profile,smtp_server,user_managed_tp_vserver,managed_vserver,upload,license_file,license_info,license_threshold,mas_license,user_managed_vserver,autoselection_preference,license_expiry_info" } ], "ui": [ { "access_type": true, "name": "ApplicationsDashboard", "display_name": "Dashboard" }, { "access_type": true, "name": "SecurityDashboard", "display_name": "App Security Dashboard" }, { "access_type": true, "name": "Stylebooks", "display_name": "StyleBooks" }, { "access_type": true, "name": "Stylebooks", "display_name": "Configpacks" }, { "access_type": true, "name": "StylebooksSettings", "display_name": "Settings" }, { "access_type": true, "name": "CacheRedirection", "display_name": "Cache Redirection" }, { "access_type": true, "name": "Servers", "display_name": "Servers" }, { "access_type": true, "name": "VirtualServers", "display_name": "Virtual Servers" }, { "access_type": true, "name": "Services", "display_name": "Services" }, { "access_type": true, "name": "ServiceGroups", "display_name": "Service Groups" }, { "access_type": true, "name": "Authentication", "display_name": "Authentication" }, { "access_type": true, "name": "MonitoringAuditing", "display_name": "Auditing" }, { "access_type": true, "name": "MonitoringSettings", "display_name": "Settings" }, { "access_type": true, "name": "GSLBDomains", "display_name": "Domains" }, { "access_type": true, "name": "GSLBServices", "display_name": "Services" }, { "access_type": true, "name": "GSLBVirtualServer", "display_name": "Virtual Server" }, { "access_type": true, "name": "NetScalerGateway", "display_name": "NetScaler Gateway" }, { "access_type": true, "name": "ContentSwitching", "display_name": "Content Switching" }, { "access_type": true, "name": "DNSDomainNames", "display_name": "DNS Domain Names" }, { "access_type": true, "name": "NetworkDashboard", "display_name": "Instances Dashboard" }, { "access_type": true, "name": "NetScalerSDWANWOInstances", "display_name": "NetScaler SD-WAN" }, { "access_type": true, "name": "InstanceOperations", "display_name": "Instance Operations" }, { "access_type": true, "name": "NetScalerInstances", "display_name": "NetScaler ADC" }, { "access_type": true, "name": "NetScalerCPXDockerHost", "display_name": "Docker Hosts" }, { "access_type": true, "name": "Reports", "display_name": "Reports" }, { "access_type": true, "name": "Thresholds", "display_name": "Thresholds" }, { "access_type": true, "name": "ReportingSettings", "display_name": "Settings" }, { "access_type": true, "name": "Licenses", "display_name": "License Management" } ] } }

REST API を使用してアクセスロールを作成する

URL: https://<MAS_IP>/nitro/v2/config/rba_role HTTPMETHOD: POST Payload: { "rba_role": { "name": "AppOwnerRole", "description": "ExampleCompany App Owner Role", "policies": [ "AppOwnerAccessPolicy" ] }

新しいGSLB StyleBookをアップロードするためのREST API

URL: https://<MAS_IP>/stylebook/nitro/v2/config/stylebooks HTTPMETHOD: POST Payload: { "stylebook": { "file_name": "my-own-gslb.yaml", "source": "bmFtZTogZ3NsYi1kbnMtZG9tYW...aXRvcm5hbWU=", "encoding": "base64" } }

注:

StyleBookの名前は、システムによって異なる場合があります。

REST API を使用してグループを作成し、選択したインスタンスとStyleBookを割り当てる

URL: https://<MAS_IP>/nitro/v2/config/mpsgroup HTTPMETHOD: POST Payload: { "mpsgroup": { "id": "", "name": "AppOwnerGroup1", "description": "ExampleCompany App Owner Group", "roles": [ "AppOwnerRole" ], "enable_session_timeout": false, "assign_all_devices": false, "ass ign_all_apps": false, "application_names_with_regex": [ ], "standalone_instances_id": [ "72c178da-47df-4426-9acc-cd6316f92506", "c948061e-6240-4062-931c-f6988ef36e3b" ], "application_list": [ ], "permission": "none", "application_names": [ ], "authscope_props": [ { "propname": "configuration_template_id", "propvalues": [ "NONE" ] }, { "propname": "dns_domain_entry_id", "propvalues": [ "cf6631e5-2f56-4bb1-b0a5-90fabfc0e3e2", "b268905c-522d-47e3-a2ca-3f8d8a754373" ] }, { "propname": "stylebook_id", "propvalues": [ "gslbbb963abe85936913035e1d4dd14b56f7", "moni72fad4494466d102b19c18ac329fa9f3" ] } ], "tenant_id": "6d024111-6636-4571-a250-d47b31aba7a8" } }

注:

DNSドメイン名のIDと、上記のAPIペイロードで使用されるGSLB StyleBooksを取得するには、通常のNetScaler Console APIを使用してエンティティ名に対応するIDをクエリできます。たとえば、「app1.acme.com」というDNSドメインのIDを取得するには、次のNetScaler コンソールのREST APIを使用できます。

URL: https://<MAS_IP>/nitro/v2/config/dns_domain_entry?filter=name: app1.acme.com HTTPMETHOD: GET The ID of this domain can be extracted from the following response. { "errorcode": 0, "message": "Done", "operation": "get", "resourceType": "dns_domain_entry", "username": "nsroot", "tenant_name": "Owner", "tenant_id": "568d8e12-1d88-42b2-8943-cbaa04826fd1", "resourceName": "", "dns_domain_entry": [ { "tenant_id": "568d8e12-1d88-42b2-8943-cbaa04826fd1", "name": "app1.acme.com", "id": "3e3d85ea-1c21-49b2-97f4-60fccdbae2e0", "description": "app1 domain name" } ] }

同様に、名前空間が com.citrix.adc.stylebook、バージョン:1.0、名前:my-own-gslbであるStyleBook の StyleBook ID を取得するには、次の API を使用できます。

URL: https://<MAS_IP>/stylebook/nitro/v1/config/stylebooks?filter=name:my-own-gslb,namespace:com.citrix.adc.stylebooks,version:1.0 HTTPMETHOD: GET

レスポンスには、ID 属性を含む StyleBook の詳細が含まれます。

{ "stylebooks": [ { "author": null, "builtin": "false", "builtins": "{"netscaler.nitro.config": "10.5"}", "deprecate": "false", "description": " This StyleBook is used to configure one or a number of NetScalers in different sites into a GSLB setup. It is assumed that the SNIP IP on each NetScaler to be used by this StyleBook as the Site IP is already configured on the appliance.", "display_name": "HTTP/SSL LoadBalancing StyleBook", "filename": "my-own-gslb.yaml", "hide": null, "id": "gslb5a748d8b7684846cf6c409ad7dea8ccf", "imported_by": "", "imported_datetime": "2018-05-25 17:20:32.848902", "name": "my-own-gslb", "namespace": "com.citrix.adc.stylebooks", "pkg_id": "gslb5a748d8b7684846cf6c409ad7dea8ccf", "primary_keys": "["name"]", "private": "false", "recompile": "false", "schema_version": "1.0", "source": "LS0tIApuYW1lOiBsYgpuYW1lc…", "system": null, "tags": "", "tenant_id": null, "user_sb": "false", "version": "1.0" }, {} ] }

注:

上記のAPIは、フィルターに一致するStyleBookのリストを返します。応答から正しいStyleBookを選択して、IDを取得してください。

システムユーザーを作成するためのREST API

注:

このステップはオプションです。

URL: https://<MAS_IP>/nitro/v2/config/mpsuser HTTPMETHOD: POST Payload: { "mpsuser": { "name": "John", "password": "welcome", "external_authentication": false, "enable_session_timeout": false, "groups": [ "AppOwnerGroup1" ] } }

アプリケーション所有者のワークフロー

ユーザーは、資格情報を使用してアプリケーションユーザーとしてログオンする必要があります。ユーザーはこのタスクに従って、独自の DNS ドメイン名を作成し、新しい GSLB StyleBook を使用する必要があります。

  1. NetScaler コンソールで、[ 設定] > [ドメイン名]に移動します。

  2. [ 追加 ] をクリックして、新しい DNS ドメインを作成します。NetScaler コンソールでDNSドメインを作成します。

    DNS ドメイン名を作成する

    注:

    管理者は、これらのドメイン名を作成してユーザーグループに割り当てることもできます。

  3. [ アプリケーション ] > [ ダッシュボード ] に移動し、[ カスタムアプリケーションの定義] をクリックします。

  4. アプリケーションの名前を入力し、カテゴリを選択します。StyleBookから新しいアプリケーションを作成を選択し、「OK」をクリックします。[ 自分のGSLB StyleBook ] を選択して、選択したインスタンスに設定をデプロイします。

    アプリケーションの定義

  5. StyleBookのすべてのパラメータに必要な値を入力します。

    1. リストからドメイン名を選択します。

    2. 必要に応じて、アプリケーションのGSLBサイトを追加します。

    3. すべてのGSLBサイトでターゲットNetScaler ADCインスタンスを選択します。

    4. [ Create ] をクリックして、GSLB 設定を作成します。

      GSLB 構成を作成する

    注:

    StyleBookパラメーターの「DNSドメイン名」は、NetScalerコンソールでユーザーに属するDNSドメインのリストのみを表示します。

アプリ所有者向けNetScaler コンソールREST API ワークフロー

NetScaler コンソールにログオンするためのREST API

URL: http: //<MAS_IP>/nitro/v2/config/login HTTPMETHOD: POST Payload: { "login": { "username": "<USER_NAME>", "password": "<PASSWORD>", "session_timeout": 1800 } }

DNS ドメイン名を作成するREST API

URL: https://<MAS_IP>/nitro/v2/config/dns_domain_entry HTTP METHOD: POST PAYLOAD: {"dns_domain_entry":{"name":"app1.acme.com","description":"app1 acme domain" } }

StyleBookを使用してアプリケーションを作成するREST API

URL: https://<MAS_IP>/nitro/v2/config/application HTTPMETHOD: POST Payload: { "params": { "action": "app_discovery" }, "application": { "id": "", "name": "app1", "app_c ategory": "ITOps", "stylebook_params": "{"name":"my-own-gslb","namespace":"com.citrix.adc.stylebooks","version":"1.0","configpack_payload":{"parameters":{"name":"app1","domain-name":"app1.acme.com",]"ttl":"30","algorithm":"ROUNDROBIN","protocol":"HTTP","sites":[{"name":"site1","ipaddress":"6.5.6.77","virtual-ip":"88.6.5.44","virtual-port":"80"}]},"targets":[ {"id":"72c178da-47df-4426-9acc-cd6316f92506"}, {"id":"0e4d0789-bffe-4266-ba1c-09adfc61db4e"}, {"id":"b5af4455-3f06-4f56-b0cb-3d9f868c1f94"}]}}" } }

上記のペイロードでは:

  • 「stylebook_params」には、使用するStyleBookの名前、名前空間、バージョンが含まれています。

  • 上記の同等のGUIフォームに示すように、「configpack_payload」には、StyleBookのパラメータが入力されています。NetScaler Consoleでは、ユーザーがアクセスできるDNSドメイン名のみを「domain-name」パラメーターの値として使用できるようにしています。

  • 「ターゲット」には、GSLB構成がデプロイされるNetScaler IDのリスト(GSLBサイト上のNetScalerインスタンス)が含まれています。

NetScalerの管理IPアドレスを使用してNetScaler IDを取得するには、以下のNetScalerコンソールAPIを使用できます。

URL: https://<MAS_IP>/nitro/v2/config/ns?filter=ip_address: 192.168.153.162 HTTPMETHOD: GET

応答ペイロードには、このNetScalerに関する情報(IDを含む)が含まれます。

{ "errorcode": 0, "message": "Done",.."tenant_id": "ec0eb868-0d6b-4729-bfbd-3005dd2694c1", "resourceName": "", "ns": [ { "manufacturedate": "9/30/2009", "is_grace": "false", "hostname": "youcef-ns", "std_bw_config": "0", "gateway_deployment": "false", "gateway_ipv6": "", "ha_master_state": "Primary", "instance_available": "0", "device_finger_print": "", "instance_state": "Down", "reason": "Device not reachable", "name": "", "ent_bw_available": "0", "description": "", "id": "da9ffff2-c100-45f1-a913-c542718338b2", "mgmt_ip_address": "192.168.153.162",. } ] }

StyleBookを構築する

ファイル「my-own-gslb.yaml」StyleBookの全内容を以下に示します。このカスタムStyleBookは、 そのまま使用することも、必要に応じてカスタマイズして、必要なGSLB構成を生成することもできます。DNS名機能を利用するには、このStyleBookの「ドメイン名」という重要なパラメータがStyleBookに存在する必要があります。

name: my-own-gslb namespace: com.citrix.adc.stylebooks version: "1.0" display-name: My own GSLB StyleBook description: This StyleBook is used to configure one or a number of NetScalers in different sites into a GSLB setup. It is assumed that the SNIP IP on each NetScaler to be used by this StyleBook as the Site IP is already configured on the appliance. schema-version: "1.0" import-stylebooks: - namespace: netscaler.nitro.config version: "10.5" prefix: ns - namespace: com.citrix.adc.commontypes version: "1.0" prefix: cmtypes parameters: - name: name label: Application Name type: string required: true key: true - name: domain-name label: DNS Domain Name description: GSLB DNS Domain Name type: string required: true allowed-dynamic-values: source: local resource-type: dns_domain_entry - name: ttl label: TTL for the Domain description: Time-To-Live value (number of seconds) for the Domain type: number default: 30 - name: algorithm label: LB Algorithm description: Global Load Balancing Algorithm type: string default: ROUNDROBIN allowed-values: - ROUNDROBIN - STATICPROXIMITY - SOURCEIPHASH - name: protocol label: Protocol description: The protocol of the GSLB VIP type: string default: HTTP allowed-values: - HTTP - FTP - TCP - UDP - SSL - SSL_BRIDGE - SSL_TCP - NNTP - ANY - SIP_UDP - SIP_TCP - SIP_SSL - RADIUS - RDP - RTSP - MYSQL - MSSQL - ORACLE - name: monitor label: LB Monitor description: Monitor to be bound to the GSLB service type: cmtypes::monitor - name: sites label: GSLB Sites description: Provide information about the GSLB Sites type: object[] required: true parameters: - name: name label: Site Name type: string required: true - name: ipaddress label: Site IP Address description: The IP Address of this Site. Use a SNIP IP address on the site's appliance. type: ipaddress required: true - name: public-ipaddress label: Site Public IP Address description: The Public IP Address of this Site. It NATs to the Site's IP address type: ipaddress - name: virtual-ip label: Site VIP IP description: The IP Address for the GSLB Service on this site (The VIP on this Site) type: ipaddress required: true - name: virtual-port label: Site VIP Port description: The port number for the GSLB Service (VIP) on this site type: tcp-port default: 80 components: - name: enable-gslb-comp type: ns::nsfeature description: Enables the GSLB feature meta-properties: action: enable properties: feature: ["GSLB", "LB"] - name: gslb-monitor-comp type: cmtypes::monitor condition: $parameters.monitor properties: monitorname: $parameters.name + "-" + $parameters.monitor.monitorname + "-gslbmon" type: $parameters.monitor.type destip?: $parameters.monitor.destip destport?: $parameters.monitor.destport httprequest?: $parameters.monitor.httprequest send?: $parameters.monitor.send customheaders?: $parameters.monitor.customheaders respcodes?: $parameters.monitor.respcodes recv?: $parameters.monitor.recv lrtm?: $parameters.monitor.lrtm secure?: $parameters.monitor.secure interval?: $parameters.monitor.interval interval_units?: $parameters.monitor.interval_units resptimeout?: $parameters.monitor.resptimeout retries?: $parameters.monitor.retries downtime?: $parameters.monitor.downtime - name: gslb-vserver-comp type: ns::gslbvserver description: Creates a GSLB VServer config object properties: name: $parameters.name + "-gslbvserver" servicetype: $parameters.protocol lbmethod: $parameters.algorithm components: - name: gslb-domain-comp type: ns::gslbvserver_domain_binding properties: name: $parent.properties.name domainname: $parameters.domain-name ttl: $parameters.ttl - name: gslb-site-comp type: ns::gslbsite description: Creates a GSLB Site config object repeat: $parameters.sites repeat-item: site properties: sitename: $parameters.name + "-" + $site.name + "-gslbsite" siteipaddress: $site.ipaddress publicip?: $site.public-ipaddress components: - name: gslb-service-comp type: ns::gslbservice description: Creates a GSLB Service properties: servicename: $parameters.name + "-" + $site.name + "-gslbservice" ip: $site.virtual-ip servicetype: $parameters.protocol port: $site.virtual-port sitename: $parent.properties.sitename components: - name: gslb-vserver-service-binding-comp type: ns::gslbvserver_gslbservice_binding description: Creates a Binding between the GSLB vserver and the GSLB Service properties: name: $components.gslb-vserver-comp.properties.name servicename: $parent.properties.servicename - name: gslb-service-monitor-binding-comp type: ns::gslbservice_lbmonitor_binding description: Creates a Binding between the GSLB service and the GSLB monitor condition: $parameters.monitor properties: servicename: $parent.properties.servicename monitor_name: $components.gslb-monitor-comp.properties.monitorname
このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。
DNS ドメイン名を使用した GSLB 設定のデプロイ