Aggiungi nodi automaticamente in AWS OpsWorks for Chef Automate - AWS OpsWorks

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à.

Aggiungi nodi automaticamente in AWS OpsWorks for Chef Automate

Importante

AWS OpsWorks for Chef Automate ha raggiunto la fine del ciclo di vita il 5 maggio 2024 ed è stato disabilitato sia per i clienti nuovi che per quelli esistenti. Consigliamo ai clienti esistenti di migrare a Chef SaaS o a una soluzione alternativa. Se hai domande, puoi contattare il AWS Support team su AWS re:POST o tramite Premium AWS Support.

Questo argomento descrive come aggiungere automaticamente i nodi Amazon Elastic Compute Cloud (Amazon EC2) al server Chef. Il codice nello starter kit mostra come aggiungere nodi automaticamente tramite il metodo automatico. Il metodo consigliato per l'associazione automatica di nuovi nodi, riguarda la configurazione di un libro di ricette del client Chef. Puoi utilizzare lo script userdata nello starter kit e modificare la sezione run_list dello script userdata o il file Policyfile.rb con i libri di ricette da applicare ai nodi. Prima di eseguire l'agente chef-client installa il libro di ricette del client Chef sul tuo server Chef, quindi installa l'agente chef-client in modalità servizio, ad esempio con un ruolo HTTPD, come mostrato nel comando esemplificativo di seguito.

chef-client -r "chef-client,role[httpd]"

Per comunicare con il server Chef, il software dell'agente chef-client deve poter accedere alla chiave pubblica del nodo del client. Puoi generare una coppia di chiavi pubblica-privata in Amazon EC2 e quindi passare la chiave pubblica alla chiamata API con AWS OpsWorks associate-node il nome del nodo. Lo script incluso nello starter kit, raccoglie per te il nome dell'organizzazione, il nome del server e l'endpoint del server. In questo modo, viene garantito che il nodo sia associato al server di Chef e che il software dell'agente chef-client in esecuzione sul nodo, possa comunicare con il server dopo aver abbinato la chiave privata.

La versione minima supportata di chef-client sui nodi associati a un server AWS OpsWorks for Chef Automate è la versione 13.x. Ti consigliamo di eseguire la versione più recente e stabile. chef-client

Per informazioni su come dissociare un nodo, Dissociare un nodo da un server AWS OpsWorks for Chef Automate consulta questa guida e disassociate-nodela documentazione dell' AWS OpsWorks for Chef Automate API.

Sistemi operativi supportati

Per l'elenco aggiornato dei sistemi operativi supportati per i nodi, consulta l'argomento sul sito Web di Chef.

Passaggio 1: crea un ruolo IAM da utilizzare come profilo di istanza

Crea un ruolo AWS Identity and Access Management (IAM) da utilizzare come profilo di istanza EC2 e collega la seguente policy al ruolo IAM. Questa policy consente all'API AWS OpsWorks for Chef Automate (opsworks-cm) di comunicare con l'istanza EC2 durante la registrazione dei nodi. Per ulteriori informazioni sui profili di istanza, consulta Using Instance Profiles nella documentazione di Amazon EC2. Per informazioni su come creare un ruolo IAM, consulta Creazione di un ruolo IAM nella console nella documentazione di Amazon EC2.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "opsworks-cm:AssociateNode", "opsworks-cm:DescribeNodeAssociationStatus", ], "Resource": "*", "Effect": "Allow" } ] }

AWS OpsWorks fornisce un AWS CloudFormation modello che puoi utilizzare per creare il ruolo IAM con la precedente dichiarazione di policy. Il AWS CLI comando seguente crea automaticamente il ruolo del profilo dell'istanza utilizzando questo modello. Puoi omettere il --region parametro se desideri creare il nuovo AWS CloudFormation stack nella tua regione predefinita.

aws cloudformation --region region ID create-stack --stack-name myChefAutomateinstanceprofile --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-nodes-roles.yaml --capabilities CAPABILITY_IAM

Fase 2: Installare il libro di ricette del client Chef

In caso contrario, segui le istruzioni su (Alternativa) Utilizzare Berkshelf per ottenere libri di ricette da un'originen remota per essere sicuro che il tuo Berksfile o il file Policyfile.rb faccia riferimento al libro di ricette del client Chef e che installi il libro di ricette.

Fase 3. Creare istanze tramite uno script di associazione automatica

  1. Per creare istanze EC2, puoi copiare userdata lo script dallo Starter Kit userdata nella sezione delle istruzioni delle istanze EC2, nelle configurazioni di avvio del gruppo Amazon EC2 Auto Scaling o in un modello. AWS CloudFormation Per ulteriori informazioni sull'aggiunta di script ai dati utente, consulta Running Commands on Your Linux Instance at Launch nella documentazione di Amazon EC2.

    Questo script esegue il associate-nodecomando opsworks-cm API per associare un nuovo nodo al server Chef.

    Per impostazione predefinita, il nome del nuovo nodo registrato è l'ID dell'istanza, ma puoi cambiare il nome modificando il valore della variabile NODE_NAME nello script userdata. Poiché al momento non è possibile modificare il nome dell'organizzazione nell'interfaccia utente della console di Chef, lascia il valore CHEF_AUTOMATE_ORGANIZATION impostato su default.

  2. Eseguire la procedura descritta in Avvio di un'istanza nella documentazione di EC2, apportando le modifiche descritte in questo documento. Nella procedura guidata relativa al lancio dell'istanza EC2, scegli un'AMI di Amazon Linux.

  3. Sulla pagine Configure Instance Details (Configurazione dei dettagli dell'istanza), seleziona il ruolo creato su Passaggio 1: crea un ruolo IAM da utilizzare come profilo di istanza come ruolo IAM.

  4. Nell'area Advanced Details (Dettagli avanzati), carica lo script userdata.sh creato precedentemente in questa procedura.

  5. Non è necessario apportare alcuna modifica nella pagina Add Storage (Aggiungi storage). Vai su Add Tags (Aggiungi tag).

  6. Nella pagina Configure Security Group (Configura gruppo di sicurezza), scegli Add Rule (Aggiungi regola), quindi scegli il tipo di HTTP per aprire le porte numero 443 e 80 per il server Web Apache in questo esempio.

  7. Scegli Review and Launch (Analizza e lancia), quindi scegli Launch (Lancia). All'avvio del nuovo nodo, quest'ultimo applica le configurazioni specificate dalle ricette che hai specificato nel parametro RUN_LIST.

  8. Facoltativo: se hai aggiunto il libro di ricette nginx al tuo elenco di esecuzione, quando aprirai la pagina Web collegata al DNS pubblico del tuo nuovo nodo, dovresti visualizzare un sito Web ospitato dal server Web nginx.

Altri metodi di esecuzioni ripetute in automatico relativi a chef-client

Sebbene sia più difficile da eseguire e non consigliato, è possibile eseguire lo script in questo argomento esclusivamente come parte dei dati utente dell'istanza autonoma, utilizzare un AWS CloudFormation modello per aggiungerlo ai dati utente della nuova istanza, configurare un cron processo per eseguire lo script regolarmente o eseguirlo chef-client all'interno di un servizio. Tuttavia, consigliamo il metodo del libro di ricette del client Chef, visto che altre tecniche di automazione hanno diversi svantaggi.

Per un elenco completo dei parametri che puoi fornire a chef-client, consulta l'articolo relativo alla documentazione di Chef.

I seguenti post del AWS blog offrono ulteriori informazioni sull'associazione automatica dei nodi al server Chef Automate, utilizzando i gruppi di Auto Scaling o all'interno di più account.