

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.

# Configurar el servidor de Chef con el kit de inicio
<a name="opscm-starterkit"></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).

Mientras que el proceso de creación del servidor de Chef sigue en curso, abra su página de propiedades en la consola de AWS OpsWorks for Chef Automate . La primera vez que trabaje con un servidor de Chef nuevo, la página de propiedades le pedirá que descargue dos elementos necesarios. Descargue estos elementos antes de que su servidor de Chef esté online; los botones de descarga no estarán disponibles cuando el servidor nuevo esté online.

![\[AWS OpsWorks for Chef Automate nueva página de propiedades del servidor\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/images/opscm_serverpropsdownload.png)

+ **Sign-in credentials for the Chef server (Credenciales de inicio de sesión para el servidor de Chef).** Utilizará estas credenciales para iniciar sesión en el panel de control de Chef Automate, donde trabajará con las funciones premium de Chef Automate, como los escaneos de flujo de trabajo y cumplimiento. OpsWorks no guarda estas credenciales; esta es la última vez que están disponibles para su visualización y descarga. Si es necesario, podrá cambiar la contraseña con estas credenciales después de iniciar sesión.
+ **Starter Kit (Kit de inicio).** El kit de inicio contiene un archivo README con ejemplos, un archivo de configuración `knife.rb` y una clave privada para el usuario principal o central. Cada vez que descarga el kit de inicio se genera un par de claves nuevo (y se reestablece la clave antigua).

Además de las credenciales que solo funcionan con el nuevo servidor, el archivo.zip del Starter Kit incluye un ejemplo sencillo de un repositorio de Chef que funciona con cualquier AWS OpsWorks for Chef Automate servidor. En el repositorio de Chef puede almacenar los libros de recetas, roles, archivos de configuración y otros elementos para administrar nodos con Chef. Le recomendamos que almacene este repositorio en un sistema de control de versiones, como, por ejemplo, Git, y lo trate como código fuente. Para obtener más información y ver ejemplos de cómo configurar un repositorio de Chef con seguimiento en Git, consulte [About the chef-repo](https://docs.chef.io/chef_repo.html) en la documentación de Chef.

## Requisitos previos
<a name="finish-server-prereqs"></a>

1. Aunque el proceso de creación del servidor siga en curso, descargue las credenciales de inicio de sesión para el servidor de Chef y guárdelas en una ubicación cómoda pero segura.

1. Descargue el kit de inicio y descomprima su archivo.zip en el directorio de su espacio de trabajo. No comparta la clave privada del kit de inicio. Si otros usuarios administran del servidor de Chef, añádalos como administradores en el panel de Chef Automate en otro momento.

1. Descargue e instale la [estación de trabajo de Chef](https://downloads.chef.io/products/workstation) (antes conocido como Kit de desarollo de Chef o Chef DK) en el equipo que vaya a utilizar para administrar los nodos y el servidor de Chef. La [https://docs.chef.io/knife.html](https://docs.chef.io/knife.html) utilidad forma parte de Chef Workstation. Si necesita ver las instrucciones, consulte [Instalar Chef DK](https://docs.chef.io/workstation/install_workstation/) en el sitio web de Chef.

## Explorar el contenido del Starter Kit
<a name="w2ab1b9c28c15c15"></a>

El Starter Kit contiene lo siguiente:
+ `cookbooks/`: un directorio para los libros de recetas que se van a crear. La carpeta `cookbooks/` contiene el `opsworks-webserver` libro de cocina, un libro de cocina envoltorio que depende del libro de `nginx` cocina del sitio web [Chef Supermarket](https://supermarket.chef.io/cookbooks/nginx). `Policyfile.rb` por defecto, Chef supermarket como fuente secundaria si las dependencias del libro de cocina no están disponibles en el `cookbooks/` directorio.
+ `Policyfile.rb`: archivo de política basado en Ruby que define los libros de recetas, las dependencias y los atributos que van a constituir la política de los nodos.
+ `userdata.sh` y `userdata.ps1`: puede utilizar los archivos de datos del usuario para asociar los nodos automáticamente después de lanzar el servidor de Chef Automate. `userdata.sh` sirve para arrancar los nodos basados en Linux y `userdata.ps1`, para los nodos basados en Windows.
+ `Berksfile`: puede utilizar este archivo si prefiere utilizar comandos de `berks` y Berkshelf para cargar los libros de recetas y sus dependencias. En este tutorial, vamos a utilizar comandos de Chef y `Policyfile.rb` para cargar libros de recetas, dependencias y atributos.
+ `README.md`, archivo basado en Markdown que describe cómo se utiliza el Starter Kit para configurar el servidor de Chef Automate por primera vez.
+ `.chef` es un directorio oculto que contiene un archivo de configuración knife (`knife.rb`) y un archivo de claves de autenticación secretas (.pem).
  + `.chef/knife.rb`: archivo de configuración knife (`knife.rb`). El [https://docs.chef.io/config_rb_knife.html](https://docs.chef.io/config_rb_knife.html)archivo está configurado para que las operaciones de las [https://docs.chef.io/knife.html](https://docs.chef.io/knife.html)herramientas de Chef se ejecuten en el AWS OpsWorks for Chef Automate servidor.
  + `.chef/ca_certs/opsworks-cm-ca-2020-root.pem`; clave privada SSL firmada por una entidad de certificación (CA) y proporcionada por OpsWorks. Esta clave permite al servidor identificarse ante el agente cliente de Chef Infra en los nodos que administra el servidor.

## Configuración del repositorio de Chef
<a name="w2ab1b9c28c15c17"></a>

Los repositorios de Chef contienen varios directorios. Cada directorio del Starter Kit contiene un archivo README que describe la finalidad del directorio y cómo utilizarlo para administrar los sistemas con Chef. Hay dos maneras de instalar libros de recetas en el servidor de Chef: ejecutar comandos `knife` o ejecutar un comando de Chef para cargar un archivo de política (`Policyfile.rb`) en el servidor donde se descargan e instalan los libros de recetas especificados. En este tutorial, se van a utilizar comandos de Chef y el archivo `Policyfile.rb` para instalar los libros de recetas en el servidor.

1. Cree un directorio en el equipo local para guardar los libros de recetas; por ejemplo, `chef-repo`. Tras añadir libros de cocina, funciones y otros archivos a este repositorio, le recomendamos que los cargue o almacene en un sistema seguro y con control de versiones, como CodeCommit Git o Amazon S3.

1. En el directorio `chef-repo`, cree los siguientes directorios:
   + `cookbooks/` - Almacena libros de cocina.
   + `roles/`: almacena roles en formato `.rb` o `.json`.
   + `environments/`: almacena entornos en formato `.rb` o `.json`.

## Uso de Policyfile.rb para obtener libros de recetas de un origen remoto
<a name="install-cookbooks-policyfile"></a>

En esta sección, va a editar `Policyfile.rb` para especificar los libros de recetas. Después, ejecutará un comando de Chef para cargar el archivo en el servidor e instalar los libros de recetas.

1. Consulte el archivo `Policyfile.rb` del Starter Kit. De forma predeterminada, `Policyfile.rb` contiene el libro de recetas encapsulador de `opsworks-webserver`, que depende del libro de recetas [https://supermarket.chef.io/cookbooks/nginx](https://supermarket.chef.io/cookbooks/nginx) disponible en el sitio web de Chef Supermarket. El libro de recetas `nginx` instala y configura un servidor web en los nodos administrados. También se especifica el libro de recetas de `chef-client`, que instala el agente de cliente de Chef Infra en los nodos administrados.

   `Policyfile.rb` también apunta al libro de recetas opcional Audit de Chef, que se puede utilizar para configurar los análisis de conformidad de los nodos. Para ver más información acerca de cómo configurar los análisis de conformidad y obtener resultados de conformidad sobre los nodos administrados, consulte [Escaneos de conformidad en AWS OpsWorks for Chef Automate](opscm-chefcompliance.md). Si no desea configurar la auditoría y los análisis de conformidad en este momento, elimine `'audit'` de la sección `run_list` y no especifique los atributos del libro de recetas `audit` al final del archivo.

   ```
   # Policyfile.rb - Describe how you want Chef to build your system.
   #                 
   # For more information about the Policyfile feature, visit                                             
   # https://docs.chef.io/policyfile.html                                                                 
   
   # A name that describes what the system you're building with Chef does.                                
   name 'opsworks-demo-webserver'
   
   # The cookbooks directory is the preferred source for external cookbooks                               
   default_source :chef_repo, "cookbooks/" do |s|                                                         
     s.preferred_for "nginx", "windows", "chef-client", "yum-epel", "seven_zip",  
                     "build-essential", "mingw", "ohai", "audit", "logrotate", "cron"                     
   end
   # Alternative source 
   default_source :supermarket                                                                            
   
   # run_list: chef-client runs these recipes in the order specified.                                 
   run_list  'chef-client',
             'opsworks-webserver',
             'audit'
   # add 'ssh-hardening' to your runlist to fix compliance issues detected by the ssh-baseline profile    
   
   # Specify a custom source for a single cookbook:                                                       
   cookbook 'opsworks-webserver', path: 'cookbooks/opsworks-webserver'                               
   
   # Policyfile defined attributes
   
   # Define audit cookbook attributes
   default["opsworks-demo"]["audit"]["reporter"] = "chef-server-automate"
   default["opsworks-demo"]["audit"]["profiles"] = [
     {
       "name": "DevSec SSH Baseline",
       "compliance": "admin/ssh-baseline"
     }
   ]
   ```

   A continuación, se muestra un ejemplo de `Policyfile.rb` sin los atributos ni el libro de recetas `audit` por si desea configurar únicamente el servidor web `nginx` en este momento.

   ```
   # Policyfile.rb - Describe how you want Chef to build your system.
   #
   # For more information on the Policyfile feature, visit
   # https://docs.chef.io/policyfile.html
   
   # A name that describes what the system you're building with Chef does.
   name 'opsworks-demo-webserver'
   
   # Where to find external cookbooks:
   default_source :supermarket
   
   # run_list: chef-client will run these recipes in the order specified.
   run_list  'chef-client',
             'opsworks-webserver'
   
   # Specify a custom source for a single cookbook:
   cookbook 'opsworks-webserver', path: 'cookbooks/opsworks-webserver'
   ```

   Si realiza cambios en `Policyfile.rb`, no olvide guardar el archivo.

1. Descargue e instale los libros de recetas definidos en `Policyfile.rb`.

   ```
   chef install
   ```

   Todos los libros de recetas cuentan con varias versiones en el archivo `metadata.rb`. Cada vez que modifique un libro de recetas, debe aumentar la versión del libro de recetas que se encuentra en `metadata.rb`.

1. Si ha decidido configurar los análisis de conformidad y mantener la información del libro de recetas `audit` en el archivo de política, inserte la política `opsworks-demo` en el servidor.

   ```
   chef push opsworks-demo
   ```

1. Si ha realizado el paso 3, compruebe la instalación de la política. Ejecute el comando siguiente.

   ```
   chef show-policy
   ```

   Los resultados deberían ser similares a los siguientes:

   ```
   opsworks-demo-webserver 
   ======================= 
   * opsworks-demo:  ec0fe46314
   ```

1. Ahora, todo está listo para añadir o arrancar nodos en el servidor de Chef Automate. Si desea automatizar la asociación de los nodos, siga los pasos que se indican en [Añada nodos automáticamente en AWS OpsWorks for Chef Automate](opscm-unattend-assoc.md). Si desea añadir los nodos de uno en uno, siga los pasos que se indican en [Añada nodos de forma individual](opscm-addnodes-individually.md). 

## (Procedimiento alternativo) Uso de Berkshelf para obtener libros de recetas de un origen remoto
<a name="opscm-berkshelf"></a>

Berkshelf es una herramienta para administrar libros de recetas y sus dependencias. Si prefiere utilizar Berkshelf en lugar de `Policyfile.rb` para instalar libros de recetas en el almacenamiento local, utilice el procedimiento de esta sección en lugar del indicado en la sección anterior. Puede especificar los libros de recetas y las versiones que desea utilizar con el servidor de Chef y cargarlos. El Starter Kit contiene un archivo llamado `Berksfile` que puede utilizar para obtener una lista de los libros de recetas.

1. Para comenzar, añada el libro de recetas `chef-client` en el Berksfile incluido. El libro de recetas `chef-client` configura el software del agente cliente de Chef Infra en cada uno de los nodos que se conectan al servidor de Chef Automate. Para obtener más información acerca de este libro de recetas, consulte [Chef Client Cookbook](https://supermarket.chef.io/cookbooks/chef-client) en Chef Supermarket.

1. Con un editor de texto, añada al Berksfile otro libro de recetas que instale una aplicación de servidor web; por ejemplo, el libro de recetas `apache2`, que instala el servidor web Apache. El Berksfile debería parecerse a lo siguiente.

   ```
   source 'https://supermarket.chef.io'
   cookbook 'chef-client'
   cookbook 'apache2'
   ```

1. Descargue e instale los libros de recetas en el equipo local.

   ```
   berks install
   ```

1. Cargue el libro de recetas en el servidor de Chef.

   En Linux, ejecute lo siguiente.

   ```
   SSL_CERT_FILE='.chef/ca_certs/opsworks-cm-ca-2020-root.pem' berks upload
   ```

   En Windows, ejecute el siguiente comando de Chef Workstation en una sesión. PowerShell Antes de ejecutar el comando, asegúrese de configurar la política de ejecución en PowerShell . `RemoteSigned` `chef shell-init`Añádalo para que los comandos de la utilidad Chef Workstation estén disponibles para PowerShell.

   ```
   $env:SSL_CERT_FILE="ca_certs\opsworks-cm-ca-2020-root.pem"
   chef shell-init berks upload
   Remove-Item Env:\SSL_CERT_FILE
   ```

1. Compruebe la instalación del libro de recetas. Para ello, consulte la lista de los libros de recetas que están disponibles actualmente en el servidor de Chef Automate. Puede hacerlo ejecutando el siguiente comando `knife`:

   Está listo para agregar nodos para administrarlos con el AWS OpsWorks for Chef Automate servidor.

   ```
   knife cookbook list
   ```

## (Opcional) Configurar `knife` para trabajar con un dominio personalizado
<a name="opscm-starterkit-customdomain"></a>

Si su servidor Chef Automate usa un dominio personalizado, es posible que deba agregar el certificado PEM de la CA raíz que firmó la cadena de certificados de su servidor, o el certificado PEM de su servidor si el certificado está autofirmado. `ca_certs`es un subdirectorio `chef/` que contiene las autoridades de certificación (CAs) en las que confía la utilidad Chef. `knife`

Puede omitir esta sección si no está utilizando un dominio personalizado o si su certificado personalizado está firmado por una CA raíz de confianza de su sistema operativo. De lo contrario, configure `knife` para que confíe en su certificado SSL del servidor de Chef Automate, como se describe en los pasos siguientes.

1. Ejecute el comando siguiente.

   ```
   knife ssl check
   ```

   Si los resultados son similares a los siguientes, omita el resto de este procedimiento y continúe con [Añadir nodos para el servidor de Chef que se va a administrar](opscm-addnodes.md).

   ```
   Connecting to host my-chef-automate-server.my-corp.com:443
             Successfully verified certificates from 'my-chef-automate-server.my-corp.com'
   ```

   Si aparece un mensaje de error similar al siguiente, pase al siguiente paso.

   ```
   Connecting to host my-chef-automate-server.my-corp.com:443
             ERROR: The SSL certificate of my-chef-automate-server.my-corp.com could not be verified.
             ...
   ```

1. Ejecute `knife ssl fetch` para confiar en los certificados del servidor de AWS OpsWorks for Chef Automate . Alternativamente, puede copiar manualmente el certificado con formato de CA raíz de su servidor en el directorio que es el valor de `trusted_certs_dir` en la salida de `knife ssl check`. De forma predeterminada, este directorio se encuentra `.chef/ca_certs/` en el Starter Kit. El resultado debe tener el siguiente aspecto:

   ```
   WARNING: Certificates from my-chef-automate-server.my-corp.com will be fetched and placed in your trusted_cert
             directory (/Users/username/starterkit/.chef/../.chef/ca_certs).
          
             Knife has no means to verify these are the correct certificates. You should
             verify the authenticity of these certificates after downloading.
          
             Adding certificate for my-chef-automate-server in /Users/users/starterkit/.chef/../.chef/ca_certs/servv-aqtswxu20swzkjgz.crt
             Adding certificate for MyCorp_Root_CA in /Users/users/starterkit/.chef/../.chef/ca_certs/MyCorp_Root_CA.crt
   ```

1. Vuelva a ejecutar `knife ssl check`. El resultado debe tener el siguiente aspecto:

   ```
   Connecting to host my-chef-automate-server.my-corp.com:443
             Successfully verified certificates from 'my-chef-automate-server.my-corp.com'
   ```

   Está listo para usar `knife` con su servidor Chef Automate.