systemadmin.es > Instalaciones > Crear paquete de puppet autocontenido (bundle)

Crear paquete de puppet autocontenido (bundle)

Puede ser que al intentar instalar puppet en un servidor nos salgan problemas con las versiones de ruby o de puppet disponibles. Vamos a ver cómo crear un paquete con las versiones de puppet, ruby, facter y hiera que nos interesen.

Vamos a suponer que necesitaremos las siguientes versiones:

# ruby --version
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
# puppet --version
3.8.3
# facter --version
2.4.1
# hiera --version
1.3.4

Primero deberemos instalar ruby-build para facilitar la instalación de ruby:

cd /usr/local/src/
git clone https://github.com/sstephenson/ruby-build.git
cd ruby-build/
./install.sh 

Instalamos la versión de ruby en el path que nos interese indicando que mantenga los ficheros de instalación (opción -k)

ruby-build -k 1.8.7-p374 /opt/puppet

En el /tmp encontraremos los ficheros de la instalación, en mi caso estaba en /tmp/ruby-build.20151005062159.4556 el siguiente contenido:

# ls
ruby-1.8.7-p374  ruby-1.8.7-p374.tar.gz  rubygems-1.6.2  rubygems-1.6.2.tar.gz

Deberemos instalar la extensión openssl, necesitaremos tener instalado el paquete de devel de openssl, para CentOS haríamos:

yum install openssl-devel -y

En CentOS 6 deberemos aplicar el siguiente patch:

curl -fsSL "https://github.com/ruby/ruby/commit/0d58bb55985e787364b0235e5e69278d0f0ad4b0.patch" > opensslext.patch

Deberemos usar el propio ruby para que se instale correctamente:

cd ext/openssl/
/opt/puppet/bin/ruby extconf.rb
make install

Instalamos también zlib:

cd ../../ext/zlib/
/opt/puppet/bin/ruby extconf.rb
make install

Seguiremos instalando la gem de json, igualmente con el propio ruby:

/opt/puppet/bin/gem install json

Tal y como podemos encontrar en la referencia de instalación desde tarball en puppetlabs, bajamos los siguientes paquetes:

cd /usr/local/src/
wget https://downloads.puppetlabs.com/puppet/puppet-3.8.3.tar.gz
wget http://downloads.puppetlabs.com/facter/facter-2.4.1.tar.gz
wget https://downloads.puppetlabs.com/hiera/hiera-1.3.4.tar.gz
tar xzf puppet-3.8.3.tar.gz 
tar xzf facter-2.4.1.tar.gz 
tar xzf hiera-1.3.4.tar.gz 

Y los instalamos de la misma forma:

cd facter-2.4.1
/opt/puppet/bin/ruby install.rb 
cd ../hiera-1.3.4
/opt/puppet/bin/ruby install.rb 
cd ../puppet-3.8.3
/opt/puppet/bin/ruby install.rb 

Dentro del bin podremos encontrar puppet, facter y hiera instalados:

# /opt/puppet/bin/puppet --version
3.8.3
# /opt/puppet/bin/facter --version
2.4.1
# /opt/puppet/bin/hiera --version
1.3.4
# /opt/puppet/bin/ruby --version
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]

Si empaquetamos /opt/puppet y lo distribuimos, ya tendremos las versiones correctas de ruby que nos interesen.

Una pega es que si esta usando puppetlabs/concat éste usará el ruby del sistema, por lo que puede no funcionar (o ni encontrarlo), deberíamos modificar el PATH para que encuentre el que nos interesa

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>