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:
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:
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