» » Instalación de Puppet 3 – PuppetMaster

Instalación de Puppet 3 – PuppetMaster

Publicado en: Tecnología | 0

Puppet

Puppet permite hacer despliegues de máquinas de manera sencilla, rápida y desatendida. Para que todo fluya hay que configurar el entorno, mejor si es con un Master donde centralicemos todos los scripts, ejecutables, imágenes… Y crear los scripts que necesitemos, teniendo mucho cuidado en el desarrollo, pues puede originar graves problemas en entornos productivos.

Aquí voy a ir reuniendo todo lo que vaya practicando y aprendiendo, tanto buenos resultados ‘de libro’ como los errores, para no repetirlos. Hablaré en primera persona casi todo el tiempo, pero a veces se me va l pinza y hablo en plural porque es como si estuviera con vosotros haciendo todo esto.

Pongámonos en situación. Todo surge para evitar hacer las cosas como venía haciéndolas, virtualizar está muy bien para entornos de desarrollo y producción, pero el manejo de las imágenes, los inventarios, dejar dos máquinas idénticas para tener entornos 100% controlados… supone hilar muy fino y trabajar muy escrupulosamente cuando ya tienes algo desplegado. Buscando encontré que otros sysadmin del mundo DevOps ya trabajaban en otro siglo muy superior al mío. Me descubrieron Puppet y Chef, similares, había que apostar por alguno, venga pues Puppet. Y ya metidos, la última versión, la 3. Y como las charlas, conferencias, consultas de foros y listas de correos te pican, pues te haces con un libro, el Puppet 3 Beginner’s Guide que te lo cuenta todo desde cero. Perfecto. Pues manos a la obra.

Todo lo que voy a ir contando será desplegado y desarrollado sobre CentOS 6.4. Parto de un sistema instalado, con las DNS configuradas o al menos con el fichero hosts configurado para resolver los nombres de las máquinas que vayamos montando.

Para empezar, solo tendremos el Master. El PuppetMaster será nuestro repositorio de imágenes, manifiestos y todo lo que necesitemos distribuir. Por ahora un CentOS 6.4 de 20GB e disco nos va a sobrar, ya habrá tiempo de crecer.

  • Configuración de red y hostname del equipo
  • Añadir el repositorio EPEL (Extra Packages for Enterprise Linux)
  • Actualizar repositorios y actualizar el equipo
  • Instalar Puppet 3

Configuro el hostname del equipo y lo añado al hosts local

# hostname puppetmaster.local
# sudo vi /etc/hosts
127.0.0.1 puppetmaster.local

Añadir el repositorio EPEL para CentOS 6

# sudo rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm

Descomprimir e instalar el paquete RPM

# rpm -ivh epel-release-6-8.noarch.rpm

Añadir la llave GPG del paquete. En este paso habría que descargarse un fichero con la llave pública con wget:

# wget https://fedoraproject.org/static/0608B895.txt

Pero me da error, así que en un navegador, abro la url y guardo el fichero txt a local, y se lo copio al puppetmaster por SSH

# scp 0608B895.txt root@puppetmaster.local:~/

Mover el fichero

# mv 0608B895.txt /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

Importar la nueva llave

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

Verificar que se ha añadido bien

# rpm -qa gpg* 
gpg-pubkey-0608b895-4bd22942

Verificar la lista de repositorios

# yum repolist
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: centos.mirror.xtratelecom.es
 * epel: mirror.uv.es
 * extras: distrib-coffee.ipsl.jussieu.fr
 * updates: distrib-coffee.ipsl.jussieu.fr
repo id repo name status
base CentOS-6 - Base 6.381
epel Extra Packages for Enterprise Linux 6 - x86_64 9.172
extras CentOS-6 - Extras 12
puppetlabs-deps Puppet Labs Dependencies El 6 - x86_64 48
puppetlabs-products Puppet Labs Products El 6 - x86_64 281
updates CentOS-6 - Updates 647
repolist: 16.541

En este punto que tengo la lista de paquetes actualizada lanzo una actualización de paquetes del sistema

# yum update

Bien pues ahora, por fin, instalamos Puppet 3

# yum install puppet-server

que nos instala las dependencias del agente Puppet, Facter, Hiera y Ruby.

Una vez acabada la instalación se crea el fichero /etc/init.d/puppetmaster para arrancar el demonio del agente de Puppet. Para verificar que todo ha sido correcto podemos comprobar que nos devuelve la versión instalada:

# puppet --version
3.2.2

En otro mensaje continuaré con la introducción a los conceptos de los manifiestos Puppet, los recursos, nombres y atributos. Con la estructura de directorios, los nodos, paquetes, módulos… El viaje solo acaba de comenzar.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.