Creare un AWS OpsWorks for Chef Automate server utilizzando AWS CloudFormation - 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à.

Creare un AWS OpsWorks for Chef Automate server utilizzando AWS CloudFormation

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.

AWS OpsWorks for Chef Automate ti consente di eseguire un server Chef Automate in. AWS Puoi effettuare il provisioning di un server Chef Automate in circa 15 minuti.

A partire dal 3 maggio 2021, AWS OpsWorks for Chef Automate memorizza alcuni attributi del server Chef Automate in. AWS Secrets Manager Per ulteriori informazioni, consulta Integrazione con AWS Secrets Manager.

La seguente procedura dettagliata ti aiuta a creare un server AWS OpsWorks for Chef Automate creando uno stack in. AWS CloudFormation

Prerequisiti

Prima di creare un nuovo server Chef Automate, è necessario creare le necessarie risorse al di fuori di AWS OpsWorks for Chef Automate per accedere e gestire il server Chef. Per ulteriori informazioni, consulta Prerequisiti nella sezione delle nozioni di base di questa guida.

Consulta la sezione OpsWorks -CM della Guida per l'AWS CloudFormation utente di riferimento per conoscere i valori supportati e obbligatori nel AWS CloudFormation modello utilizzato per creare il server.

Se si sta creando un server che utilizza un dominio personalizzato, è necessario un dominio, un certificato e una chiave privata personalizzati. È necessario specificare i valori per tutti e tre questi parametri nel AWS CloudFormation modello. Per ulteriori informazioni sui requisiti per i CustomPrivateKey parametri, eCustomDomain,,CustomCertificate,,,,,,, CreateServerconsulta il AWS OpsWorks CM API Reference.

Crea un valore di password per l'attributo del motore CHEF_AUTOMATE_ADMIN_PASSWORD. La lunghezza della password è compresa tra 8 e 32 caratteri. La password può contenere lettere, numeri e caratteri speciali (!/@#$%^+=_). La password deve contenere almeno una lettera minuscola, una maiuscola, un numero e un carattere speciale. Specificate questa password nel AWS CloudFormation modello o come valore del CHEF_AUTOMATE_ADMIN_PASSWORD parametro durante la creazione dello stack.

Genera una coppia di chiavi RSA con codifica base64 prima di iniziare a creare un server Chef Automate in. AWS CloudFormation La chiave pubblica della coppia è il valore di, lo ChefCHEF_AUTOMATE_PIVOTAL_KEY, specifico dell'API. EngineAttributesCreateServer Questa chiave viene fornita come valore di Parameters nella AWS CloudFormation console o nel create-stack comando in AWS CLI. Per generare questa chiave, suggeriamo i seguenti metodi.

  • Nei computer basati su Linux, puoi generare questa chiave eseguendo il comando OpenSSL.

    openssl genrsa -out pivotal_key_file_name.pem 2048

    Quindi esporta la porzione della chiave pubblica RSA della coppia in un file. La chiave pubblica diventa il valore di CHEF_AUTOMATE_PIVOTAL_KEY.

    openssl rsa -in pivotal_key_file_name.pem -pubout -out public.pem -outform PEM
  • Nei computer basati su Windows, puoi utilizzare l'utility PuTTYgen per generare una coppia di chiavi RSA con codifica base64. Per ulteriori informazioni, consulta PuTTYgen - Generatore di chiavi per PuTTY su Windows su SSH.com.

Creazione di un server Chef Automate in AWS CloudFormation

Questa sezione descrive come utilizzare un AWS CloudFormation modello per creare uno stack che crea un AWS OpsWorks for Chef Automate server. È possibile farlo utilizzando la AWS CloudFormation console o il AWS CLI. È disponibile un AWS CloudFormation modello di esempio da utilizzare per creare uno stack di AWS OpsWorks for Chef Automate server. Assicurati di aggiornare il modello di esempio con il nome del server, i ruoli IAM, il profilo dell'istanza, la descrizione del server, il numero di backup, le opzioni di manutenzione e i tag opzionali. Se il server utilizzerà un dominio personalizzato, è necessario specificare i valori per CustomDomainCustomCertificate, e CustomPrivateKey i parametri nel AWS CloudFormation modello. È possibile specificare gli attributi CHEF_AUTOMATE_PIVOTAL_KEY del motore CHEF_AUTOMATE_ADMIN_PASSWORD e i relativi valori nel AWS CloudFormation modello oppure fornire solo gli attributi e quindi specificare i valori per gli attributi nella procedura guidata o create-stack nel AWS CloudFormation comando Create Stack. Per ulteriori informazioni su tali attributi, consulta Crea un server Chef Automate in AWS Management Console nella sezione delle nozioni di base di questa guida.

Creazione di un server Chef Automate tramite la AWS CloudFormation (Console)

  1. Accedere AWS Management Console e aprire la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation.

  2. Nella AWS CloudFormation home page, scegli Crea stack.

  3. In Prerequisito - Prepara il modello, se utilizzi il AWS CloudFormation modello di esempio, scegli Il modello è pronto.

  4. In Specify template (Specifica modello), scegliere l'origine del modello. Per questa procedura dettagliata, scegli Carica un file modello e carica un AWS CloudFormation modello che crei un server Chef Automate. Cercare il file di modello e quindi scegliere Avanti.

    Un AWS CloudFormation modello può essere in formato YAML o JSON. È disponibile un AWS CloudFormation modello di esempio da utilizzare; assicurati di sostituire i valori di esempio con i tuoi. Puoi utilizzare lo strumento di progettazione del AWS CloudFormation modello per creare un nuovo modello o convalidarne uno esistente. Per ulteriori informazioni su come eseguire questa operazione, consulta la sezione relativa alla panoramica dell'interfaccia di progettazione AWS CloudFormation nella Guida per l'utente AWS CloudFormation .

    CloudFormation Crea una pagina stack
  5. Nella pagina Specify stack details (Specifica dettagli dello stack), immettere un nome per lo stack. Questo sarà diverso dal nome del server, è solo un nome di stack. Nell'area Parameters (Parametri), incollare i valori creati in Prerequisiti. Inserire la password in Password.

    Incolla il contenuto del file della chiave RSA. PivotalKey Nella AWS CloudFormation console, è necessario aggiungere caratteri newline (\n) alla fine di ogni riga del valore della chiave pivotal, come mostrato nella schermata seguente. Seleziona Successivo.

    Specificate la pagina dei dettagli dello stack in CloudFormation
  6. Nella pagina Configura le opzioni dello stack, puoi aggiungere tag al server che stai creando con lo stack e scegliere un ruolo IAM per la creazione di risorse se non hai già specificato un ruolo IAM da utilizzare nel tuo modello. Dopo aver specificato le opzioni, scegliere Next (Avanti). Per ulteriori informazioni sulle opzioni avanzate come i rollback trigger, consulta Setting AWS CloudFormation Stack Options nella Guida per l'utente.AWS CloudFormation

  7. Nella pagina Review (Esamina), esaminare le proprie opzioni. Quando si è pronti per creare lo stack del server, scegliere Create stack (Crea stack).

    Mentre aspetti di AWS CloudFormation creare lo stack, visualizza lo stato di creazione dello stack. Se si verifica un errore di creazione dello stack, esaminare i messaggi di errore visualizzati nella console per risolvere i problemi. Per ulteriori informazioni sulla risoluzione dei problemi relativi a errori dello stack AWS CloudFormation , consulta la sezione relativa alla risoluzione dei problemi relativi agli errori nella Guida per l'utente AWS CloudFormation .

    Al termine della creazione del server, il server Chef Automate sarà disponibile nella home page di AWS OpsWorks for Chef Automate , con lo stato online (in linea). Generare un nuovo Starter Kit e le credenziali del pannello di controllo di Chef Automate dalla pagina Properties (Proprietà) del server. Dopo che il server è online, il pannello di controllo Chef Automate è disponibile nel dominio del server, per una URL nel formato seguente: https://your_server_name-randomID.region.opsworks-cm.io.

    Nota

    Se hai specificato un dominio, un certificato e una chiave privata personalizzati per il tuo server, crea una voce CNAME nello strumento di gestione DNS dell'azienda che mappa il dominio personalizzato all'endpoint generato AWS OpsWorks for Chef Automate automaticamente per il server. Non è possibile gestire il server o connettersi al pannello di controllo Chef Automate del server finché non si esegue la mappatura dell'endpoint generato al valore del dominio personalizzato.

    Per ottenere il valore dell'endpoint generato, esegui il AWS CLI comando seguente dopo che il server è online:

    aws opsworks describe-servers --server-name server_name

Creazione di un server Chef Automate tramite la CLI AWS CloudFormation

Se sul tuo computer locale non è già in esecuzione AWS CLI, scaricalo e installalo AWS CLI seguendo le istruzioni di installazione nella AWS Command Line Interface User Guide. Questa sezione non descrive tutti i parametri che è puoi utilizzare con il comando create-stack. Per ulteriori informazioni sui parametri create-stack, consulta create-stack nella documentazione di riferimento delle AWS CLI .

  1. Assicurati di completare Prerequisiti per la creazione di un server AWS OpsWorks for Chef Automate .

  2. Crea un ruolo di servizio e un profilo di istanza. AWS OpsWorks fornisce un AWS CloudFormation modello che è possibile utilizzare per creare entrambi. Esegui il AWS CLI comando seguente per creare uno AWS CloudFormation stack che crei automaticamente il ruolo di servizio e il profilo dell'istanza.

    aws cloudformation create-stack --stack-name OpsWorksCMRoles --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml --capabilities CAPABILITY_NAMED_IAM

    Al AWS CloudFormation termine della creazione dello stack, trova e copia gli ARN dei ruoli di servizio nel tuo account.

    aws iam list-roles --path-prefix "/service-role/" --no-paginate

    Nei risultati del comando list-roles, cercare le voci del ruolo di servizio e del profilo dell'istanza che sono simili a quanto segue. Prendi nota degli ARN del ruolo di servizio e del profilo dell'istanza e aggiungili al AWS CloudFormation modello che stai utilizzando per creare lo stack di server.

    { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZQG6R22HC", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-ec2-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-ec2-role" }, { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "opsworks-cm.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZZZZZZ6QE", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-service-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-service-role" }
  3. Crea il AWS OpsWorks for Chef Automate server eseguendo nuovamente il create-stack comando.

    • Sostituisci stack_name con il nome dello stack. Questo è il nome dello AWS CloudFormation stack, non il tuo server Chef Automate. Il nome del server Chef Automate è il valore di ServerName nel tuo modello. AWS CloudFormation

    • Sostituisci template con il percorso del file del modello e l'estensione yaml o json con .yaml o .json in base alle esigenze.

    • I valori di --parameters corrispondono a EngineAttributesdall'CreateServerAPI. Per Chef, gli attributi del motore forniti dall'utente per la creazione di un server sono CHEF_AUTOMATE_PIVOTAL_KEY, una chiave pubblica RSA codificata base64 generata mediante le utilità descritte in Prerequisiti e CHEF_AUTOMATE_ADMIN_PASSWORD, una password compresa tra 8 e 32 caratteri creata dall'utente. Per ulteriori informazioni su CHEF_AUTOMATE_ADMIN_PASSWORD, consulta Crea un server Chef Automate utilizzando il AWS CLI. È possibile fornire un puntatore al file PEM che contiene la chiave pivotal come valore del parametro PivotalKey, come indicato nell'esempio. Se i valori per CHEF_AUTOMATE_ADMIN_PASSWORD e non CHEF_AUTOMATE_PIVOTAL_KEY sono specificati nel modello, è necessario fornire i valori nel AWS CLI comando.

    aws cloudformation create-stack --stack-name stack_name --template-body file://template.yaml or json --parameters ParameterKey=PivotalKey,ParameterValue="base64_encoded_RSA_public_key_value"

    Di seguito è riportato un esempio che include valori di esempio per gli attributi CHEF_AUTOMATE_ADMIN_PASSWORD e CHEF_AUTOMATE_PIVOTAL_KEY. Eseguite un comando simile se non avete specificato i valori per questi attributi nel AWS CloudFormation modello.

    aws cloudformation create-stack --stack-name "OpsWorksCMChefServerStack" --template-body file://opsworkscm-server.yaml --parameters ParameterKey=PivotalKey,ParameterValue="$(openssl rsa -in "pivotalKey.pem" -pubout)" ParameterKey=Password,ParameterValue="SuPer\$ecret890"
  4. Al termine della creazione dello stack, apri la pagina delle proprietà del nuovo server nella AWS OpsWorks for Chef Automate console e scarica uno starter kit. Effettuare il download di un nuovo starter kit reimposta la password amministratore del pannello di controllo di Chef Automate.

  5. Se il server utilizzerà un dominio, un certificato e una chiave privata personalizzati, attenersi alla procedura per la configurazione knife.rb in (Opzionale) Configurare knife per l'utilizzo di un dominio personalizzato e quindi passare alla fase 7.

    Se non utilizzi un dominio personalizzato, scarica il certificato root certificate authority (CA) dalla seguente posizione del bucket Amazon S3:. https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-ca-2020-root.pem Salva il file del certificato in una posizione sicura, ma comoda. Questo certificato è necessario per configurare knife.rb nella fase successiva.

  6. Per utilizzare i comandi knife nel nuovo server, aggiornare le impostazioni del file di configurazione di Chef knife.rb. Con lo starter kit è incluso un file knife.rb di esempio. Nell'esempio seguente viene illustrato come impostare knife.rb su un server che non utilizza un dominio personalizzato. Se si utilizza un dominio personalizzato, consultare (Opzionale) Configurare knife per l'utilizzo di un dominio personalizzato per le istruzioni di configurazione knife.

    • Sostituisci ENDPOINT con il valore di endpoint del server. Questo è parte dell'output dell'operazione di creazione dello stack. Puoi ottenere l'endpoint eseguendo il seguente comando.

      aws cloudformation describe-stacks --stack-name stack_name
    • Sostituisci key_pair_file.pem nella configurazione client_key con il nome del file PEM che contiene la CHEF_AUTOMATE_PIVOTAL_KEY che hai utilizzato per creare il server.

      base_dir = File.join(File.dirname(File.expand_path(__FILE__)), '..') log_level :info log_location STDOUT node_name 'pivotal' client_key File.join(base_dir, '.chef', 'key_pair_file.pem') syntax_check_cache_path File.join(base_dir, '.chef', 'syntax_check_cache') cookbook_path [File.join(base_dir, 'cookbooks')] chef_server_url 'ENDPOINT/organizations/default' ssl_ca_file File.join(base_dir, '.chef', 'ca_certs', 'opsworks-cm-ca-2020-root.pem') trusted_certs_dir File.join(base_dir, '.chef', 'ca_certs')
  7. Al termine del processo di creazione del server, vai su Configura il server Chef utilizzando lo Starter Kit. Se si verifica un errore di creazione dello stack, esaminare i messaggi di errore visualizzati nella console per risolvere i problemi. Per ulteriori informazioni sulla risoluzione degli errori negli AWS CloudFormation stack, consulta Risoluzione dei problemi degli errori nella Guida per l'AWS CloudFormation utente.