Crear un servidor de Chef Automate - 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.

Crear un servidor de Chef Automate

importante

AWS OpsWorks para Chef Automate ya no acepta nuevos clientes. Los clientes actuales no se verán afectados hasta el 5 de mayo de 2024, momento en el que el servicio dejará de estar disponible. Recomendamos que los clientes actuales migren a Chef SaaS o a una solución alternativa. Para obtener más información, consulte Preguntas frecuentes sobre el fin de la vida útil de AWS OpsWorks for Chef Automate.

Puede crear un servidor de Chef a través de la consola de AWS OpsWorks for Chef Automate, o de la AWS CLI.

Creación de un servidor de Chef Automate en la AWS Management Console

  1. Inicie sesión en la AWS Management Console y abra la consola de AWS OpsWorks en https://console.aws.amazon.com/opsworks/.

  2. En la página de inicio de AWS OpsWorks, seleccione Go to OpsWorks for Chef Automate (Ir a OpsWorks for Chef Automate).

    
                     Página de inicio del servicio de
  3. En la página de inicio de AWS OpsWorks for Chef Automate, seleccione Create Chef Automate server (Crear servidor de Chef Automate).

    
                     Página de inicio de servidores de Chef Automate
  4. En la página Set name, region, and type (Establecer nombre, región y tipo), especifique un nombre para su servidor. Los nombres de servidor de Chef pueden tener un máximo de 40 caracteres y solo pueden contener caracteres alfanuméricos y guiones. Seleccione una región compatible y, a continuación, elija un tipo de instancia que admita el número de nodos que desee gestionar. Puede cambiar el tipo de instancia después de haber creado su servidor, si fuera necesario. En este tutorial, vamos a crear un tipo de instancia m5.large en la región de Oeste de EE. UU. (Oregón). Elija Next (Siguiente).

    
                     Página para establecer nombre, región y tipo
  5. En la página Configure server (Configurar servidor), deje la selección predeterminada en la lista desplegable SSH key (Clave SSH), a menos que desee especificar el nombre de un par de claves.

    
                     Página para seleccionar la clave SSH
  6. En Specify server endpoint (Especificar un punto de enlace de servidor), deje el valor predeterminado, Use an automatically-generated endpoint (Usar un punto de enlace generado automáticamente) y, a continuación, elija Next (Siguiente), a menos que desee que su servidor se encuentre en un dominio personalizado propio. Para configurar un dominio personalizado, vaya al paso siguiente.

    
                     Especificar una sección de punto de enlace de servidor
  7. Para utilizar un dominio personalizado, para Specify server endpoint (Especificar punto de enlace de servidor), seleccione Use a custom domain (Utilizar un dominio personalizado) en la lista desplegable.

    
                     Use a custom domain (Utilizar un dominio personalizado)
    1. En Fully qualified domain name (FQDN) (Nombre de dominio completo (FQDN)), especifique un FQDN. Debe poseer el nombre de dominio que desea utilizar.

    2. En SSL certificate (Certificado SSL), pegue todo el certificado completo con formato PEM, empezando por –––--BEGIN CERTIFICATE----- y terminando por –––--END CERTIFICATE-----. El sujeto del certificado SSL debe coincidir con el FQDN especificado en el paso anterior.

    3. En SSL private key (Clave privada SSL), pegue la clave privada RSA completa, empezando por –––--BEGIN RSA PRIVATE KEY----- y terminando por –––--END RSA PRIVATE KEY-----. La clave privada SSL debe coincidir con la clave pública del certificado SSL que especificó en el paso anterior. Elija Next (Siguiente).

  8. En la página Configure advanced settings (Configuración de opciones avanzadas), en el área Network and security (Red y seguridad), elija una VPC, una subred y uno o varios grupos de seguridad. Estos son los requisitos para su VPC:

    • La VPC debe tener al menos una subred pública.

    • La resolución DNS debe estar habilitada.

    • Auto-assign public IP (Asignación automática de IP pública) debe estar habilitada en subredes públicas.

    AWS OpsWorks puede generar un grupo de seguridad, un rol de servicio y un perfil de instancia por usted, si no tiene ya otros que desee utilizar. El servidor puede ser un miembro de varios grupos de seguridad. Tras abandonar esta página, ya no podrá cambiar los ajustes de red y de seguridad del servidor de Chef.

    
                     Redes y seguridad
  9. En la sección System maintenance (Mantenimiento del sistema), defina el día y la hora en los que desee comenzar con el mantenimiento del sistema. Puesto que lo normal es que el servidor quede sin conexión durante las operaciones de mantenimiento del sistema, elija un momento en el horario laboral de baja demanda del servidor. Los nodos conectados introducen un estado pending-server hasta que se completen las tareas de mantenimiento.

    Es preciso contar con un período de mantenimiento. Podrá cambiar el día y la hora de inicio más tarde con la AWS Management Console, la AWS CLI o las API.

    
                     Mantenimiento del sistema
  10. Configure copias de seguridad. Las copias de seguridad automáticas están habilitadas de forma predeterminada. Establezca una frecuencia y una hora en la que se prefiera iniciar las copias de seguridad automáticas y establezca el número de copias de seguridad generadas que almacenar en . Se conservarán un máximo de 30 copias de seguridad; cuando se alcance el máximo, AWS OpsWorks for Chef Automate eliminará las copias de seguridad más antiguas para dejar espacio a otros nuevos.

    
                     Copias de seguridad automáticas
  11. (Opcional) En Tags (Etiquetas), agregue etiquetas al servidor y recursos relacionados, como la instancia EC2, la dirección IP elástica, el grupo de seguridad, el bucket de S3 y las copias de seguridad. Para obtener más información acerca del etiquetado de un servidor de AWS OpsWorks for Chef Automate, consulte Uso de etiquetas en recursos de AWS OpsWorks for Chef Automate.

  12. Cuando haya terminado con la configuración avanzada, elija Next (Siguiente).

  13. En la página Review (Revisar), revise las opciones seleccionadas. Cuando esté listo para crear el servidor, elija Launch (Lanzar).

    Mientras espera a que AWS OpsWorks cree su servidor de Chef, vaya a Configurar el servidor de Chef con el kit de inicio y descargue el kit de inicio y las credenciales del panel de Chef Automate. No espere hasta que el servidor esté online para descargarlos.

    Cuando se termine de crear el servidor, el servidor de Chef estará disponible en la página de inicio de AWS OpsWorks for Chef Automate, con el estado online. 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-random.region.opsworks-cm.io.

Creación de un servidor de Chef Automate mediante la AWS CLI

La creación de un servidor de AWS OpsWorks for Chef Automate mediante la ejecución de comandos de la AWS CLI difiere de la creación de un servidor en la consola. En la consola, AWS OpsWorks crea un rol de servicio y un grupo de seguridad automáticamente si no especifica que desea utilizar alguno de los ya existentes. En la AWS CLI, AWS OpsWorks puede crear un grupo de seguridad automáticamente si no se especifica uno, pero no crea un rol de servicio automáticamente; es necesario proporcionar un ARN de rol de servicio como parte del comando create-server. En la consola, mientras AWS OpsWorks crea el servidor de Chef Automate, se deberán descargar el kit de inicio de Chef Automate y las credenciales de inicio de sesión para el panel de Chef Automate. Dado que no puede hacer esto al crear un servidor de AWS OpsWorks for Chef Automate mediante la AWS CLI, deberá usar una utilidad de procesamiento de JSON para obtener las credenciales de inicio de sesión y el kit de inicio de los resultados del comando create-server una vez que el nuevo servidor de AWS OpsWorks for Chef Automate esté online. Si lo prefiere, puede generar un nuevo conjunto de credenciales de inicio de sesión y un nuevo kit de inicio en la consola una vez que el nuevo servidor de AWS OpsWorks for Chef Automate esté online.

Si el equipo local aún no está ejecutando la AWS CLI, descargue e instale la AWS CLI siguiendo las instrucciones de instalación que aparecen en 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-server. Para obtener más información sobre los parámetros de create-server, consulte create-server en la Referencia de la AWS CLI.

  1. Asegúrese de completar los requisitos previos, especialmente Configurar una VPC, o de que tiene una VPC existente que desea utilizar. Para crear un servidor de Chef Automate, necesita un ID de subred.

  2. Si lo desea, puede generar una clave central de Chef mediante OpenSSL y guardar dicha clave en un archivo apropiado y seguro de su equipo local. La clave central se genera automáticamente como parte del proceso de creación del servidor si no se proporciona una en el comando create-server. Si desea omitir este paso, puede obtener la clave central de Chef Automate a partir de los resultados del comando create-server. Si elige generar la clave central utilizando los siguientes comandos, asegúrese de incluir el parámetro -pubout, ya que la clave central de Chef Automate es la mitad pública del par de claves de RSA. Para obtener más información, consulte el paso 6.

    umask 077 openssl genrsa -out "pivotal" 2048 openssl rsa -in "pivotal" -pubout
  3. Cree un rol de servicio y un perfil de instancia. AWS OpsWorks proporciona una plantilla de AWS CloudFormation que puede utilizar para crear ambas cosas. Ejecute el siguiente comando de la AWS CLI para crear una pila de AWS CloudFormation que genere el rol de servicio y el perfil de instancia automáticamente.

    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
  4. Después de que AWS CloudFormation termine de crear la pila, busque y copie los ARN de los roles de servicio en su cuenta.

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

    En los resultados del comando list-roles, busque entradas de ARN del rol de servicio que tengan el siguiente aspecto. Anote los ARN de rol de servicio. Necesitará estos valores cuando cree el servidor de Chef Automate.

    { "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" }
  5. Busque y copie los ARN de perfiles de instancia de su cuenta.

    aws iam list-instance-profiles --no-paginate

    En los resultados del comando list-instance-profiles, busque entradas de ARN del perfil de instancia que tengan el siguiente aspecto. Anote los ARN de perfil de instancia. Necesitará estos valores cuando cree el servidor de Chef Automate.

    { "Path": "/", "InstanceProfileName": "aws-opsworks-cm-ec2-role", "InstanceProfileId": "EXAMPLEDC6UR3LTUW7VHK", "Arn": "arn:aws:iam::123456789012:instance-profile/aws-opsworks-cm-ec2-role", "CreateDate": "2017-01-05T20:42:20Z", "Roles": [ { "Path": "/service-role/", "RoleName": "aws-opsworks-cm-ec2-role", "RoleId": "EXAMPLEE4STNUQG6R22HC", "Arn": "arn:aws:iam::123456789012:role/service-role/aws-opsworks-cm-ec2-role", "CreateDate": "2017-01-05T20:42:20Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } ] },
  6. Cree el servidor de AWS OpsWorks for Chef Automate mediante la ejecución del comando create-server.

    • El valor de --engine es ChefAutomate, --engine-model es Single y --engine-version es 12.

    • El nombre del servidor debe ser único en la cuenta de AWS y en cada región. Los nombres de servidor deben comenzar por una letra, y pueden contener letras, números o guiones (-) hasta un máximo de 40 caracteres.

    • Utilice los ARN del perfil de instancia y del rol de servicio que ha copiado en los pasos 4 y 5.

    • Los tipos de instancia válidos son m5.large, r5.xlarge o r5.2xlarge. Para obtener más información sobre las especificaciones de estos tipos de instancia, consulte Tipos de instancia en la Guía del usuario de .

    • El parámetro --engine-attributes es opcional; si no especifica uno o ambos valores, el proceso de creación del servidor los genera automáticamente. Si añade --engine-attributes, especifique el valor de CHEF_AUTOMATE_PIVOTAL_KEY que ha generado en el paso 2, el valor de CHEF_AUTOMATE_ADMIN_PASSWORD o ambos.

      Si no establece un valor para CHEF_AUTOMATE_ADMIN_PASSWORD, se genera una contraseña que se devuelve como parte de la respuesta de create-server. También puede descargar de nuevo el kit de inicio en la consola, lo que vuelve a generar esta contraseña. La longitud de la contraseña está comprendida entre 8 y 32 caracteres. La contraseña puede contener letras, espacios, números y 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.

    • El uso de un par de claves SSH es opcional, pero puede ayudarle a conectarse al servidor de Chef Automate si necesita restablecer la contraseña de administrador del panel de Chef Automate. Para obtener más información sobre la creación de un par de claves SSH, consulte Pares de claves de Amazon EC2 en la Guía del usuario de Amazon EC2.

    • Para utilizar un dominio personalizado, agregue los siguientes parámetros al comando. De lo contrario, el proceso de creación de servidor Chef Automate genera automáticamente un punto de enlace. Los tres parámetros son necesarios para configurar un dominio personalizado. Para obtener información acerca de los requisitos adicionales para utilizar estos parámetros, consulte CreateServer en la Referencia de API CM de AWS OpsWorks.

      • --custom-domain: un punto de enlace público opcional de un servidor, como https://aws.my-company.com.

      • --custom-certificate: un certificado HTTPS con formato PEM. El valor puede ser un solo certificado autofirmado o una cadena de certificados.

      • --custom-private-key: una clave privada en formato PEM para conectarse al servidor mediante HTTPS. La clave privada no debe cifrarse; no se puede proteger mediante una contraseña o una frase de contraseña.

    • Es necesario un mantenimiento del sistema semanal. Los valores válidos deben especificarse en el siguiente formato: DDD:HH:MM. La hora debe especificarse de acuerdo con la hora universal coordinada (UTC). Si no especifica un valor para --preferred-maintenance-window, el valor predeterminado es un periodo aleatorio de una hora el martes, miércoles o viernes.

    • Los valores válidos para --preferred-backup-window se deben especificar en uno de los siguientes formatos: HH:MM para las copias de seguridad diarias o DDD:HH:MM para las copias de seguridad semanales. La hora debe especificarse en horario UTC. El valor predeterminado es una hora de inicio diaria aleatoria. Para cancelar las copias de seguridad automáticas, añada el parámetro --disable-automated-backup en su lugar.

    • Para --security-group-ids, introduzca uno o varios ID de grupos de seguridad, separados por un espacio.

    • Para --subnet-ids, introduzca un ID de subred.

    aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" --server-name "server_name" --instance-profile-arn "instance_profile_ARN" --instance-type "instance_type" --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"pivotal_key","CHEF_AUTOMATE_ADMIN_PASSWORD":"password"}' --key-pair "key_pair_name" --preferred-maintenance-window "ddd:hh:mm" --preferred-backup-window "ddd:hh:mm" --security-group-ids security_group_id1 security_group_id2 --service-role-arn "service_role_ARN" --subnet-ids subnet_ID

    A continuación, se muestra un ejemplo.

    aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" --server-name "automate-06" --instance-profile-arn "arn:aws:iam::12345678912:instance-profile/aws-opsworks-cm-ec2-role" --instance-type "m5.large" --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"MZZE...Wobg","CHEF_AUTOMATE_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' --key-pair "amazon-test" --preferred-maintenance-window "Mon:08:00" --preferred-backup-window "Sun:02:00" --security-group-ids sg-b00000001 sg-b0000008 --service-role-arn "arn:aws:iam::12345678912:role/service-role/aws-opsworks-cm-service-role" --subnet-ids subnet-300aaa00

    En el ejemplo siguiente se crea un servidor de Chef Automate que utiliza un dominio personalizado.

    aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" \ --server-name "my-custom-domain-server" \ --instance-profile-arn "arn:aws:iam::12345678912:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.large" \ --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"MZZE...Wobg","CHEF_AUTOMATE_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' \ --custom-domain "my-chef-automate-server.my-corp.com" \ --custom-certificate "-----BEGIN CERTIFICATE----- EXAMPLEqEXAMPLE== -----END CERTIFICATE-----" \ --custom-private-key "-----BEGIN RSA PRIVATE KEY----- EXAMPLEqEXAMPLE= -----END RSA PRIVATE KEY-----" \ --key-pair "amazon-test" \ --preferred-maintenance-window "Mon:08:00" \ --preferred-backup-window "Sun:02:00" \ --security-group-ids sg-b00000001 sg-b0000008 \ --service-role-arn "arn:aws:iam::12345678912:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-300aaa00

    En el ejemplo siguiente se crea un servidor de Chef Automate que agrega dos etiquetas: Stage: Production y Department: Marketing. Para obtener más información acerca de cómo agregar y administrar etiquetas en los servidores de AWS OpsWorks for Chef Automate, consulte Uso de etiquetas en recursos de AWS OpsWorks for Chef Automate en esta guía.

    aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" \ --server-name "my-test-chef-server" \ --instance-profile-arn "arn:aws:iam::12345678912:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.large" \ --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"MZZE...Wobg","CHEF_AUTOMATE_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' \ --key-pair "amazon-test" \ --preferred-maintenance-window "Mon:08:00" \ --preferred-backup-window "Sun:02:00" \ --security-group-ids sg-b00000001 sg-b0000008 \ --service-role-arn "arn:aws:iam::12345678912:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-300aaa00 \ --tags [{\"Key\":\"Stage\",\"Value\":\"Production\"},{\"Key\":\"Department\",\"Value\":\"Marketing\"}]
  7. AWS OpsWorks for Chef Automate tarda alrededor de 15 minutos en crear un servidor nuevo. No descarte la salida del comando create-server ni cierre la sesión del shell, ya que la salida puede contener información importante que no se volverá a mostrar. Para obtener las contraseñas y el kit de inicio de los resultados de create-server, continúe en el siguiente paso.

    Si está utilizando un dominio personalizado con el servidor, en la salida del comando create-server, copie el valor del atributo Endpoint. A continuación, se muestra un ejemplo.

    "Endpoint": "automate-07-exampleexample.opsworks-cm.us-east-1.amazonaws.com"
  8. Si ha optado por que AWS OpsWorks for Chef Automate genere una clave y una contraseña automáticamente, puede extraerlas en formatos utilizables de los resultados de create-server mediante el uso de un procesador de JSON, como jq. Después de instalar jq, puede ejecutar los siguientes comandos para extraer la clave central, la contraseña del administrador del panel de Chef Automate y el kit de inicio. Si no ha proporcionado su propia clave central y contraseña en el paso 4, asegúrese de guardar la clave central y la contraseña de administrador extraídas en lugares cómodos y seguros.

    #Get the Chef password: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_AUTOMATE_ADMIN_PASSWORD") | .Value' #Get the Chef Pivotal Key: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_AUTOMATE_PIVOTAL_KEY") | .Value' #Get the Chef Starter Kit: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_STARTER_KIT") | .Value' | base64 -D > starterkit.zip
  9. Opcionalmente, si no ha extraído el kit de inicio de los resultados del comando create-server, puede descargar un kit de inicio nuevo desde la página de propiedades del servidor en la consola de AWS OpsWorks for Chef Automate. La descarga de un nuevo kit de inicio restablece la contraseña del administrador del panel de Chef Automate.

  10. Si no está utilizando un dominio personalizado, vaya al paso siguiente. Si utiliza un dominio personalizado con el servidor, cree una entrada CNAME en la herramienta de administración DNS de su empresa para dirigir el dominio personalizado al punto de enlace de AWS OpsWorks for Chef Automate que copió en el paso 7. No puede acceder a un servidor con un dominio personalizado ni iniciar sesión en él hasta que complete este paso.

  11. Cuando haya finalizado el proceso de creación del servidor, continúe en Configurar el servidor de Chef con el kit de inicio.