GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar Chef Automation Server en Ubuntu 20.04

Chef es una plataforma poderosa para la automatización, que simplifica la forma en que se administra, implementa o configura la infraestructura en una red. Chef opera transformando la infraestructura en código. Luego, el desarrollador puede implementar o administrar recursos en varios servidores o nodos, pero antes de que el desarrollador implemente el código en cualquier otro entorno, primero lo crea y lo prueba en una estación de trabajo. En general, Chef es una de las mejores herramientas para administrar la infraestructura desde una estación de trabajo.

Para el cumplimiento, la visibilidad de los nodos y el flujo de trabajo, Chef Automate pone a disposición un conjunto completo de capacidades empresariales. El software se integra con productos de código abierto como Habitat, InSpec y Chef.

En este tutorial, le mostraremos cómo instalar el servidor y el cliente de Chef en Ubuntu 20.04.

Requisitos

  • Dos Nuevos VPS de Ubuntu 20.04 en Atlantic.Net Cloud Platform.

         Un cliente

         Un servidor

  • Una contraseña de root configurada en su servidor

Paso 1:crear un servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 20.04 como sistema operativo con al menos 4 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor Ubuntu 20.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

apt-get update -y

Paso 2:configurar el nombre de host

Antes de comenzar, deberá configurar un nombre de host completo y una resolución de nombre de host en su servidor Chef.

Primero, configure el nombre de host con el siguiente comando:

hostnamectl set-hostname chef.example.com

A continuación, abra el archivo /etc/hosts y vincule la dirección IP de su servidor con el nombre de host:

nano /etc/hosts

Agregue la siguiente línea:

chef-server-ip chef.example.com

Guarde y cierre el archivo cuando haya terminado.

Paso 3:Instalar Chef Server

Primero, instale las dependencias requeridas ejecutando el siguiente comando en el servidor de Chef:

apt-get install curl wget gnupg2 -y

A continuación, descargue el paquete Chef con el siguiente comando:

wget https://packages.chef.io/files/stable/chef-server/13.1.13/ubuntu/18.04/chef-server-core_13.1.13-1_amd64.deb

Una vez descargado el paquete, instálelo ejecutando el siguiente comando:

dpkg -i chef-server-core_13.1.13-1_amd64.deb

Una vez que el paquete esté instalado, deberá reconfigurar el servidor Chef. Puede reconfigurarlo con el siguiente comando:

chef-server-ctl reconfigure

Se le pedirá que acepte el término de la licencia como se muestra a continuación:

+---------------------------------------------+
Chef License Acceptance

Before you can continue, 3 product licenses
must be accepted. View the license at
https://www.chef.io/end-user-license-agreement/

Licenses that need accepting:
* Chef Infra Server
* Chef Infra Client
* Chef InSpec

Do you accept the 3 product licenses (yes/no)?

> yes

Escriba sí para aceptar la licencia y presione enter para continuar. Una vez que se haya completado la instalación, debería obtener el siguiente resultado:

Running handlers:
Running handlers complete
Chef Infra Client finished, 482/1032 resources updated in 04 minutes 34 seconds
Chef Server Reconfigured!

Nota :La instalación tardará más de 5 minutos

Paso 4:crear una cuenta de administrador y una organización

Primero, cree un directorio para almacenar todas las claves.

mkdir ~/.chef_key

A continuación, ejecute el siguiente comando para crear una cuenta de administrador:

chef-server-ctl user-create atlanticuser Atlantic User [email protected] 'mypassword' --filename ~/.chef_key/atlantic.pem

El comando anterior creará una cuenta de administrador con el nombre atlanticuser, el nombre completo "Atlantic User", la contraseña "mypassword" y generará el archivo de claves en ~/.chef_key/atlantic.pem.

A continuación, cree una organización con el siguiente comando:

chef-server-ctl org-create atlantic "atlantic cloud" --association_user atlanticuser --filename ~/.chef_key/atlantic-org.pem

El comando anterior creará una organización con el nombre atlantic, el nombre completo "atlantic cloud", el usuario asociado "atlanticuser" y generará un archivo de claves en ~/.chef_key/atlantic-org.pem.

Ahora puede verificar las claves generadas con el siguiente comando:

ls ~/.chef_key/

Debería ver el siguiente resultado:

atlantic.pem hitjethva.pem

Paso 5:instale la consola de administración web de Chef

A continuación, deberá instalar Chef Manage en su servidor. Chef Manage es un complemento que se puede usar para administrar el servidor Chef desde la interfaz basada en web.

Puede instalar Chef Manage con el siguiente comando:

chef-server-ctl install chef-manage

A continuación, vuelva a configurar el servidor de Chef y administre Chef con el siguiente comando:

chef-server-ctl reconfigure
chef-manage-ctl reconfigure

Se le pedirá que acepte el acuerdo de licencia como se muestra a continuación:

Press any key to continue.
Type 'yes' to accept the software license agreement or anything else to cancel.
yes

Escribe y presiona Enter para finalizar la instalación.

Paso 6:instalar Chef Client

A continuación, deberá iniciar sesión en la máquina del cliente Chef e instalar el paquete del cliente Chef.

Ejecute el siguiente comando para descargar el paquete de la estación de trabajo Chef:

wget https://packages.chef.io/files/stable/chef-workstation/20.6.62/debian/10/chef-workstation_20.6.62-1_amd64.deb

Una vez descargado el paquete, instálelo con el siguiente comando:

dpkg -i chef-workstation_20.6.62-1_amd64.deb

Después de instalar el cliente Chef, deberá crear un repositorio Chef en su sistema. El directorio chef-repo almacenará sus libros de cocina Chef y otros archivos relacionados.

Puedes crearlo con el siguiente comando:

chef generate repo chef-repo

Se le pedirá que acepte la licencia como se muestra a continuación:

+---------------------------------------------+
Chef License Acceptance

Before you can continue, 3 product licenses
must be accepted. View the license at
https://www.chef.io/end-user-license-agreement/

Licenses that need accepting:
* Chef Workstation
* Chef Infra Client
* Chef InSpec

Do you accept the 3 product licenses (yes/no)?

> yes

Escribe y presione Entrar para aceptar la Licencia. Deberías obtener el siguiente resultado:

Persisting 3 product licenses...
✔ 3 product licenses persisted.

+---------------------------------------------+
Generating Chef Infra repo chef-repo
- Ensuring correct Chef Infra repo file content

Your new Chef Infra repo is ready! Type `cd chef-repo` to enter it.

Puede enumerar todos los archivos y directorios generados dentro del repositorio de Chef con el siguiente comando:

ls chef-repo

Deberías obtener el siguiente resultado:

chefignore cookbooks data_bags LICENSE policyfiles README.md

A continuación, deberá crear un directorio .chef para almacenar todos los archivos de configuración de Knife y los archivos .pem que se utilizan para la autenticación del par de claves RSA con el servidor Chef.

Puedes crearlo con el siguiente comando:

mkdir ~/chef-repo/.chef

A continuación, genere un par de claves SSH con el siguiente comando:

ssh-keygen -b 4096

No proporcione ninguna contraseña, simplemente presione Entrar para generar un par de claves SSH como se muestra a continuación:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:OvOCW9vNnVfs8II8TKJnRxv9vwRu5R4JqRxWPVU1rTY [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| .B|
| . +|
| . + |
| . E .|
| S o * + |
| . + B B +|
| .= . O * @ |
| ...*.oo.O.= =|
| ....ooo.oo ++|
+----[SHA256]-----+

A continuación, copie la clave generada en la máquina del servidor Chef con el siguiente comando:

ssh-copy-id [email protected]

A continuación, deberá copiar todos los archivos .pem del servidor Chef a la máquina cliente. Puede copiarlos con el siguiente comando:

scp [email protected]:~/.chef_key/*.pem ~/chef-repo/.chef/

Deberías obtener el siguiente resultado:

atlantic.pem 100% 1674 2.2MB/s 
00:00
hitjethva.pem 100% 1678 2.4MB/s 
00:00

Paso 7:configurar el cuchillo y generar el libro de recetas

A continuación, deberá configurar Knife y generar un libro de recetas en la máquina cliente.

Primero, cambie al repositorio con el comando:

cd ~/chef-repo

A continuación, genera tu primer libro de cocina con el siguiente comando:

chef generate cookbook my_cookbook

Una vez que se genera el libro de recetas, cree un nuevo archivo de configuración del cuchillo:

nano ~/chef-repo/.chef/config.rb

Agregue las siguientes líneas:

current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
node_name 'hitjethva'
client_key "hitjethva.pem"
validation_client_name 'atlantic-validator'
validation_key "atlantic-validator.pem"
chef_server_url 'https://chef.example.com/organizations/atlantic'
cache_type 'BasicFile'
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
cookbook_path ["#{current_dir}/../cookbooks"]

Guarde y cierre el archivo.

Asegúrese de que todos los nombres coincidan con el nombre de su organización y el nombre de usuario del administrador.

A continuación, edite el archivo /etc/hosts y agregue el nombre completo de su servidor Chef.

nano /etc/hosts

Agregue la siguiente línea:

chef-server-ip chef.example.com

Guarde y cierre el archivo cuando haya terminado.

A continuación, obtenga el certificado SSL del servidor de Chef con el siguiente comando:

cd ~/chef-repo
knife ssl fetch

Deberías obtener el siguiente resultado:

WARNING: Certificates from chef.example.com will be fetched and placed in your trusted_cert
directory (/root/chef-repo/.chef/trusted_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 chef_example_com in /root/chef-repo/.chef/trusted_certs/chef_example_com.crt

También puede verificar el SSL con el siguiente comando:

knife ssl check

Deberías obtener el siguiente resultado:

Connecting to host chef.example.com:443
Successfully verified certificates from `chef.example.com'

Paso 8:arranque de un nodo de cliente

A continuación, deberá instalar el cliente Chef en el nodo y validar el nodo. Esto permite que el nodo lea desde el servidor Chef y despliegue y aplique cualquier actualización de configuración necesaria detectada por el chef-cliente desde la estación de trabajo.

En la máquina cliente de Chef, cambie el directorio a .chef con el siguiente comando:

cd ~/chef-repo/.chef

A continuación, inicie el cliente con el siguiente comando:

knife bootstrap chef.example.com -x root -P rootpassword --node-name clientnode

Una vez que se complete la instalación, debería obtener el siguiente resultado:

Patents: https://www.chef.io/patents
[chef.example.com] resolving cookbooks for run list: []
[chef.example.com] Synchronizing Cookbooks:
[chef.example.com] Installing Cookbook Gems:
[chef.example.com]
[chef.example.com] Compiling Cookbooks...
[chef.example.com] [2020-10-02T07:56:21+00:00] WARN: Node clientnode has an empty run list.
[chef.example.com] Converging 0 resources
[chef.example.com]
[chef.example.com] Running handlers:
Running handlers complete
Chef Infra Client finished, 0/0 resources updated in 02 seconds

Ahora puede listar todos los nodos con el siguiente comando:

knife client list

Deberías obtener el siguiente resultado:

atlantic-validator
clientnode

Paso 9:acceda a Chef Manage Console

Ahora, abra su navegador web y acceda a la consola de administración de Chef usando la URL http://chef.server-ip/login. Debería ver la página de inicio de sesión de Chef:

Proporcione su nombre de usuario y contraseña de administrador y haga clic en Firmar en botón. Debería ver el panel de Chef en la siguiente página:

Conclusión

En la guía anterior, aprendió cómo instalar el servidor y el cliente Chef en el servidor Ubuntu 20.04. También aprendiste sus componentes con los ajustes de instalación y configuración. Para obtener más información, puede visitar la documentación de Chef. ¡Prueba Chef en tu servidor privado virtual de Atlantic.Net!


Linux
  1. Cómo instalar MySQL en Ubuntu 18.04

  2. Cómo instalar el servidor de Minecraft en Ubuntu 18.04

  3. Cómo instalar la ubicación en un servidor Ubuntu

  4. Cómo instalar MariaDB en Ubuntu 22.04

  5. ¿Cómo instalar Ubuntu Server 15.10 en Hyper-v?

Cómo instalar el servidor Mumble en Ubuntu 15.04

Cómo instalar NGINX en Ubuntu 20.04

Cómo instalar el servidor Ansible en Ubuntu 18.04

Cómo instalar XWiki en Ubuntu 20.04

Cómo instalar ClickHouse en Ubuntu 20.04

¿Cómo instalar FTP en Ubuntu 18.04?