Skip to content
Agustí Sánchez edited this page Aug 12, 2015 · 2 revisions

Puppet (zeta-dev) a partir de CentOS 6.6 x86_64 i VirtualBox

Procedimiento para preparar una imagen base con Puppet.

Instalar SO

  • Descargar ISO CentOS 6.6 64 bits Minimal (CentOS-6.6-x86_64-minimal.iso)
  • Abrir VirtualBox
  • Crear nueva VM de tipo Linux/RedHat 64 bits
  • El tipo de archivo debe ser VMDK si se quiere convertirla posteriromente en una basebox de Vagrant
  • Deshabilitar Auddio y USB
  • Apuntar dispositivo CD/DVD a archivo ISO CentOS
  • Iniciar VM y realizar instalación estándar del SO

Red

  • Habilitar eth0
    • Editar /etc/sysconfig/network-scripts/ifcfg-eth0
    • ONBOOT=no => ONBOOT=yes
  • Deshabilitar firewalls:
    • chkconfig iptables off
    • Editar /etc/selinux/config
    • SELINUX=enforced => SELINUX=disabled

Instalar / actualizar software

  • rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm
  • yum update
  • yum install wget unzip puppet
  • chkconfig puppet on

Configuración dependiente del entorno (zeta-dev)

  • Definir nombre de host a zeta-dev.communi.tv
    • vi /etc/sysconfig/network
    • NETWORKING=yes
    • HOSTNAME=zeta-dev.communi.tv
    • reboot
  • Instalar los certificados de zeta-dev.communi.tv
    • mkdir /var/lib/puppet/ssl
    • unzip ssl-zeta-dev.zip -d /var/lib/puppet/ssl
  • Editar /etc/puppet/conf
    • Sustituir contenido con lo siguiente:
[main]     
# The Puppet log directory.     
# The default value is '$vardir/log'.     
logdir = /var/log/puppet     
# Where Puppet PID files are kept.     
# The default value is '$vardir/run'.     
rundir = /var/run/puppet     
# Where SSL certificates are kept.     
# The default value is '$confdir/ssl'.     
ssldir = $vardir/ssl 
[agent]     
localconfig = $vardir/localconfig     
report = true     
classfile = $vardir/classes.txt     
localconfig = $vardir/localconfig     
graph = true     
pluginsync = true     
environment = development     
server = matagalls.agilecontents.com

Ejecutar puppet

  • puppet agent --test --noop
  • puppet agent --test

Generación box Vagrant

Crear usuario vagrant

  • adduser vagrant
  • passwd vagrant, definir vagrant como password
  • Añadir usuario vagrant en sudoers
    • visudo -f /etc/sudoers.d/vagrant
    • vagrant ALL=(ALL) NOPASSWD:ALL
  • Añadir clave vagrant
mkdir -p /home/vagrant/.ssh
chmod 0700 /home/vagrant/.ssh
wget --no-check-certificate \
    https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub \
    -O /home/vagrant/.ssh/authorized_keys
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
  • Editar SSH config
    • /etc/ssh/sshd_config
    • AuthorizedKeysFile .ssh/authorized_keys
    • ( AuthorizedKeysFile %h/.ssh/authorized_keys )
    • service ssh restart

Añadir las Guest Tools de VirtualBox

  • rpm -ihv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
  • yum --enablerepo rpmforge install dkms
  • yum groupinstall "Development Tools"
  • yum install kernel-devel
  • Desde el menú "Devices" de la interficie gráfica de VirtualBox, instalar la imagen de CD de las Guest Additions (el dispositivo de CD/DVD debe haber quedado apuntando a esa imagen ISO)
  • mount /dev/cdrom /mnt
  • cd /mnt
  • ./VBoxLinuxAdditions.run

Generar paquete

  • Eliminar fragmentación
    • dd if=/dev/zero of=/EMPTY bs=1M
    • rm -f /EMPTY
  • En local
    • crear directorio y cd a directorio
    • vagrant package --base [nombre VM en VirtualBox]
    • Se habrá generado un archivo package.box

Registro de la nueva basebox

  • Renombrar package.box y dejarlo en un servidor
  • Usuario registrará basebox en su máquina local con la siguiente instrucción:
    • vagrant box add [alias] [URL nueva basebox]
  • A partir de aquí, usuario ya puede invocar vagrant init [alias]