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

View a markdown version of this page

Usa il comando register (utente IAM ARN) 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 (utente IAM ARN) 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 Utilizza il comando register-on-premises-instance (ARN della sessione IAM) 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, registrare e applicare tag a un'istanza locale con il minimo sforzo utilizzando CodeDeploy . 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 un ARN 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 lasciare 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 comando register-on-premises-instance è un'alternativa al comando register. https://docs.aws.amazon.com/cli/latest/reference/deploy/register.html Il comando register-on-premises-instance è indicato se desideri configurare, registrare e aggiungere tag a un'istanza locale con CodeDeploy per la maggior parte in modo autonomo. 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 un singolo ARN di sessione IAM per autenticare più istanze invece di dover creare un utente IAM per ogni istanza locale uno per una. Per ulteriori informazioni, consulta Usa il comando register-on-premises-instance (utente IAM ARN) per registrare un'istanza locale e Utilizza il comando register-on-premises-instance (ARN della sessione IAM) per registrare un'istanza locale.

Passaggio 1: installare e configurare il AWS CLI nell'istanza locale

  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 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 alla configurazione della Guida per l'AWS Command Line Interface utente AWS CLI in.

    Importante

    Mentre configuri 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 dispone 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:

    JSON
    { "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:::amzn-s3-demo-bucket/*", "arn:aws:s3:::amzn-s3-demo-bucket1/*" ] } ] }
    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 dell'ARN delle risorse del bucket, ad esempio. arn:aws:s3:::aws-codedeploy-sa-east-1

    JSON
    { "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:GetResources" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*" ] } ] }

Passaggio 2: richiama il comando register

Per questa fase, si presuppone che la registrazione dell'istanza locale venga eseguita dall'istanza locale stessa. Puoi anche registrare un'istanza locale da un dispositivo o un'istanza separata su cui è AWS CLI installato e configurato come descritto nel passaggio precedente.

Usa il comando AWS CLI per chiamare il registro, specificando:

  • Un nome che identifica in modo univoco l'istanza locale di 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 l'--iam-user-arnopzione). Per ottenere l'ARN di un utente IAM, chiama il comando get-user o scegli il nome utente IAM nella sezione Users 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 Passaggio 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 a tali istanze locali o distribuzioni a quelle istanze locali 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 distribuire. 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 add-tags-to-on-premises-instances. https://docs.aws.amazon.com/cli/latest/reference/deploy/add-tags-to-on-premises-instances.html

  • Facoltativamente, la AWS regione in cui verrà registrata l'istanza locale (con l'opzione). CodeDeploy --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.

Ad 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 una chiave segreta e una chiave di accesso segreta corrispondenti. L'istanza locale utilizzerà questo utente IAM e le relative autorizzazioni e credenziali per autenticarsi e interagire con esso. CodeDeploy

  2. Registra l'istanza locale con. CodeDeploy

  3. Se specificato, associa CodeDeploy i tag specificati all'--tagsopzione al nome dell'istanza locale registrata.

  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 il comando AWS CLI to call 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 non CodeDeploy supporta ufficialmente (ad esempio una versione personalizzata basata sul repository dell'CodeDeployagente in GitHub). Il valore deve essere il percorso di un bucket Amazon S3 che contiene:

    • Uno script di installazione CodeDeploy dell'agente (per Linux o sistemi Unix-based operativi, simile al file di installazione nel repository degli CodeDeploy agenti in). GitHub

    • Un file del pacchetto di installazione CodeDeploy dell'agente (.msi) (per Windows-based i sistemi operativi).

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

Ad 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 sull'istanza locale e quindi lo avvia.

Passaggio 4: distribuzione delle revisioni dell'applicazione nell'istanza locale

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

Le revisioni delle applicazioni vengono distribuite su istanze locali in modo simile alla distribuzione delle revisioni delle applicazioni su istanze Amazon EC2. Per istruzioni, consulta l’argomento 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 includerlo nella parte della dichiarazione politica del ruolo di servizio. Tag:get* Action Per ulteriori informazioni, consulta Fase 2: Creare un ruolo di servizio per CodeDeploy.

Passaggio 5: 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 sulle istanze locali in modo simile al monitoraggio delle distribuzioni sulle istanze Amazon EC2. Per istruzioni, consulta l’argomento Visualizza i dettagli CodeDeploy della distribuzione.

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