Cree un AWS OpsWorks for Chef Automate servidor mediante AWS CloudFormation - AWS OpsWorks

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree un AWS OpsWorks for Chef Automate servidor mediante AWS CloudFormation

importante

AWS OpsWorks para Chef Automate llegó al final de su vida útil el 5 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los actuales. Recomendamos que los clientes actuales migren a Chef SaaS o a una solución alternativa. Si tienes alguna pregunta, puedes ponerte en contacto con el AWS Support equipo en AWS Re:post o a través de Premium AWS Support.

AWS OpsWorks for Chef Automate le permite ejecutar un servidor Chef Automate en. AWS Puede aprovisionar un servidor de Chef Automate en unos 15 minutos.

A partir del 3 de mayo de 2021, AWS OpsWorks for Chef Automate almacena algunos atributos del servidor de Chef Automate en AWS Secrets Manager. Para obtener más información, consulte Integración con AWS Secrets Manager.

El siguiente tutorial le ayuda a crear un servidor AWS OpsWorks for Chef Automate mediante la creación de una pila en AWS CloudFormation.

Requisitos previos

Antes de crear un nuevo servidor de Chef Automate, cree los recursos fuera de AWS OpsWorks for Chef Automate que necesitará para obtener acceso a su servidor Chef y administrarlo. Para obtener más información, consulte Requisitos previos en la sección Introducción de esta guía.

Consulte la sección OpsWorks -CM de la referencia de plantillas de la guía del AWS CloudFormation usuario para obtener información sobre los valores admitidos y obligatorios en la AWS CloudFormation plantilla que utilice para crear el servidor.

Si está creando un servidor que utiliza un dominio personalizado, necesita un dominio personalizado, un certificado y una clave privada. Debe especificar valores para estos tres parámetros en la AWS CloudFormation plantilla. Para obtener más información sobre los requisitos de CustomPrivateKey los parámetros y CustomDomainCustomCertificate, consulte la referencia CreateServerde la API de AWS OpsWorks CM.

Cree un valor de contraseña para el atributo CHEF_AUTOMATE_ADMIN_PASSWORD del motor. La longitud de la contraseña está comprendida entre 8 y 32 caracteres. La contraseña puede contener letras, espacios, números y los caracteres especiales (!/@#$%^+=_). La contraseña debe incluir al menos una letra en mayúscula, una en minúscula, un número y un carácter especial. Debe especificar esta contraseña en la AWS CloudFormation plantilla o como el valor del CHEF_AUTOMATE_ADMIN_PASSWORD parámetro al crear la pila.

Genere un key pair de claves RSA codificado en base64 antes de empezar a crear un servidor Chef Automate en. AWS CloudFormation La clave pública del par es el valor de la CHEF_AUTOMATE_PIVOTAL_KEY API específica EngineAttributesde Chef. CreateServer Esta clave se proporciona como el valor de los parámetros de la AWS CloudFormation consola o en el create-stack comando de AWS CLI. Para generar esta clave, le sugerimos que utilice los siguientes métodos.

  • En equipos Linux, puede generar esta clave ejecutando el siguiente comando de OpenSSL.

    openssl genrsa -out pivotal_key_file_name.pem 2048

    A continuación, exporte la parte de clave pública de RSA del par en un archivo. La clave pública se convierte en el valor de CHEF_AUTOMATE_PIVOTAL_KEY.

    openssl rsa -in pivotal_key_file_name.pem -pubout -out public.pem -outform PEM
  • En equipos Windows, puede usar la utilidad PuTTYgen para generar un par de claves RSA codificadas en base64. Para obtener más información, consulte PuTTYgen - Key Generator for PuTTY on Windows en SSH.com.

Creación de un servidor de Chef Automate en AWS CloudFormation

En esta sección se describe cómo usar una AWS CloudFormation plantilla para crear una pila que cree un AWS OpsWorks for Chef Automate servidor. Puede hacerlo mediante la AWS CloudFormation consola o el AWS CLI. Hay disponible una AWS CloudFormation plantilla de ejemplo para que la utilice para crear una pila de AWS OpsWorks for Chef Automate servidores. Asegúrese de actualizar la plantilla de ejemplo con su propio nombre de servidor, roles de IAM, perfil de instancia, descripción del servidor, recuento de retención de copia de seguridad, opciones de mantenimiento y etiquetas opcionales. Si el servidor va a utilizar un dominio personalizado, debe especificar los valores para los CustomPrivateKey parámetros CustomDomainCustomCertificate, y en la AWS CloudFormation plantilla. Puede especificar los atributos del CHEF_AUTOMATE_PIVOTAL_KEY motor CHEF_AUTOMATE_ADMIN_PASSWORD y sus valores en la AWS CloudFormation plantilla, o bien proporcionar solo los atributos y, a continuación, especificar los valores de los atributos en el asistente o create-stack comando AWS CloudFormation Crear pila. Para obtener más información sobre estos atributos, consulte Cree un servidor Chef Automate en el AWS Management Console en la sección Introducción de esta guía.

Creación de un servidor de Chef Automate mediante AWS CloudFormation (consola)

  1. Inicie sesión en la AWS CloudFormation consola AWS Management Console y ábrala en https://console.aws.amazon.com/cloudformation.

  2. En la página de AWS CloudFormation inicio, selecciona Crear pila.

  3. En Requisito previo: preparar la plantilla, si está utilizando la AWS CloudFormation plantilla de ejemplo, elija La plantilla está lista.

  4. En Specify template (Especificar plantilla), elija el origen de la plantilla. Para este tutorial, elija Cargar un archivo de plantilla y cargue una AWS CloudFormation plantilla que cree un servidor Chef Automate. Busque su archivo de plantilla y, a continuación, seleccione Next (Siguiente).

    Una AWS CloudFormation plantilla puede estar en formato YAML o JSON. Hay una AWS CloudFormation plantilla de ejemplo disponible para que la utilices; asegúrate de reemplazar los valores de ejemplo por los tuyos propios. Puedes usar el diseñador AWS CloudFormation de plantillas para crear una plantilla nueva o validar una existente. Para obtener más información al respecto, consulte Información general de la interfaz AWS CloudFormation Designer en la Guía del usuario de AWS CloudFormation .

    CloudFormation Crea una página de pila
  5. En la página Specify stack details (Especificar detalles de la pila), especifique un nombre para la pila. No será el mismo que el nombre del servidor: es solo el nombre de una pila. En el área Parameters (Parámetros), pegue los valores que creó en Requisitos previos. Escriba la contraseña en Password (Contraseña).

    Pegue el contenido del archivo de claves RSA. PivotalKey En la AWS CloudFormation consola, debe añadir caracteres de nueva línea (\n) al final de cada línea del valor clave fundamental, como se muestra en la siguiente captura de pantalla. Elija Siguiente.

    Especifique la página de detalles de la pila en CloudFormation
  6. En la página Configurar opciones de la pila, puede añadir etiquetas al servidor que va a crear con la pila y elegir un rol de IAM para crear recursos si todavía no ha especificado el rol de IAM que va a usar en la plantilla. Cuando haya terminado de especificar las opciones, elija Next (Siguiente). Para obtener más información sobre las opciones avanzadas, como los activadores de reversión, consulte Configuración de las opciones de AWS CloudFormation pila en la Guía del AWS CloudFormation usuario.

  7. En la página Review (Revisar), revise las opciones seleccionadas. Cuando esté listo para crear la pila del servidor, seleccione Create stack (Crear pila).

    Mientras esperas AWS CloudFormation a crear la pila, consulta el estado de creación de la pila. Si se produce un error al crear la pila, consulte los mensajes de error que se muestran en la consola para ayudar a resolverlos. Para obtener más información sobre cómo solucionar errores en las pilas de AWS CloudFormation , consulte Solución de errores en la Guía del usuario de AWS CloudFormation .

    Cuando se termine de crear el servidor, el servidor de Chef Automate estará disponible en la página de inicio de AWS OpsWorks for Chef Automate , con el estado online. Genere un nuevo kit de inicio y las credenciales del panel de Chef Automate desde la página de propiedades del servidor. Una vez que el servidor esté online, el panel de Chef Automate estará disponible en el dominio del servidor, en una URL en el siguiente formato: https://your_server_name-randomID.region.opsworks-cm.io.

    nota

    Si especificó un dominio, un certificado y una clave privada personalizados para su servidor, cree una entrada CNAME en la herramienta de administración de DNS de su empresa que asigne su dominio personalizado al punto final que AWS OpsWorks for Chef Automate se generó automáticamente para el servidor. No puede administrar el servidor ni conectarse al panel de Chef Automate para el servidor hasta que asigne el punto de enlace generado al valor de dominio personalizado.

    Para obtener el valor de punto final generado, ejecuta el siguiente AWS CLI comando cuando el servidor esté en línea:

    aws opsworks describe-servers --server-name server_name

Creación de un servidor de Chef Automate mediante AWS CloudFormation (CLI)

Si su ordenador local aún no está ejecutando el AWS CLI, descárguelo e instálelo AWS CLI siguiendo las instrucciones de instalación de la Guía del usuario de la interfaz de línea de comandos de AWS. En esta sección no se describen todos los parámetros que se pueden utilizar con el comando create-stack. Para obtener más información sobre los parámetros de create-stack, consulte create-stack en la Referencia de la AWS CLI .

  1. Asegúrese de completar el Requisitos previos para crear un servidor de AWS OpsWorks for Chef Automate .

  2. Cree un rol de servicio y un perfil de instancia. AWS OpsWorks proporciona una AWS CloudFormation plantilla que puede utilizar para crear ambos. Ejecuta el siguiente AWS CLI comando para crear una AWS CloudFormation pila que cree automáticamente el rol de servicio y el perfil de instancia.

    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

    Cuando AWS CloudFormation termines de crear la pila, busca y copia los ARN de las funciones de servicio de tu cuenta.

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

    En los resultados del comando list-roles, busque entradas de rol de servicio y de perfil de instancia que tengan el siguiente aspecto. Anote los ARN del rol de servicio y el perfil de la instancia y agréguelos a la AWS CloudFormation plantilla que está utilizando para crear la pila de servidores.

    { "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. Cree el AWS OpsWorks for Chef Automate servidor ejecutando de nuevo el create-stack comando.

    • Sustituya stack_name por el nombre de su pila. Este es el nombre de la AWS CloudFormation pila, no de su servidor Chef Automate. El nombre del servidor de Chef Automate es el valor ServerName de su AWS CloudFormation plantilla.

    • Sustituya template por la ruta al archivo de plantilla y la extensión yaml o json por .yaml o .json, según corresponda.

    • Los valores de --parameters corresponden a los EngineAttributesde la CreateServerAPI. En el caso de Chef, los atributos del motor proporcionados por el usuario para crear un servidor son CHEF_AUTOMATE_PIVOTAL_KEY, una clave pública RSA codificada en base64 que se genera con las utilidades que se describen en Requisitos previos y CHEF_AUTOMATE_ADMIN_PASSWORD, una contraseña creada por usted que contiene entre 8 y 32 caracteres. Para obtener más información sobre CHEF_AUTOMATE_ADMIN_PASSWORD, consulte Cree un servidor de Chef Automate utilizando el AWS CLI. Puede proporcionar un puntero al archivo PEM que contenga la clave central como el valor del parámetro PivotalKey, tal y como se muestra en el ejemplo. Si los valores de la plantilla CHEF_AUTOMATE_ADMIN_PASSWORD y no CHEF_AUTOMATE_PIVOTAL_KEY están especificados en ella, debe proporcionarlos en el 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"

    A continuación, se muestra un ejemplo que incluye valores de muestra para los atributos CHEF_AUTOMATE_PIVOTAL_KEY y CHEF_AUTOMATE_ADMIN_PASSWORD. Ejecute un comando similar si no especificó valores para estos atributos en la AWS CloudFormation plantilla.

    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. Cuando finalice la creación de la pila, abra la página de propiedades del nuevo servidor en la AWS OpsWorks for Chef Automate consola y descargue un kit de inicio. La descarga de un nuevo kit de inicio restablece la contraseña del administrador del panel de Chef Automate.

  5. Si el servidor utilizará un dominio personalizado, un certificado y una clave privada, siga los pasos para configurar knife.rb en y (Opcional) Configurar knife para trabajar con un dominio personalizado, a continuación, continúe con el paso 7.

    Si no está utilizando un dominio personalizado, descargue el certificado de la entidad emisora de certificados raíz (CA) de la siguiente ubicación del bucket de Amazon S3: https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-ca-2020-root.pem. Guarde el archivo de certificado en un lugar accesible, pero seguro. Este certificado es necesario para configurar knife.rb en el siguiente paso.

  6. Para utilizar comandos knife en el nuevo servidor, actualice las opciones del archivo de configuración knife.rb de Chef. Se incluye un archivo knife.rb de ejemplo en el kit de inicio. En el ejemplo siguiente se muestra cómo configurar knife.rb en un servidor que no utiliza un dominio personalizado. Si utiliza un dominio personalizado, consulte (Opcional) Configurar knife para trabajar con un dominio personalizado para obtener instrucciones de configuración de knife.

    • Sustituya ENDPOINT por el valor de punto de enlace del servidor. Este valor forma parte del resultado de la operación de creación de la pila. Puede obtener el punto de enlace ejecutando el siguiente comando.

      aws cloudformation describe-stacks --stack-name stack_name
    • Sustituya key_pair_file.pem en la configuración de client_key por el nombre del archivo PEM que contiene el valor de CHEF_AUTOMATE_PIVOTAL_KEY que utilizó para crear el servidor.

      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. Cuando haya finalizado el proceso de creación del servidor, continúe en Configurar el servidor de Chef con el kit de inicio. Si se produce un error al crear la pila, consulte los mensajes de error que se muestran en la consola para ayudar a resolverlos. Para obtener más información sobre la solución de errores en las AWS CloudFormation pilas, consulte Solución de problemas en la Guía del AWS CloudFormation usuario.