DEMO PUPPET
Iniciar maquinas virtuales:
vagrant up
Configuración del servidor
Cambiar hostname a puppet-master:
vagrant ssh puppet_master
sudo su
vi /etc/hostname #cambiar a puppet-master
exit
vagrant reload puppet_master
vagrant ssh puppet_master
sudo su
hostname #verificar cambio de hostname
Agregar repositorio para descarga de puppet:
curl -O https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
dpkg -i puppetlabs-release-pc1-xenial.deb
apt-get update -y
Instalar puppet server:
apt-get install puppetserver -y
Configurar memoria RAM a 3gb:
vim /etc/default/puppetserver
Habilitar puerto de puppet:
ufw allow 8140
Iniciar puppet y habilitar para iniciar en boot time:
systemctl start puppetserver
systemctl enable puppetserver
Comprobar estado:
systemctl status puppetserver
Cambiar path:
vim ~/.bashrc
export PATH=$PATH:/opt/puppetlabs/bin/
source ~/.bashrc
Configuración del cliente
Cambiar hostname a puppet-client:
vagrant ssh puppet_client
sudo su
vi /etc/hostname #cambiar a puppet-client
exit
vagrant reload puppet_client
vagrant ssh puppet_client
sudo su
hostname #verificar cambio de hostname
Agregar repositorio para descarga de puppet:
curl -O https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
dpkg -i puppetlabs-release-pc1-xenial.deb
apt-get update -y
Instalar puppet agent:
apt-get install puppet-agent -y
Iniciar puppet agent y habilitar para iniciar en boot time:
systemctl start puppet
systemctl enable puppet
Comprobar estado:
systemctl status puppet
Cambiar path:
vim ~/.bashrc
export PATH=$PATH:/opt/puppetlabs/bin/
source ~/.bashrc
Configuración para comunicacion entre servidor y cliente
En todas las maquinas, editar archivo /etc/hosts:
vim /etc/hosts/ #agregar: <ip-address-puppet-master> puppet
En este caso, la ip de puppet-master es 192.168.0.17, por tanto:
Comprobar conexión:
ping puppet
Firma de certificados
Desde el servidor, ver certificados pendientes de firmar (aquellos sin el signo +):
puppet cert list --all
Firmar certificado del cliente:
puppet cert sign puppet-client
Comprobar firma:
puppet cert list --all
Crear modulo para configurar apache en el cliente
Desde el servidor, descargar modulo de apache:
cd /etc/puppetlabs/code/environments/production
cd modules/
puppet module install puppetlabs-apache --version 3.2.0 #https://forge.puppet.com/puppetlabs/apache
Crear archivo que servira para decirle a puppet como debe estar la infraestructura:
cd ../manifests/ #/etc/puppetlabs/code/environments/production/manifests
vim site.pp
Agregar lineas:
node 'puppet-client' {
include apache
}
Solicitar configuración desde el cliente
Por defecto puppet agent pregunta por configuraciones cada 30 minutos (1800 segundos), como lo declara la variable runinterval:
puppet agent --configprint runinterval
Para no esperar los 30 minutos, hacer una solicitud directa de configuracion desde el cliente:
puppet agent -t --debug
puppet agent realiza la configuración requerida (apache) instalando todos los paquetes necesarios. Despues de unos segundos se puede comprobar la instalación de apache en el cliente. Para ello, digitar la direccion ip del cliente en el navegador:
RECURSOS
- open source modules - https://forge.puppet.com/