Cómo instalar el servidor de integración continua Strider en Ubuntu 18.04 LTS

Strider es un servidor de integración y despliegue continuo gratuito y de código abierto escrito en Node.JS, JavaScript y que utiliza MongoDB para almacenar sus datos. Strider viene con un montón de plugins que se pueden utilizar para añadir varias características a la aplicación.

En este tutorial, explicaremos cómo instalar Strider en un servidor Ubuntu 18.04.

Requisitos

  • Un servidor con Ubuntu 18.04.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

Antes de empezar, se recomienda actualizar los paquetes a la última versión. Puedes actualizar todos los paquetes ejecutando el siguiente comando:

apt-get update -y
apt-get upgrade -y

Una vez actualizados todos los paquetes, reinicia tu sistema para aplicar los cambios.

A continuación, instala los paquetes curl y git con el siguiente comando:

apt-get install curl git -y

Una vez instalados todos los paquetes necesarios, puedes pasar al siguiente paso.

Instalar Node.js

A continuación, tendrás que instalar Node.js y otros paquetes necesarios en tu servidor.

Por defecto, Node.js no está disponible en el repositorio por defecto de Ubuntu 18.04. Así que tendrás que añadir el repositorio de Node.js a tu sistema. Puedes añadir el repositorio con el siguiente comando:

curl -sL https://deb.nodesource.com/setup_12.x | bash -

Una vez añadido el repositorio, actualiza el repositorio e instala Node.js con el siguiente comando:

apt-get install nodejs node-gyp -y

Después de instalar Node.js comprueba la versión de Node.js y NPM con el siguiente comando:

node -v

Deberías ver la siguiente salida:

v12.6.0
npm -v

Deberías ver la siguiente salida:

6.9.0

Instalar y configurar MongoDB

Strider utiliza MongoDB como almacén de respaldo. Por lo tanto, tendrás que instalar MongoDB en tu sistema.

Primero, importa la clave pública GPG para MongoDB con el siguiente comando:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

A continuación, añade el repositorio de MongoDB con el siguiente comando:

echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list

Deberías ver la siguiente salida:

Executing: /tmp/apt-key-gpghome.mmTr2ifzC1/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
gpg: key 68818C72E52529D4: public key "MongoDB 4.0 Release Signing Key <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1

A continuación, actualiza el repositorio e instala MongoDB con el siguiente comando:

apt-get update -y
apt-get install mongodb-org -y

Una vez completada la instalación, inicia el servicio de MongoDB y permite que se inicie tras el reinicio del sistema con el siguiente comando:

systemctl start mongod
systemctl enable mongod

También puedes comprobar el estado de MongoDB con el siguiente comando:

systemctl status mongod

Deberías ver la siguiente salida:

? mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-07-13 05:24:41 UTC; 5s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 13619 (mongod)
   CGroup: /system.slice/mongod.service
           ??13619 /usr/bin/mongod --config /etc/mongod.conf

Jul 13 05:24:41 ubuntu1804 systemd[1]: Started MongoDB Database Server.

A continuación, tendrás que configurar MongoDB para la autenticación.

Para ello, abre el shell de MongoDB con el siguiente comando:

mongo

Deberías ver la siguiente salida:

MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("e3edd538-03c4-469a-8c8c-227a16d214d0") }
MongoDB server version: 4.0.10
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
Server has startup warnings: 
2019-07-13T05:24:46.255+0000 I STORAGE  [initandlisten] 
2019-07-13T05:24:46.255+0000 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2019-07-13T05:24:46.256+0000 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2019-07-13T05:24:48.774+0000 I CONTROL  [initandlisten] 
2019-07-13T05:24:48.774+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-07-13T05:24:48.774+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-07-13T05:24:48.775+0000 I CONTROL  [initandlisten] 
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

A continuación, cambia la base de datos a admin y crea un usuario admin con el siguiente comando:

>use admin
db.createUser( { user: "admin", pwd: "adminpassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } )

A continuación, sal del intérprete de comandos de MongoDB con el siguiente comando

> exit

A continuación, abre el archivo de configuración de MongoDB y activa la autenticación con el siguiente comando:

nano /etc/mongod.conf

Realiza los siguientes cambios:

security:
  authorization: enabled

Guarda y cierra el archivo. A continuación, reinicia el servicio MongoDB para aplicar los cambios de configuración con el siguiente comando

systemctl restart mongod

Instalar Strider

Primero, descarga la última versión de Strider con el siguiente comando:

cd /opt
git clone https://github.com/Strider-CD/strider.git

A continuación, instala las dependencias necesarias con el siguiente comando:

cd strider
npm install

A continuación, deberás crear un nuevo usuario strider y asignarlo a la base de datos strider.

Para ello, abre el shell de MongoDB con el siguiente comando

mongo

A continuación, autentifica tu sesión de MongoDB con el usuario admin:

use admin
db.auth("admin", "adminpassword" )

A continuación, crea un usuario de base de datos y asígnale el nombre de base de datos strider:

use strider
db.createUser({user: "strider", pwd: "password", roles: [{role: "dbOwner", db: "strider"}]})

A continuación, sal del intérprete de comandos de MongoDB y crea un usuario administrador para Strider con el siguiente comando:

cd /opt/strider
DB_URI="mongodb://strider:password@localhost:27017/strider" node bin/strider addUser

Proporciona toda la información necesaria como se muestra a continuación:

Connecting to MongoDB URL: mongodb://strider:password@localhost:27017/strider

Enter email []: [email protected]
Enter password []: ****
Is admin? (y/n) [n]y

Email:        [email protected]
Password:    admin
isAdmin:    y
OK? (y/n) [y]y
User created successfully! Enjoy.

Instalar y configurar PM2

A continuación, tendrás que instalar PM2 para gestionar el proceso de Node.js. Primero, instala PM2 con npm como se muestra a continuación:

npm install pm2 -g

A continuación, crea un nuevo archivo de configuración para PM2 con el siguiente comando:

cd /opt/strider
nano ecosystem.config.js

Añade las siguientes líneas:

module.exports = {
  apps : [{
    name   : "strider",
    script : "npm",
    args : "start",
    env: {
      "NODE_ENV": "production",
      "DB_URI": "mongodb://strider:password@localhost:27017/strider",
      "SERVER_NAME": "http://your-server-ip:3000",
      "HOST": "0.0.0.0",
      "PORT": "3000"
    }
  }]
}

Guarda y cierra el archivo, cuando hayas terminado. A continuación, inicia la aplicación con el siguiente comando:

pm2 start ecosystem.config.js

Deberías ver la siguiente salida:

                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
 _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


                        -------------

[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2][WARN] Applications strider not running, starting...
[PM2] App [strider] launched (1 instances)
??????????????????????????????????????????????????????????????????????????????????????????????????????????
? App name ? id ? version ? mode ? pid   ? status ? restart ? uptime ? cpu ? mem       ? user ? watching ?
??????????????????????????????????????????????????????????????????????????????????????????????????????????
? strider  ? 0  ? N/A     ? fork ? 21502 ? online ? 0       ? 0s     ? 0%  ? 25.6 MB   ? root ? disabled ?
??????????????????????????????????????????????????????????????????????????????????????????????????????????
 Use `pm2 show <id|name>` to get more details about an app

A continuación, habilita la PM2 para que se inicie automáticamente tras el reinicio del sistema con el siguiente comando:

pm2 startup

Una vez que hayas terminado, puedes pasar al siguiente paso.

Accede a Strider

Ahora que Strider está instalado y configurado, es el momento de acceder a Strider desde el navegador web.

Abre tu navegador web y escribe la URL http://your-server-ip:3000. Serás redirigido a la página de acceso a Strider como se muestra a continuación:

Inicio de sesión en Strider

Ahora, proporciona tu nombre de usuario y contraseña de administrador que has creado anteriormente y haz clic en el botón de inicio de sesión. Una vez iniciada la sesión con éxito, deberías ver la siguiente página:

Configurar el proyecto Strider

Enhorabuena! has instalado y configurado con éxito Strider en el servidor Ubuntu 18.04. No dudes en preguntarme si tienes alguna duda. Para más información, puedes visitar la documentación oficial enStrider Doc

También te podría gustar...