Instalar OpenShift Origin en Fedora 19 (Mega Tutorial) – Parte 2

openshift-origin-logo

OpenShift Origin

Continuando con nuestro tutorial, vamos a instalar la base de datos MongoDB que almacenará los datos de la infraestructura de OpenShift. Después instalaremos el servicio de mensajería ActiveMQ que se encargará de la comunicación entre el broker y los nodos. Por último instalaremos el cliente de MCollective, que será el encargado de enviar y recibir los mensajes entre el broker y los nodos.

Empecemos.

Instalar MongoDB

  • Sistemas afectados : broker

Mediante yum instalaremos los paquetes mongodb-server, mongodb y libmongodb

yum install -y mongodb-server mongodb libmongodb

MongoDB utiliza un fichero de configuración que se encuentra en la ruta /etc/mongodb.conf que debemos modificar en 2 tandas. La primera será para desactivar temporalmente la autenticación comentando la directiva auth=true. Además, MongoDB, hace uso de una cantidad enorme de espacio en disco, más del que OpenShift requiere, por ello añadiremos la directiva smallfiles=true.

vim /et/mongodb.conf
bind_ip = 127.0.0.1
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath =/var/lib/mongodb
journal = true
nohttpinterface = true
smallfiles=true
#auth=true

Ahora iniciamos el servicio y creamos el usuario de la base de datos de OpenShift.

systemctl start mongod.service
mongo localhost/openshift_broker_dev --eval 'db.addUser("openshift", "mooo")'
mongo localhost/admin --eval 'db.addUser("openshift", "mooo")'

Volvemos a editar el fichero de configuración para activar la autenticación y configurar la directiva bind_ip= para que apunte también a nuestra IP pública. Además configuramos el firewall.

systemctl stop mongod.service
vim /etc/mongodb.conf
bind_ip = 127.0.0.1,10.10.10.2
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath =/var/lib/mongodb
journal = true
nohttpinterface = true
smallfiles=true
auth=true
systemctl start mongod.service
lokkit --port=27017:tcp

Verificamos el correcto funcionamiento de MongoDB y habilitamos el servicio para el arranque del sistema.

mongo admin
>MongoDB shell version: 2.4.6
>connecting to: admin
>Welcome to the MongoDB shell.
>For interactive help, type "help".
>For more comprehensive documentation, see
>	http://docs.mongodb.org/
>Questions? Try the support group
>	http://groups.google.com/group/mongodb-user
db.auth('openshift',"mooo")
> 1
show dbs
> admin	0.0625GB
> local	0.03125GB
> openshift_broker_dev	0.0625GB
exit
systemctl enable mongod.service

Instalar ActiveMQ

  • Sistemas afectados : broker

Para continuar con la configuración necesitamos instalar ActiveMQ, que instalará Java entre otras de las muchas dependencias. Los paquetes necesarios son activemq y activemq-client

yum install -y activemq activemq-client

El fichero de configuración principal es /etc/activemq/activemq.xml al que hay que añadir la configuración de queue y topic que requiere OpenShift, pero como este es un arduo trabajo, OpenShift nos facilita la descarga de un fichero preconfigurado aquí. Sólo tendremos que modificar unas pocas líneas. También descargamos el fichero del servidor donde ActiveMQ se ejecutará, que se obtiene desde aquí.

curl -o /etc/activemq/activemq.xml https://raw.githubusercontent.com/openshift/origin-server/openshift-origin-release-3/documentation/files/activemq.xml
curl -o /etc/activemq/jetty.xml https://raw.githubusercontent.com/openshift/origin-server/openshift-origin-release-3/documentation/files/jetty.xml

Lo primero que haremos será modificar esta línea del activemq.xml

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq.example.com" dataDirectory="${activemq.data}">

Cambiando el brokerName por nuestro broker.

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="broker.dmartin.es" dataDirectory="${activemq.data}">

Ahora es el turno de la seguridad. En el siguiente bloque en negrita aparece lo que he modificado.

<simpleAuthenticationPlugin>
   <users>
     <authenticationUser username="mcollective" password="marionette" groups="mcollective,everyone"/>
     <authenticationUser username="admin" password="admin" groups="mcollective,admin,everyone"/>
   </users>
 </simpleAuthenticationPlugin>

Configuramos el acceso del usuario administrador en el fichero /etc/activemq/jetty-realm.properties

admin: admin, admin

El interfaz web de ActiveMQ es accesible sólo por localhost pero, opcional, podemos hacerlo accesible en el interfaz de red público modificando el siguiente bloque del fichero /etc/activemq/jetty.xml

<property name="connectors">
 <list>
    <bean id="Connector" class="org.eclipse.jetty.server.nio.SelectChannelConnector">
       <property name="port" value="8161" />
       <property name="host" value="127.0.0.1" />
    </bean>

    <bean id="External-Connector" class="org.eclipse.jetty.server.nio.SelectChannelConnector">
       <property name="port" value="8161" />
       <property name="host" value="10.10.10.2" />
    </bean>

 </list>
</property>

ActiveMQ trabaja con el antiguo gestor de servicios SysV, así que para que pueda funcionar correctamente con systemd, hemos de crear un fichero para que ActiveMQ pueda almacenar los ficheros temporales

cat <<EOF >/etc/tmpfiles.d/activemq.conf
d /var/run/activemq 0755 activemq activemq -
EOF

Ahora configuramos el firewall, arrancamos el servicio y lo habilitamos

lokkit --port=61613:tcp --port=8161:tcp
service activemq start
chkconfig activemq on

Si existe algún error de sintaxis, podemos ver el log en /var/log/activemq/activemq.log
Y accedemos a la consola web con la IP de nuestro broker http://10.10.10.2:8161 con el usuario admin y password admin.

ActiveMQ Web Console

ActiveMQ Web Console

Instalar el cliente de MCollective

  • Sistemas afectados : broker

Instalamos el cliente de MCollective con yum gracias al paquete mcollective-client y modificamos su fichero de configuración /etc/mcollective/client.cfg para que apunte al servidor de ActiveMQ.

yum install -y mcollective-client
cat <<EOF > /etc/mcollective/client.cfg
topicprefix = /topic/
main_collective = mcollective
collectives = mcollective
libdir = /usr/libexec/mcollective
logfile = /var/log/openshift/broker/mcollective-client.log
loglevel = debug

# Plugins
securityprovider = psk
plugin.psk = unset

connector = activemq
plugin.activemq.pool.size = 1
plugin.activemq.pool.1.host = broker.dmartin.es
plugin.activemq.pool.1.port = 61613
plugin.activemq.pool.1.user = mcollective
plugin.activemq.pool.1.password = marionette
EOF

En el próximo post configuraremos el broker de OpenShift.
Disponible aquí.
Nos vemos

One thought on “Instalar OpenShift Origin en Fedora 19 (Mega Tutorial) – Parte 2

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.