Usa il comando register (ARN dell'utente IAM) per registrare un'istanza locale - AWS CodeDeploy

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa il comando register (ARN dell'utente IAM) per registrare un'istanza locale

Importante

La registrazione di un'istanza utilizzando un utente IAM non è consigliata perché utilizza credenziali statiche (permanenti) per l'autenticazione. Per una maggiore sicurezza, consigliamo di registrare un'istanza utilizzando credenziali temporanee per l'autenticazione. Per ulteriori informazioni, consulta Usa il register-on-premises-instance comando (IAM Session ARN) per registrare un'istanza locale.

Importante

Assicurati di disporre di un piano per la rotazione delle chiavi di accesso dell'utente IAM (credenziali permanenti). Per ulteriori informazioni, consulta Rotazione delle chiavi di accesso.

Questa sezione descrive come configurare un'istanza locale e registrarla e etichettarla CodeDeploy con il minimo sforzo. Il comando register è particolarmente utile quando si utilizza una singola istanza locale o un parco di istanze locali di piccole dimensioni. È possibile utilizzare il register comando solo quando si utilizza l'ARN di un utente IAM per autenticare un'istanza. Non è possibile utilizzare il register comando con un ARN di sessione IAM per l'autenticazione.

Quando usi il register comando, puoi CodeDeploy fare quanto segue:

  • Crea un utente IAM AWS Identity and Access Management per l'istanza locale, se non ne specifichi uno con il comando.

  • Salva le credenziali dell'utente IAM in un file di configurazione dell'istanza locale.

  • Registra l'istanza locale con. CodeDeploy

  • Aggiungere tag all'istanza locale, se li specifichi come parte del comando.

Nota

Il register-on-premises-instancecomando è un'alternativa al comando register. È possibile utilizzare il register-on-premises-instance comando se si desidera configurare un'istanza locale e registrarla e contrassegnarla CodeDeploy per lo più autonomamente. Il register-on-premises-instance comando offre anche la possibilità di utilizzare un ARN di sessione IAM per registrare le istanze anziché un ARN utente IAM. Questo approccio offre un vantaggio notevole se disponi di parchi di istanze locali di grandi dimensioni. In particolare, puoi utilizzare una singola sessione ARN di IAM per autenticare più istanze invece di dover creare un utente IAM per ogni istanza locale una per una. Per ulteriori informazioni, consulta Usa il register-on-premises-instance comando (IAMutenteARN) per registrare un'istanza locale e Usa il register-on-premises-instance comando (IAM Session ARN) per registrare un'istanza locale.

Passaggio 1: installa e configura l'istanza locale AWS CLI

  1. Installa AWS CLI l'istanza locale. Segui le istruzioni riportate nella Guida per l'utente AWS CLI nella Guida per l'AWS Command Line Interface utente.

    Nota

    CodeDeploy i comandi per lavorare con le istanze locali sono disponibili nella AWS CLI versione 1.7.19 e successive. Se lo hai AWS CLI già installato, chiama aws --version per verificarne la versione.

  2. Configura AWS CLI l'istanza locale. Segui le istruzioni riportate nella Guida per l'AWS Command Line Interface utente di AWS CLI Configurazione.

    Importante

    Durante la configurazione AWS CLI (ad esempio, chiamando il aws configure comando), assicurati di specificare l'ID della chiave segreta e la chiave di accesso segreta di un utente IAM che disponga almeno delle seguenti autorizzazioni di AWS accesso oltre alle autorizzazioni specificate in. Prerequisiti per la configurazione di un'istanza locale In questo modo è possibile scaricare e installare l' CodeDeploy agente sull'istanza locale. Le autorizzazioni di accesso potrebbero essere simili a queste:

    { "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:GetUser", "tag:getTagKeys", "tag:getTagValues", "tag:GetResources" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    Nota

    Se visualizzi errori di accesso negato quando provi ad accedere a uno dei bucket Amazon S3 mostrati in precedenza, prova a omettere la /* parte della risorsa ARN del bucket, ad esempio. arn:aws:s3:::aws-codedeploy-sa-east-1

Passaggio 2: chiama il comando register

Per questa fase, si presuppone che la registrazione dell'istanza locale venga eseguita dall'istanza locale stessa. È inoltre possibile registrare un'istanza locale da un dispositivo o un'istanza separato su cui è AWS CLI installata e configurata come descritto nel passaggio precedente.

Utilizzate AWS CLI per chiamare il comando register, specificando:

  • Un nome che identifica in modo univoco l'istanza locale CodeDeploy (con l'opzione). --instance-name

    Importante

    Per identificare più facilmente l'istanza locale in un secondo momento, soprattutto a scopo di debug, è consigliabile utilizzare un nome mappato ad alcune caratteristiche univoche dell'istanza locale (ad esempio, il numero di serie o un identificatore di asset interno, se applicabili). Se specificate un indirizzo MAC per un nome, tenete presente che gli indirizzi MAC contengono caratteri CodeDeploy non consentiti, come i due punti (). : Per un elenco dei caratteri consentiti, consulta CodeDeploy quote.

  • Facoltativamente, l'ARN di un utente IAM esistente che desideri associare a questa istanza locale (con --iam-user-arn l'opzione). Per ottenere l'ARN di un utente IAM, chiama il comando get-user o scegli il nome utente IAM nella sezione Utenti della console IAM, quindi trova il valore User ARN nella sezione Summary. Se questa opzione non è specificata, CodeDeploy creerà un utente IAM per tuo conto nel tuo AWS account e lo assocerà all'istanza locale.

    Importante

    Se specifichi l'opzione --iam-user-arn, devi anche creare manualmente il file di configurazione dell'istanza locale, come descritto in Fase 4: Aggiungere un file di configurazione all'istanza locale.

    Puoi associare un solo utente IAM a una sola istanza locale. Il tentativo di associare un singolo utente IAM a più istanze locali può causare errori, distribuzioni non riuscite su tali istanze locali o distribuzioni su quelle istanze locali che sono bloccate in uno stato di sospeso perpetuo.

  • Facoltativamente, un set di tag di istanza locali (con l'--tagsopzione) che CodeDeploy verranno utilizzati per identificare il set di istanze Amazon EC2 su cui eseguire la distribuzione. Specifica ciascun tag con Key=tag-key,Value=tag-value (ad esempio, Key=Name,Value=Beta Key=Name,Value=WestRegion). Se questa opzione non è specificata, non verrà registrato alcun tag. Per registrare i tag in un secondo momento, chiama il comando -premises-instances. add-tags-to-on

  • Facoltativamente, la AWS regione in cui verrà registrata l'istanza locale (con CodeDeploy l'opzione). --region Questa deve essere una delle regioni supportate elencate in Regione e gli endpoint in Riferimenti generali di AWS(ad esempio,). us-west-2 Se questa opzione non è specificata, verrà utilizzata la AWS regione predefinita associata all'utente IAM chiamante.

Per esempio:

aws deploy register --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem --tags Key=Name,Value=CodeDeployDemo-OnPrem --region us-west-2

Il comando register funziona nel modo seguente:

  1. Se non viene specificato alcun utente IAM esistente, crea un utente IAM, gli assegna le autorizzazioni richieste e genera la chiave segreta e la chiave di accesso segreta corrispondenti. L'istanza locale utilizzerà questo utente IAM e le relative autorizzazioni e credenziali per l'autenticazione e l'interazione. CodeDeploy

  2. Registra l'istanza locale con. CodeDeploy

  3. Se specificato, si associa CodeDeploy ai tag specificati con l'--tagsopzione al nome dell'istanza registrata locale.

  4. Se è stato creato un utente IAM, crea anche il file di configurazione richiesto nella stessa directory da cui è stato chiamato il register comando.

Se questo comando rileva errori, viene visualizzato un messaggio di errore che descrive in che modo è possibile completare manualmente i passaggi rimanenti. In caso contrario, viene visualizzato un messaggio che descrive come chiamare il comando install, come illustrato nella fase successiva.

Passaggio 3: richiama il comando di installazione

Dall'istanza locale, usa AWS CLI per chiamare il comando install, specificando:

  • Il percorso del file di configurazione (con l'opzione --config-file).

  • Facoltativamente, se sostituire il file di configurazione già presente nell'istanza locale (con l'opzione --override-config). Se non specificato, il file di configurazione esistente non verrà sostituito.

  • Facoltativamente, la AWS regione in cui verrà registrata l'istanza locale CodeDeploy (con l'opzione). --region Questa deve essere una delle regioni supportate elencate in Regione e gli endpoint in Riferimenti generali di AWS(ad esempio,). us-west-2 Se questa opzione non è specificata, verrà utilizzata la AWS regione predefinita associata all'utente IAM chiamante.

  • Facoltativamente, una posizione personalizzata da cui installare l' CodeDeploy agente (con l'--agent-installeropzione). Questa opzione è utile per installare una versione personalizzata dell' CodeDeploy agente che CodeDeploy non è supportata ufficialmente (ad esempio una versione personalizzata basata sul repository dell'CodeDeployagente in GitHub). Il valore deve essere il percorso verso un bucket Amazon S3 che contiene:

    • Uno script di installazione dell' CodeDeploy agente (per sistemi operativi basati su Linux o UNIX, simile al file di installazione nel repository degli CodeDeployagenti in). GitHub

    • Un file del pacchetto di installazione CodeDeploy dell'agente (.msi) (per sistemi operativi basati su Windows).

    Se questa opzione non è specificata, CodeDeploy farà del suo meglio per installare dalla propria posizione una versione dell' CodeDeploy agente ufficialmente supportata che sia compatibile con il sistema operativo sull'istanza locale.

Per esempio:

aws deploy install --override-config --config-file /tmp/codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi

Il comando install funziona nel modo seguente:

  1. Verifica se l'istanza locale è un'istanza Amazon EC2. In caso affermativo, viene visualizzato un messaggio di errore.

  2. Copia il file di configurazione delle istanze locali dalla posizione specificata sull'istanza alla posizione in cui l' CodeDeploy agente prevede di trovarlo, a condizione che il file non si trovi già in quella posizione.

    Per Ubuntu Server e Red Hat Enterprise Linux (RHEL), questo è/. /etc/codedeploy-agent/conf codedeploy.onpremises.yml

    Per Windows Server, questo èC:\ProgramData\Amazon\CodeDeploy\conf.onpremises.yml.

    Se l'opzione --override-config è stata specificata, crea o sovrascrive il file.

  3. Installa l' CodeDeploy agente nell'istanza locale e quindi lo avvia.

Fase 4: Distribuire le revisioni dell'applicazione nell'istanza locale

È ora possibile distribuire le revisioni dell'applicazione all'istanza locale registrata e contrassegnata.

Distribuisci le revisioni delle applicazioni sulle istanze locali in un modo simile alla distribuzione delle revisioni delle applicazioni sulle istanze Amazon EC2. Per istruzioni, consulta Crea una distribuzione con CodeDeploy. Queste istruzioni rimandano ai prerequisiti, inclusa la creazione di un'applicazione, la creazione di un gruppo di distribuzione e la preparazione di una revisione di un'applicazione. Se occorre una semplice revisione dell'applicazione di esempio da distribuire, puoi creare quella descritta in Passaggio 2: creare una revisione di esempio dell'applicazione nel Tutorial: Implementa un'applicazione su un'istanza locale con CodeDeploy (Windows Server, Ubuntu Server o Red Hat Enterprise Linux).

Importante

Se riutilizzi un ruolo di CodeDeploy servizio esistente come parte della creazione di un gruppo di distribuzione destinato alle istanze locali, devi includere Tag:get* nella parte della politica del ruolo di servizio. Action Per ulteriori informazioni, consulta Fase 2: Creare un ruolo di servizio per CodeDeploy.

Fase 5: Tieni traccia delle distribuzioni sull'istanza locale

Dopo aver distribuito una revisione dell'applicazione a istanze locali registrate e contrassegnate, puoi monitorare l'avanzamento della distribuzione.

Tieni traccia delle distribuzioni su istanze locali in modo simile al monitoraggio delle distribuzioni su istanze Amazon EC2. Per istruzioni, consulta Visualizza i dettagli CodeDeploy della distribuzione .

Per ulteriori opzioni, consulta Gestione delle operazioni delle istanze locali in CodeDeploy.