GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Cómo usar módulos Puppet para crear una pila LAMP en Ubuntu 20.04

Puppet es una poderosa herramienta de administración de configuración de código abierto que se puede usar para implementar, configurar, administrar y mantener un servidor mientras se accede a él de forma remota. Puppet está escrito en Ruby y lo ayuda a implementar y administrar un solo servidor, hasta miles de servidores físicos y virtuales, todo desde una ubicación central.

Los módulos de Puppet son colecciones de archivos de manifiesto y datos que permiten a Puppet cargar y encontrar clases, hechos, funciones, tipos definidos y tareas. Con los módulos de Puppet, puede instalar y actualizar paquetes, crear archivos y directorios y/o realizar cualquier cambio de configuración de forma rápida y sencilla. Su objetivo es realizar y automatizar casi cualquier tarea, como iniciar un entorno LAMP, configurar hosts virtuales, etc.

En este tutorial, mostraremos cómo crear un módulo LAMP para implementar una pila LAMP en la máquina del agente Puppet, ambos VPS con Ubuntu 20.04. Comencemos.

Antes de comenzar

Necesitarás:

  • Dos servidores virtuales Ubuntu 20.04 con Puppet master y Puppet agent configurados.
  • Un acceso raíz habilitado o un usuario con privilegios sudo.

Cómo empezar

Primero, deberá iniciar sesión en su servidor mediante SSH. Puede hacerlo ingresando este comando:

ssh root@IP_Address -p Port_Number

Recuerde reemplazar "root" con su nombre de usuario si no está utilizando el usuario root. Cambie "IP_Address" y "Port_Number" según la dirección IP de su servidor y el número de puerto SSH. El número de puerto predeterminado es 22.

Una vez que haya iniciado sesión, puede continuar con el siguiente paso.

Verificar el servidor y el agente de Puppet

Primero, verifique el servicio de Puppet ejecutando el siguiente comando en el nodo principal de Puppet. Necesitamos asegurarnos de que el servicio esté activo y ejecutándose:

systemctl status puppetserver

A continuación, enumere todas las solicitudes de agentes firmadas y no firmadas con el siguiente comando:

/opt/puppetlabs/bin/puppetserver ca list --all

Debería ver el siguiente resultado:

Signed Certificates:
    puppet-client       (SHA256)  58:73:AE:62:04:9E:B8:0F:16:07:83:08:34:4A:00:D2:E6:82:9B:47:2A:00:9F:F4:08:AE:56:A8:E7:1B:6A:31
    puppet-master       (SHA256)  7F:23:98:18:0E:3F:0F:FD:3E:12:FD:43:A6:50:C2:4C:58:0F:C6:EB:B0:5A:2A:74:6F:D8:A0:95:BC:31:EA:47alt names: ["DNS:puppet-master", "DNS:puppet-master"]authorization extensions: [pp_cli_auth: true]

En el nodo del agente Puppet, ejecute el siguiente comando para probar la conectividad entre ambos nodos.

/opt/puppetlabs/bin/puppet agent --test

Si todo está bien, debería obtener el siguiente resultado:

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for puppet-client
Info: Applying configuration version '1583136740'
Notice: Applied catalog in 0.05 seconds

Crear un módulo LAMP

Primero, deberá crear un módulo LAMP en el nodo principal de Puppet. Para crear un módulo, debe crear un directorio cuyo nombre coincida con el nombre de su módulo en modules de Puppet directorio, y debe contener un directorio llamado manifests , y ese directorio debe contener un init.pp archivo.

Para hacerlo, cambie el directorio al directorio del módulo Puppet y cree un directorio llamado lamp y luego un manifests directorio dentro:

cd /etc/puppetlabs/code/modules/
mkdir -p lamp/manifests

A continuación, cree un init.pp archivo que contendrá una clase Puppet que coincida con el nombre del módulo. Vamos a usar nano para esto, pero puede usar cualquier editor de texto que desee.

nano lamp/manifests/init.pp

Agregue las siguientes líneas:

class lamp {
  # execute 'apt-get update'
  exec { 'apt-update':                    # exec resource named 'apt-update'
    command => '/usr/bin/apt-get update'  # command this resource will run
  }

  # install apache2 package
  package { 'apache2':
    require => Exec['apt-update'],        # require 'apt-update' before installing
    ensure => installed,
  }

  # ensure apache2 service is running
  service { 'apache2':
    ensure => running,
  }

  # install mysql-server package
  package { 'mysql-server':
    require => Exec['apt-update'],        # require 'apt-update' before installing
    ensure => installed,
  }

  # ensure mysql service is running
  service { 'mysql':
    ensure => running,
  }

  # install php package
  package { 'php':
    require => Exec['apt-update'],        # require 'apt-update' before installing
    ensure => installed,
  }
  # ensure info.php file exists
  file { '/var/www/html/info.php':
    ensure => file,
    content => '',    # phpinfo code
    require => Package['apache2'],        # require 'apache2' package before creating
  }
}

Guarde y cierre el archivo cuando haya terminado.

Crear el archivo de manifiesto principal

Un manifiesto es un archivo que contiene configuraciones de clientes que se pueden usar para instalar la pila LAMP en el nodo del agente. El archivo de manifiesto principal de la marioneta se encuentra en /etc/puppetlabs/code/environments/production/manifests directorio.

Puede crear un nuevo archivo de manifiesto llamado site.pp con el siguiente comando:

nano /etc/puppetlabs/code/environments/production/manifests/site.pp

Agregue las siguientes líneas:

node default { }

node 'puppet-agent' {
  include lamp
}

Guarde y cierre el archivo.

En el archivo anterior, un bloque de nodos le permite especificar el código de Puppet que solo se aplicará a ciertos nodos de agentes. El nodo predeterminado se aplica a todos los nodos de agente que no tienen un bloque de nodos especificado.

Aquí, hemos especificado el puppet-agent bloque de nodos que se aplicará solo a nuestro puppet-agent nodo agente. También hemos agregado la lámpara include lamp snippet para que Puppet use el módulo de la lámpara en el nodo del agente.

Probar el módulo LAMP

Ahora, deberá extraer la configuración de LAMP en el nodo del agente desde el nodo maestro.

En el nodo del agente, ejecute el siguiente comando para extraer la configuración LAMP del nodo principal.

/opt/puppetlabs/bin/puppet agent --test

Esto instalará y configurará la pila LAMP en el nodo del agente, como se puede ver a continuación:

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for puppet-agent
Info: Applying configuration version '1594188800'
Notice: /Stage[main]/Lamp/Exec[apt-update]/returns: executed successfully
Notice: /Stage[main]/Lamp/Package[apache2]/ensure: created
Notice: /Stage[main]/Lamp/Package[mysql-server]/ensure: created
Notice: /Stage[main]/Lamp/Package[php]/ensure: created
Notice: /Stage[main]/Lamp/File[/var/www/html/info.php]/ensure: defined content as '{md5}d9c0c977ee96604e48b81d795236619a'
Notice: Applied catalog in 73.09 seconds

Y con eso, la pila LAMP ahora se ha instalado en su nodo de agente. Para verificarlo, abra su navegador web y escriba la URL http://agent-ip-address/info.php . Deberías ver tu página PHP.

¡Felicidades! ha creado con éxito un módulo LAMP en su maestro de Puppet y lo ha implementado con éxito en su nodo (o nodos) de agente con Puppet.

La implementación de estos cambios en los nodos de agente está hecha para que sea lo más fácil y automatizada posible, sin embargo, aún necesita configurar ambos lados y realizar estas tareas usted mismo. Si usa uno de nuestros planes VPS de Ubuntu administrado, todo lo que necesita hacer es simplemente pedirle a nuestro equipo de administradores expertos que instale lo que necesite para usted. Pueden instalar y configurar cualquier otra cosa que desee, cuando lo desee, así como realizar cualquier mantenimiento del servidor, todo sin que usted tenga que hacer nada.

Esperamos que este tutorial le haya resultado útil. Si lo hizo, le agradeceríamos que compartiera este tutorial con sus amigos a través de las redes sociales utilizando nuestros accesos directos para compartir, o puede dejar un comentario contándonos cómo le fue con la instalación. Gracias.


Panels
  1. Cómo instalar LAMP Stack en Ubuntu 22.04 LTS

  2. Cómo instalar WordPress con LAMP Stack en Ubuntu 16.04

  3. Cómo instalar WordPress con LAMP Stack en Ubuntu 18.04

  4. Cómo instalar LAMP en Ubuntu 18.04

  5. Cómo instalar EPrints en Ubuntu 20.04

Cómo instalar LAMP Stack en servidor/escritorio Ubuntu 20.04

Cómo instalar LAMP Stack con PhpMyAdmin en Ubuntu 20.04

Cómo instalar la pila LAMP en Ubuntu 16.04

Cómo instalar la pila LAMP en Ubuntu 17.04

Cómo instalar la pila LAMP en Ubuntu 17.10

Cómo instalar la pila LAMP en Ubuntu 20.04