NetScaler Application Delivery Management Service

我nstallieren Sie einen Agent auf Amazon Web Services (AWS)

Der NetScaler ADM-Agent arbeitet als Vermittler zwischen NetScaler ADM und den erkannten Instanzen im Rechenzentrum oder in der Cloud.

Voraussetzungen

Um ein NetScaler ADM Agent-AMI in einer Amazon Web Services (AWS) Virtual Private Cloud (VPC) mithilfe der Amazon-GUI zu starten, benötigen Sie:

  • Ein AWS-Konto

  • Eine virtuelle Private Cloud (VPC) von AWS

  • Ein IAM-Konto

Hinweis

  • Bevor Sie eine virtuelle Maschine mit dem NetScaler ADM Agent bereitstellen, empfiehlt Citrix, eine Sicherheitsgruppe, ein virtuelles privates Netzwerk, ein Schlüsselpaar, ein Subnetz und andere Entitäten zu erstellen. Daher stehen die Netzwerkinformationen während der Provisioning zur Verfügung.

  • Damit ein NetScaler ADM-Agent mit dem NetScaler ADM und den NetScaler-Instanzen kommuniziert, stellen Sie sicher, dass die empfohlenen Ports geöffnet sind. Vollständige Informationen zu den Portanforderungen für einen NetScaler ADM Agent finden Sie unterPorts.

So installieren Sie den NetScaler ADM Agent in AWS:

  1. Melden Sie sich mit IhrenAWS-Anmeldeinformationen am AWS-Marketplace an.

  2. Geben Sie im SuchfeldNetScaler ADM agentein, um nach dem NetScaler ADM Agent-AMI zu suchen, und klicken Sie aufLos.

  3. Klicken Sie auf der Suchergebnisseite in der verfügbaren Liste auf dasNetScaler ADM External Agent AMI.

  4. Klicken Sie auf der SeiteNetScaler ADM External Agent AMIaufContinue to Subscribe.

    Externer NetScaler ADM-Agent

  5. Nachdem das Abonnement erfolgreich war, klicken Sie aufWeiter zur Konfiguration.

    Konfiguration fortsetzen

  6. Auf der SeiteDiese Software konfigurieren:

    1. Wählen Sie das AMI aus derOptionsliste Fulfillmentaus.

    2. Wählen Sie die neueste Version des NetScaler ADM Agent aus der ListeSoftwareversionaus.

    3. Wählen Sie Ihre Region aus der ListeRegionaus.

    4. Klicken Sie auf魏特zumStarten

      Starten Sie weiter

  7. Auf der SeiteDiese Software startenhaben Sie zwei Möglichkeiten, den NetScaler ADM Agent zu registrieren:

    1. Von der Website aus starten

    2. Starten Sie mit EC2

      Starten Sie mit EC2

Von einer Website aus starten

嗯·冯·静脉网站来自祖茂堂starten,民意调查您:

  1. Ein EC2-Instanztyp aus der ListeEC2-Instanztyp

  2. Eine VPC aus der Liste derVPC-Einstellungen. Klicken Sie aufCreate a VPC in EC2, um eine VPC für Ihre Software zu erstellen.

  3. Ein Subnetz aus der ListeSubnetzeinstellungen. Klicken Sie aufSubnetz erstellen in EC2, um ein Subnetz zu erstellen, nachdem Sie die VPC ausgewählt haben.

  4. Eine Sicherheitsgruppe für die Firewall aus der ListeSicherheitsgruppeneinstellungen. Klicken Sie aufBasierend auf Verkäufereinstellungen neu erstellen, um eine Sicherheitsgruppe zu erstellen.

  5. Ein Schlüsselpaar zur Gewährleistung der Zugriffssicherheit aus der ListeSchlüsselpaareinstellungen. Klicken Sie aufCreate a key pair in EC2, um ein Schlüsselpaar für Ihre Software zu erstellen.

  6. Klicken Sie aufStarten

    Eine Website starten

  7. Der Start von einer Website ist erfolgreich.

    Der Start von einer Website ist erfolgreich

    Hinweis

    Der Bereitstellungsprozess kann etwa 10 bis 15 Minuten dauern. Nachdem die Bereitstellung erfolgreich abgeschlossen wurde, können Sie Ihre virtuelle NetScaler ADM Agent-Maschine in Ihrem AWS-Konto anzeigen.

  8. Weisen Sie nach der Bereitstellung des Agents einen Namen für Ihren NetScaler ADM Agent zu.

  9. Sobald der Agent eingerichtet ist und ausgeführt wird, weisen Sie Ihrem NetScaler ADM Agent eine Elastic IP-Adresse zu.

    Hinweis

    Elastic IP-Adresse ermöglicht dem NetScaler ADM Agent die Kommunikation mit NetScaler ADM. Eine elastische IP-Adresse ist jedoch möglicherweise nicht erforderlich, wenn Sie NAT Gateway so konfiguriert haben, dass der Datenverkehr an das Internet weitergeleitet wird.

  10. Melden Sie sich mit einem SSH-Client bei Ihrem NetScaler ADM Agent an.

    Hinweis

    Sie können sich auf eine der folgenden Arten beim NetScaler ADM Agent anmelden:

    • Verwenden Siensrecoverals Benutzernamen und AWS-Instanz-ID als Kennwort.

    • Verwenden Siensrootals Benutzernamen und ein gültiges Schlüsselpaar als Kennwort.

  11. Geben Sie den folgenden Befehl ein, um den Bereitstellungsbildschirm aufzurufen:deployment_type.py

  12. Geben Sie dieDienst-URLund denAktivierungscodeein, die Sie von der SeiteAgents einrichtenin NetScaler ADM kopiert und gespeichert haben, wie unterErste Schritte beschrieben. Der Agent verwendet die Dienst-URL, um den Dienst zu finden, und den Aktivierungscode, um sich beim Dienst zu registrieren.

    NetScaler ADM-Bereitstellung

Nach erfolgreicher Agentregistrierung wird der Agent neu gestartet, um den Installationsvorgang abzuschließen.

Nachdem der Agent neu gestartet wurde, greifen Sie auf NetScaler ADM zu und überprüfen Sie auf der SeiteAgent einrichtenunterErkannte Agentsden Status des Agents.

Starten Sie mit EC2

Um mit EC2 zu starten, wählen SieStart über EC2aus der ListeAktion auswählenaus, und klicken Sie dann aufStarten.

  1. Wählen Sie auf der Seite Choose an Instanz Typedie Instanz aus und klicken Sie aufNext: Configure Instanz Details.

    我nstanzdetails konfigurieren

  2. Geben Sie auf der SeiteConfigure Instanz Detailsdie erforderlichen Parameter an.

    我m AbschnittErweiterte Detailskönnen Sie einen Zero-Touch-Agent aktivieren, indem Sie Authentifizierungsdetails oder ein Skript im FeldBenutzerdatenangeben.

    • Authentifizierungsdetails- Geben Sie dieDienst-URLund denAktivierungscodean, die Sie von der SeiteAgents einrichtenin NetScaler ADM kopiert haben, wie unterErste Schritte beschrieben. Geben Sie die Details im folgenden Format ein.

      registeragent -serviceurl  -activationcode  

      Der Agent verwendet diese Informationen, um sich während des Startvorgangs automatisch beim NetScaler ADM zu registrieren.

    • Skript- Geben Sie ein Skript zur automatischen Registrierung des Agent als Benutzerdaten an. Das Folgende ist ein Beispielskript:

      #!/var/python/bin/python2.7importosimportrequestsimportjsonimporttimeimportreimportloggingimportlogging.handlersimportboto3''' Overview of the Script: The script helps to register a NetScaler ADM agent with NetScaler ADM. Pass it in userdata to make NetScaler ADM agent in AWS to autoregister on bootup. The workflow is as follows 1) Fetch the NetScaler ADM API credentials (ID and secret) from AWS secret store (NOTE: you have to assign IAM role to the NetScaler ADM agent that will give permission to fetch secrets from AWS secret store) 2) Login to NetScaler ADM with credentials fetched in step 1 3) Call NetScaler ADM to fetch credentials (serviceURL and token) for agent registration 4) Calls registration by using the credentials fetched in step 3 '''''' These are the placeholders which you need to replace according to your setup configurations aws_secret_id: Id of the AWS secret where you have stored NetScaler ADM Credentials The secrets value should be in the following json format { "adm_user_id_key": "YOUR_ID", " adm_user_secret_key": "YOUR_SECRET"} '''aws_secret_id=""adm_ip_or_hostname=".adm.cloud.com"''' Set up a specific logger with your desired output level and log file name '''log_file_name_local=os.path.basename(\_\_file\_\_)LOG_FILENAME='/var/log/'+'bootstrap'+'.log'LOG_MAX_BYTE=50\*1024\*1024LOG_BACKUP_COUNT=20logger=logging.getLogger(\_\_name\_\_)logger.setLevel(logging.DEBUG)logger_handler=logging.handlers.RotatingFileHandler(LOG_FILENAME,maxBytes=LOG_MAX_BYTE,backupCount=LOG_BACKUP_COUNT)logger_fortmater=logging.Formatter(fmt='%(asctime)-2s:%(funcName)30s:%(lineno)4d: [%(levelname)s] %(message)s',datefmt="%Y-%m-%d %H:%M:%S")logger_handler.setFormatter(logger_fortmater)logger.addHandler(logger_handler)classAPIHandlerException(Exception):def\_\_init\_\_(self,error_code,message):self.error_code=error_codeself.message=messagedef\_\_str\_\_(self):returnself.message+". Error code '"+str(self.error_code)+"'"defparse_response(response,url,print_response=True):ifnotresponse.ok:if"reboot"inurl:logger.debug('No response for url: reboot')resp={"errorcode":"500","message":"Error while reading response."}returnrespifprint_response:logger.debug('Response text for %s is %s'%(url,response.text))response=json.loads(response.text)logger.debug("ErrorCode - "+str(response['errorcode'])+". Message -"+str(response['message']))raiseAPIHandlerException(response['errorcode'],str(response['message']))elifresponse.text:ifprint_response:logger.debug('Response text for %s is %s'%(url,response.text))result=json.loads(response.text)if'errorcode'inresultandresult['errorcode']>0:raiseAPIHandlerException(result['errorcode'],str(result['message']))returnresultdef_request(method,url,data=None,headers=None,retry=3,print_response=True):try:response=requests.request(method,url,data=data,headers=headers)result=parse_response(response,url,print_response=print_response)returnresultexcept[requests.exceptions.ConnectionError,requests.exceptions.ConnectTimeout]:ifretry>0:return_request(method,url,data,headers,retry-1,print_response=print_response)else:raiseAPIHandlerException(503,'ConnectionError')exceptrequests.exceptions.RequestExceptionase:logger.debug(str(e))raiseAPIHandlerException(500,str(e))exceptAPIHandlerExceptionase:logger.debug("URL: %s, Error: %s, Message: %s"%(url,e.error_code,e.message))raiseeexceptExceptionase:raiseAPIHandlerException(500,str(e))try:'''Get the AWS Region'''client=boto3.client('s3')my_region=client.meta.region_namelogger.debug("The rgion is %s"%(my_region))'''Creating a Boto cleint session'''session=boto3.session.Session()client=session.client(service_name='secretsmanager',region_name=my_region)'''Getting the values stored in the secret with id: '''get_id_value_response=client.get_secret_value(SecretId=aws_secret_id)adm_user_id=json.loads(get_id_value_response["SecretString"])["adm_user_id_key"]adm_user_secret=json.loads(get_id_value_response["SecretString"])["adm_user_secret_key"]exceptExceptionase:logger.debug("Fetching of NetScaler ADM credentials from AWS secret failed with error: %s"%(str(e)))raisee''' Initializing common NetScaler ADM API handlers '''mas_common_headers={'Content-Type':"application/json",'Accept-type':"application/json",'Connection':"keep-alive",'isCloud':"true"}''' API to login to the NetScaler ADM and fetch the Session ID and Tenant ID '''url="https://"+str(adm_ip_or_hostname)+"/nitro/v1/config/login"payload='object={"login":{"ID":"'+adm_user_id+'","Secret":"'+adm_user_secret+'"}}'try:response=_request("POST",url,data=payload,headers=mas_common_headers)sessionid=response["login"][0]["sessionid"]tenant_id=response["login"][0]["tenant_name"]exceptExceptionase:logger.debug("Login call to the NetScaler ADM failed with error: %s"%(str(e)))raisee''' API to fetch the service URL and Token to be used for registering the agent with the NetScaler ADM '''mas_common_headers['Cookie']='SESSID='+str(sessionid)url="https://"+str(adm_ip_or_hostname)+"/nitro/v1/config/trust_preauthtoken/"+tenant_id+"?customer="+tenant_idlogger.debug("Fetching Service URL and Token.")try:response=_request("GET",url,data=None,headers=mas_common_headers)service_name=response["trust_preauthtoken"][0]["service_name"]token=response["trust_preauthtoken"][0]["token"]api_gateway_url=response["trust_preauthtoken"][0]["api_gateway_url"]exceptExceptionase:logger.debug("Fetching of the Service URL Passed with error. %s"%(str(e)))raisee''' Running the register agent command using the values we retrieved earlier '''try:registeragent_command="registeragent -serviceurl "+api_gateway_url+" -activationcode "+service_name+";"+tokenfile_run_command="/var/python/bin/python2.7 /mps/register_agent_cloud.py "+registeragent_commandlogger.debug("Executing registeragent command: %s"%(file_run_command))os.system(file_run_command)exceptExceptionase:logger.debug("Agent Registeration failed with error: %s"%(str(e)))raisee<!--NeedCopy-->

      Dieses Skript ruft die Authentifizierungsdetails vom AWS Secrets Manager ab und führt das Skriptdeployment.pyaus, um den Agent beim NetScaler ADM zu registrieren.

    我nstanzdetails konfigurieren

    Hinweis

    Während Sie öffentliche IP-Adressen automatisch zuweisen können, können Sie auch elastische IP-Adressen zuweisen. Das Zuweisen einer elastischen IP-Adresse ist erforderlich, wenn NAT-Gateway nicht konfiguriert ist.

    Wenn die Elastic IP-Adresse in diesem Schritt nicht festgelegt ist, können Sie dies weiterhin auf der EC2-Konsole tun. Sie können eine neue elastische IP-Adresse erstellen und diese mithilfe der Instanz-ID oder ENI-ID dem NetScaler ADM Agent zuordnen.

    Klicken Sie auf “Speicher hinzufügen

  3. Konfigurieren Sie auf der Seite “Speicher hinzufügen“ die Einstellungen des Speichergeräts für die Instanz und klicken Sie aufWeiter: Tags hinzufügen.

    Tags hinzufügen

  4. Definieren Sie auf der SeiteAdd Tagsdas Tag für die Instanz und klicken Sie aufWeiter: Security Group konfigurieren.

    Konfigurieren der Sicherheitsgruppe

  5. Fügen Sie auf der SeiteConfigure Security GroupRegeln hinzu, um bestimmten Traffic zu Ihrer Instanz zu erlauben, und klicken Sie aufReview and Launch

    Überprüfen und starten

  6. Überprüfen Sie auf der SeiteReview Instanz Launchdie Instanz-Einstellungen und klicken Sie aufStarten.

  7. ErstellenSie im Dialogfeld Wählen Sie ein vorhandenes Schlüsselpaar aus oder erstellen Sie ein neuesSchlusselpaar Schlusselpaar。您可以在欧什一us den vorhandenen Schlüsselpaaren wählen.

    Akzeptieren Sie die Bestätigung und klicken Sie aufLaunch Instanzen.

    我nstanzen starten

Der Bereitstellungsprozess kann etwa 10 bis 15 Minuten dauern. Nachdem die Bereitstellung erfolgreich abgeschlossen wurde, können Sie Ihre virtuelle NetScaler ADM Agent-Maschine in Ihrem AWS-Konto anzeigen.

我nstallieren Sie einen Agent auf Amazon Web Services (AWS)