

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.

# Añada nodos automáticamente en AWS OpsWorks for Chef Automate
<a name="opscm-unattend-assoc"></a>

**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](https://repost.aws/) o a través de Premium [AWS Support](https://aws.amazon.com/support).

En este tema se describe cómo añadir automáticamente los nodos de Amazon Elastic Compute Cloud (Amazon EC2) a su servidor Chef. En el código incluido en el [Starter Kit](opscm-starterkit.md), se muestra cómo se agregan nodos automáticamente mediante el método desatendido. El método recomendado para establecer una asociación desatendida (o automática) de nuevos nodos consiste en configurar el [libro de recetas Client de Chef](https://supermarket.chef.io/cookbooks/chef-client). Puede utilizar el script `userdata` del Starter Kit y cambiar la sección `run_list` del script `userdata` o su `Policyfile.rb` con los libros de recetas que desee aplicar a los nodos. Antes de ejecutar el agente `chef-client`, cargue el libro de recetas del cliente de Chef en el servidor y, a continuación, instale el agente `chef-client` en modo de servicio con un rol HTTPD, por ejemplo, tal como se muestra en el comando de ejemplo siguiente. 

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

Para comunicarse con el servidor de Chef, el software del agente `chef-client` debe obtener acceso a la clave pública del nodo cliente. Puedes generar un key pair de claves público-privadas en Amazon y EC2, a continuación, pasar la clave pública a la llamada a la OpsWorks `associate-node` API con el nombre del nodo. El script que se incluye en el Starter Kit recopila automáticamente el nombre de la organización, el nombre del servidor y el punto de enlace del servidor. De este modo, garantizará que el nodo está asociado con el servidor de Chef y que el agente de software `chef-client` que se ejecuta en el nodo puede comunicarse con el servidor si coincide la clave privada.

La versión mínima de `chef-client` que se admite en los nodos asociados a un servidor de AWS OpsWorks for Chef Automate es la 13.*x*. Recomendamos ejecutar la `chef-client` versión estable más reciente.

Para obtener información sobre cómo desasociar un nodo, consulta [Desasociar un nodo de un servidor AWS OpsWorks for Chef Automate](opscm-disassociate-node.md) esta guía y la documentación [https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DisassociateNode.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DisassociateNode.html)de la AWS OpsWorks for Chef Automate API.

**Topics**
+ [Sistemas operativos compatibles](#w2ab1b9c28c17c15c17)
+ [Paso 1: Crear un rol de IAM para usarlo como perfil de instancia](#opscm-create-instance-profile)
+ [Paso 2: Instalar el libro de recetas del cliente Chef](#w2ab1b9c28c17c15c21)
+ [Paso 3: Crear instancias usando un script de asociación desatendida](#opscm-unattend-script)
+ [Otros métodos para automatizar la repetición de las ejecuciones de `chef-client`](#w2ab1b9c28c17c15c25)
+ [Temas relacionados](#opscm-unattend-assoc-related)

## Sistemas operativos compatibles
<a name="w2ab1b9c28c17c15c17"></a>

Para obtener la lista de los sistemas operativos compatibles con los nodos, consulte el [sitio web de Chef](https://docs.chef.io/platforms.html).

## Paso 1: Crear un rol de IAM para usarlo como perfil de instancia
<a name="opscm-create-instance-profile"></a>

Cree un rol AWS Identity and Access Management (de IAM) para usarlo como perfil de EC2 instancia y adjunte la siguiente política al rol de IAM. Esta política permite que la API AWS OpsWorks for Chef Automate (`opsworks-cm`) se comunique con la EC2 instancia durante el registro del nodo. Para obtener más información sobre los perfiles de instancia, consulta [Uso de perfiles de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) en la EC2 documentación de Amazon. Para obtener información sobre cómo crear un rol de IAM, consulte [Creación de un rol de IAM en la consola en la](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#create-iam-role-console) documentación de Amazon EC2 .

------
#### [ JSON ]

****  

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

------

## Paso 2: Instalar el libro de recetas del cliente Chef
<a name="w2ab1b9c28c17c15c21"></a>

Si aún no lo ha hecho, siga los pasos que se indican en [(Procedimiento alternativo) Uso de Berkshelf para obtener libros de recetas de un origen remoto](opscm-starterkit.md#opscm-berkshelf) para asegurarse de que el archivo Berksfile o el archivo `Policyfile.rb` hace referencia al libro de recetas Client de Chef e instala dicho libro.

## Paso 3: Crear instancias usando un script de asociación desatendida
<a name="opscm-unattend-script"></a>

1. Para crear EC2 instancias, puede copiar el `userdata` script del [kit de inicio](opscm-starterkit.md) a la `userdata` sección de instrucciones de la EC2 instancia, a las configuraciones de lanzamiento grupal de Amazon EC2 Auto Scaling o a una CloudFormation plantilla. Para obtener más información sobre cómo añadir scripts a los datos de usuario, consulte [Ejecución de comandos en una instancia de Linux en el momento del lanzamiento](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) en la EC2 documentación de Amazon.

   Este script ejecuta el comando `opsworks-cm`[ de la `associate-node`API](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_AssociateNode.html) para asociar un nuevo nodo con el servidor de Chef.

   De forma predeterminada, el nombre del nuevo nodo registrado es el ID de la instancia, pero puede cambiarlo modificando el valor de la variable `NODE_NAME` en el script `userdata`. Dado que cambiar el nombre de la organización en la interfaz de usuario de la consola de Chef no es posible por el momento, deje `CHEF_AUTOMATE_ORGANIZATION` establecido en `default`.

1. Siga el procedimiento de [lanzamiento de una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html) en la EC2 documentación, con las modificaciones aquí. En el asistente de lanzamiento de EC2 instancias, elija una AMI de Amazon Linux.

1. En la página **Configure Instance Details (Configuración de los detalles de la instancia)**, seleccione la función que creó en [Paso 1: Crear un rol de IAM para usarlo como perfil de instancia](#opscm-create-instance-profile) como su función de IAM.

1. En el área **Advanced Details (Detalles avanzados)**, cargue el script `userdata.sh` que creó con anterioridad en este procedimiento.

1. No se requieren cambios en la página **Add Storage (Añadir almacenamiento)**. Acceda a **Add Tags (Añadir etiquetas)**.

1. En la página **Configure Security Group (Configurar grupo de seguridad)**, elija **Add Rule (Añadir regla)** y, a continuación, elija el tipo **HTTP** para abrir los puertos número 443 y 80 del servidor web Apache de este ejemplo.

1. Elija **Review and Launch (Revisar y lanzar)** y, a continuación, elija **Launch (Lanzar)**. Cuando el nuevo nodo se inicia, aplica las configuraciones especificadas por las recetas que se hayan especificado en el parámetro `RUN_LIST`.

1. Opcional: Si ha añadido el libro de recetas `nginx` a la lista de ejecución, al abrir la página web vinculada a la DNS pública del nuevo nodo, aparecerá un sitio web hospedado por el servidor web nginx.

## Otros métodos para automatizar la repetición de las ejecuciones de `chef-client`
<a name="w2ab1b9c28c17c15c25"></a>

Aunque es más difícil de conseguir y no se recomienda, puede ejecutar el script de este tema únicamente como parte de los datos de usuario de una instancia independiente, utilizar una CloudFormation plantilla para añadirlo a los datos de usuario de la nueva instancia, configurar un `cron` trabajo para ejecutar el script con regularidad o ejecutarlo `chef-client` dentro de un servicio. No obstante, recomendamos el método del libro de recetas Client de Chef, ya que las demás técnicas de automatización presentan las desventajas siguientes:

Para obtener una lista completa de los parámetros que puede proporcionar a `chef-client`, consulte la [documentación de Chef](https://docs.chef.io/ctl_chef_client.html).

## Temas relacionados
<a name="opscm-unattend-assoc-related"></a>

Las siguientes publicaciones de AWS blog ofrecen más información sobre la asociación automática de nodos con su servidor Chef Automate, mediante grupos de Auto Scaling o dentro de varias cuentas.
+ [Uso de AWS OpsWorks para que Chef Automate gestione EC2 instancias con Auto Scaling](https://aws.amazon.com/blogs/mt/using-aws-opsworks-for-chef-automate-to-manage-ec2-instances-with-auto-scaling/)
+ [OpsWorks para Chef Automate: arranca automáticamente los nodos de diferentes cuentas](https://aws.amazon.com/blogs/mt/opsworks-for-chef-automate-automatically-bootstrapping-nodes-in-different-accounts/)