Strider Continue Integratie Server te installeren op Ubuntu 18.04 LTS

Strider is een gratis en open-source Continuous Integration & Deployment Server, geschreven in Node.JS, JavaScript en gebruikt MongoDB om de gegevens op te slaan. Strider wordt geleverd met een heleboel plugins die gebruikt kunnen worden om verschillende functies aan de toepassing toe te voegen.

In deze zelfstudie leggen we uit hoe je Strider op een Ubuntu 18.04 server kunt installeren.

Vereisten

  • Een server waarop Ubuntu 18.04 draait.
  • Een root wachtwoord is op je server ingesteld.

Aan de slag

Voor je begint is het aan te raden je pakketten bij te werken naar de laatste versie. Je kunt alle pakketten bijwerken door het volgende commando uit te voeren:

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

Als alle pakketten zijn bijgewerkt, herstart je je systeem om de veranderingen toe te passen.

Installeer vervolgens het pakket curl en git met het volgende commando:

apt-get install curl git -y

Als alle benodigde pakketten geïnstalleerd zijn, kun je verder gaan met de volgende stap.

Installeer Node.js

Vervolgens moet je Node.js en andere vereiste pakketten op je server installeren.

Standaard is Node.js niet beschikbaar in de Ubuntu 18.04 standaard repository. Je zult dus de Node.js repository aan je systeem moeten toevoegen. Je kunt de repository toevoegen met het volgende commando:

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

Als de repository is toegevoegd, update je de repository en installeer je Node.js met het volgende commando:

apt-get install nodejs node-gyp -y

Na de installatie van Node.js controleer je de versie van Node.js en NPM met het volgende commando:

node -v

Je zou de volgende uitvoer moeten zien:

v12.6.0
npm -v

Je zou de volgende uitvoer moeten zien:

6.9.0

Installeer en configureer MongoDB

Strider gebruikt MongoDB als backing store. Je zult dus MongoDB op je systeem moeten installeren.

Importeer eerst de GPG publieke sleutel voor MongoDB met het volgende commando:

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

Voeg vervolgens de MongoDB repository toe met het volgende commando:

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

Je zou de volgende uitvoer moeten zien:

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

Werk vervolgens de repository bij en installeer MongoDB met het volgende commando:

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

Als de installatie voltooid is, start je de MongoDB service en zet je hem aan om te starten na een herstart van het systeem met het volgende commando:

systemctl start mongod
systemctl enable mongod

Je kunt ook de MongoDB status controleren met het volgende commando:

systemctl status mongod

Je zou de volgende uitvoer moeten zien:

? 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.

Vervolgens moet je MongoDB instellen voor authenticatie.

Open daartoe de MongoDB shell met het volgende commando:

mongo

Je zou de volgende uitvoer moeten zien:

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()
---

Verander vervolgens de database in admin en maak een admin gebruiker aan met het volgende commando:

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

Verlaat vervolgens de MongoDB shell met het volgende commando:

> exit

Open vervolgens het MongoDB configuratiebestand en schakel authenticatie in met het volgende commando:

nano /etc/mongod.conf

Breng de volgende wijzigingen aan:

security:
  authorization: enabled

Sla het bestand op en sluit het. Herstart dan de MongoDB dienst om de configuratiewijzigingen toe te passen met het volgende commando:

systemctl restart mongod

Installeer Strider

Download eerst de nieuwste versie van Strider met het volgende commando:

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

Installeer vervolgens de vereiste afhankelijkheden met het volgende commando:

cd strider
npm install

Vervolgens moet je een nieuwe strider gebruiker aanmaken en die toewijzen aan de database strider.

Open daartoe de MongoDB shell met het volgende commando:

mongo

Verifieer vervolgens je MongoDB sessie met admin gebruiker:

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

Maak vervolgens een databankgebruiker aan en wijs die toe aan de databanknaam strider:

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

Verlaat vervolgens de MongoDB shell en maak een admin gebruiker voor Strider met het volgende commando:

cd /opt/strider
DB_URI="mongodb://strider:[email protected]:27017/strider" node bin/strider addUser

Geef alle vereiste informatie zoals hieronder getoond:

Connecting to MongoDB URL: mongodb://strider:[email protected]: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.

Installeer en configureer PM2

Vervolgens moet je PM2 installeren om het Node.js proces te beheren. Installeer eerst PM2 met npm zoals hieronder getoond:

npm install pm2 -g

Maak vervolgens een nieuw configuratiebestand voor PM2 met het volgende commando:

cd /opt/strider
nano ecosystem.config.js

Voeg de volgende regels toe:

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

Sla het bestand op en sluit het, als je klaar bent. Start dan de applicatie met het volgende commando:

pm2 start ecosystem.config.js

Je zou de volgende uitvoer moeten zien:

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

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


                          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

Schakel vervolgens PM2 in om automatisch te starten na een herstart van het systeem met het volgende commando:

pm2 startup

Als je klaar bent, kun je verder gaan met de volgende stap.

Toegang tot Strider

Strider is nu geïnstalleerd en geconfigureerd, het is tijd om Strider te benaderen via de web browser.

Open je web browser en typ de URL http://your-server-ip:3000. Je wordt doorgestuurd naar de Strider login pagina zoals hieronder:

Strider Inloggen

Geef nu je admin gebruikersnaam en wachtwoord op die je eerder gemaakt hebt en klik op de knop Login. Na succesvolle login zou je de volgende pagina moeten zien:

Configureer Strider Project

Gefeliciteerd! je hebt Strider met succes geïnstalleerd en geconfigureerd op Ubuntu 18.04 server. Voel je vrij me te vragen als je vragen hebt. Voor meer informatie kun je de officiële documentatie bezoeken opStrider Doc