Puppet es una herramienta de gestión de configuración de código abierto y un marco de automatización de servidores. Puppet puede ejecutarse en sistemas operativos similares a Unix, así como en los sistemas Microsoft Windows. Le permite administrar y realizar tareas administrativas y la configuración de cientos de sistemas desde un servidor maestro.
En este tutorial, le mostraré cómo instalar Puppet en CentOS 7. Instalaré y configuraré un servidor CentOS 7 como 'maestro' de títeres y el otro como 'agente'.
Requisitos
- 2 servidores CentOS 7
- 10.0.15.10 master.hakase.io 2 GB de memoria
- 10.0.15.11 agente.hakase.io
- Privilegios de raíz
Lo que haremos:
- Preinstalación de marionetas
- Instalar y configurar el servidor Puppet
- Instalar y configurar Puppet Agent
- Verificar la configuración del agente títere
- Crear el primer manifiesto de marionetas
Paso 1:instalación previa de Puppet
En este paso, realizaremos algunas tareas, incluida la instalación y configuración en ambos servidores, el maestro de títeres y el agente de títeres. Configuraremos el archivo del host sincronizando la hora usando el servidor NTP, deshabilitaremos SELinux y agregaremos el repositorio de marionetas al sistema.
- Configurar hosts
Conéctese con el titiritero y el agente usando su usuario root.
ssh [email protected]
ssh [email protected]
Ahora edite los hosts usando el editor vim.
vim /etc/hosts
Agregue la siguiente configuración al final de la línea.
10.0.15.10 master.hakase.io
10.0.15.11 agent.hakase.io
Guardar y salir.
Ahora prueba usando el comando ping.
ping master.hakase.io
ping agent.hakase.io
Y asegúrese de obtener la dirección IP del servidor 10.0.15.10 y 10.0.15.11.
- Configurar servidor NTP
Es muy importante mantener sincronizado el tiempo entre el servidor maestro y el agente.
Instale los paquetes NTP en ambos servidores usando el comando yum.
yum -y install ntp ntpdate
Una vez completada la instalación, elija el grupo NTP que desee ejecutando el comando que se muestra a continuación.
sudo ntpdate 0.centos.pool.ntp.org
Ahora inicie el servicio NTP y permita que se inicie cada vez que se inicie el sistema.
sudo systemctl start ntpd
sudo systemctl enable ntpd
La instalación y configuración de NTP se ha completado.
- Deshabilitar SELinux
Edite la configuración de SELinux usando vim.
vim /etc/sysconfig/selinux
Cambie el valor de SELINUX a 'deshabilitado'.
SELINUX=disabled
Guardar y salir.
- Agregar depósito de marionetas
Ahora agregue el repositorio de marionetas al sistema usando el comando rpm a continuación.
rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
Cuando esté completo, reinicie ambos servidores.
reboot
Ahora estamos listos para la instalación y configuración de marionetas.
Paso 2:instalar y configurar Puppetserver
En este paso, instalaremos el servidor de marionetas en el servidor master.hakase.io. Instale el servidor de marionetas usando el comando yum a continuación.
sudo yum -y install puppetserver
Una vez completada la instalación, debemos configurar la asignación de memoria para el servidor de marionetas. Estableceremos la asignación de memoria máxima para el servidor de marionetas en 1 GB.
Edite la configuración de 'puppetserver' usando vim.
vim /etc/sysconfig/puppetserver
Ahora cambie la línea como se muestra a continuación.
JAVA_ARGS="-Xms1g -Xmx1g ...."
Guardar y salir.
A continuación, vaya al directorio de configuración de marionetas y edite el archivo 'puppet.conf'.
cd /etc/puppetlabs/puppet
vim puppet.conf
Agregue la siguiente configuración.
[master]
dns_alt_names=master.hakase.io,puppet
[main]
certname = master.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h
Guardar y salir.
Ahora inicie el servidor de marionetas y habilítelo para que se inicie cada vez que se inicie.
systemctl start puppetserver
systemctl enable puppetserver
La instalación y configuración de Puppetserver se completó con éxito.
Si está usando firewalld en su sistema, agregue el puerto del servidor de marionetas a la lista usando el comando firewall-cmd a continuación.
firewall-cmd --add-port=8140/tcp --permanent
firewall-cmd --reload
Paso 3:instalar y configurar Puppet Agent
Instalaremos el agente de marionetas en el servidor 'agent.hakase.io'.
Instale el agente de marionetas usando el comando yum a continuación.
yum install -y puppet-agent
Una vez completada la instalación, vaya al directorio de configuración de la marioneta y edite el archivo marioneta.conf.
cd /etc/puppetlabs/puppet
vim puppet.conf
Pegue la siguiente configuración.
[main]
certname = agent.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h
Guardar y salir.
A continuación, registraremos al agente títere ante el titiritero.
Ejecute el siguiente comando en el shell del agente de marionetas.
/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
El agente de marionetas ahora se está ejecutando en el servidor y está intentando registrarse en el maestro de marionetas.
Ahora regrese al shell del maestro de marionetas y ejecute el siguiente comando.
/opt/puppetlabs/bin/puppet cert list
Y obtendrá la solicitud de firma de certificado (CSR) pendiente del servidor del agente títere 'agent.hakase.io'.
Firme el certificado usando el siguiente comando.
/opt/puppetlabs/bin/puppet cert sign agent.hakase.io
Y el resultado debería ser similar al siguiente:
El agente de marionetas ahora se está ejecutando en el sistema y el maestro de marionetas ha firmado el certificado para el agente.
Paso 4:verificar la configuración del agente Puppet
Después de que el titiritero haya firmado el archivo de certificado para el agente, ejecute el siguiente comando en el agente títere para verificar la configuración.
/opt/puppetlabs/bin/puppet agent --test
Y obtendrá el resultado como se muestra a continuación.
El agente de Puppet extrajo la configuración del titiritero y la aplicó al servidor sin ningún error.
Paso 5:crear el primer manifiesto
La instalación y configuración del titiritero y el agente se han completado. Y para este paso, crearemos un manifiesto simple para probar.
Crearemos el manifiesto para la instalación del servidor web Apache httpd.
En el servidor de Puppet Master, vaya al directorio '/etc/puppetlabs/code/' y cree el nuevo archivo de manifiesto 'site.pp' usando vim.
cd /etc/puppetlabs/code/
cd environments/production/manifests
Crear nuevo archivo de manifiesto.
vim site.pp
Pegue la siguiente configuración.
node 'agent.hakase.io' {
package { 'httpd':
ensure => "installed",
}
service { 'httpd':
ensure => running,
enable => true
}
}
Guardar y salir.
Ahora abra el shell del servidor del agente de marionetas y ejecute el siguiente comando.
/opt/puppetlabs/bin/puppet agent --test
El comando recuperará un nuevo archivo de configuración del manifiesto del titiritero y luego lo aplicará al servidor del agente.
El siguiente es el resultado.
Abra su navegador web y escriba la dirección IP del agente títere.
http://10.0.15.11/
Y obtendrá la página HTTP predeterminada como se muestra a continuación.
El servidor web httpd se instaló utilizando el manifiesto de marionetas.
La instalación y configuración de Puppet Master y Puppet Agent en CentOS 7 se completó con éxito.