Installeer Taiga.io Project Management Software op CentOS 7
Taiga.io is een open bron project management systeem voor agile ontwikkelaars, ontwerpers, en project managers. Het is een mooi project management gereedschap dat zowel eenvoudige als complexe projecten aankan voor startups, software ontwikkelaars enz.
Het Taiga platform heeft drie hoofdcomponenten, en elke component heeft zijn eigen afhankelijkheden.
- Taiga-back: Backend van de toepassing die een API biedt. Geschreven in Python en Django.
- Taiga-front-dist: Taiga Frontend geschreven in AngularJS en CoffeeScript.
- Taiga-events: Taiga WebSocket server om real-time veranderingen in de apps te laten zien. En het gebruik van RabbitMQ als message broker.
In deze zelfstudie laat ik je stap-voor-stap zien hoe je de Taiga.io project management tools installeert op de CentOS 7 server. We leren ook hoe je CentOS 7 server instelt en configureert voor de installatie van Taiga.io.
Vereisten
- CentOS 7
- Root rechten
Wat we zullen doen
- Pakketten installeren
- PostgreSQL installeren en configureren
- Taiga gebruiker toevoegen
- Configureer Taiga Terug
- Taiga voorkant configureren
- Configureer Taiga Gebeurtenissen
- Configureer Circus Procesbeheer
- Configureer Nginx Virtuele Host voor Taiga.io
- Geef Nginx toegang tot de Taiga frontend
- Testen van
Stap 1 – Pakketten installeren
Voordat we alle Taiga.io componenten installeren, moeten we het systeem voorbereiden door enkele pakketten te installeren. In deze eerste stap zullen we pakketten installeren die nodig zijn voor alle Taiga componenten en modules, waaronder Nginx, RabitMQ, Redis enz.
– Afhankelijkheden installeren
We hebben ‘Development Tools’ voor CentOS 7 nodig, die gebruikt zullen worden voor het compileren van enkele python modules.
Installeer de vereiste pakketten met het yum commando hieronder.
sudo yum -y install gcc gcc-c++ make openssl-devel binutils autoconf flex bison libjpeg-devel freetype-devel zlib-devel perl-ZMQ-LibZMQ3 gdbm-devel ncurses-devel automake libtool libffi-devel curl git tmux gettext
– Installeer de EPEL Repository
Nu moeten we de EPEL (Extra Packages for Enterprise Linux) repository installeren. Die is nodig voor de installatie van de Nginx webserver, RabbitMQ en Redis.
Installeer de EPEL Repository op het CentOS 7 systeem met het volgende commando:
sudo yum -y install epel-release
– Installeer Python
Taiga.io heeft Python 3.5 nodig voor de installatie. We zullen een repository van derden – ‘ius community’ – gebruiken om Python 3.5 te installeren.
Voeg de ‘ius community’ repository op de volgende manier toe.
sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
Installeer nu Python 3.5 met het volgende yum commando.
sudo yum -y install python35u python35u-pip python35u-devel python-devel python-pip python-virtualenvwrapper libxml2-devel libxslt-devel
– Installeer Nginx
Taiga.io is een hulpmiddel voor webtoepassingen, en het draait onder de webserver. En voor deze gids zullen we Nginx als webserver gebruiken.
Installeer Nginx uit de EPEL repository met het onderstaande yum commando.
sudo yum -y install nginx
Nadat de installatie voltooid is, start je de service en schakel je hem in om te starten bij het opstarten van het systeem.
systemctl start nginx systemctl enable nginx
Controleer nu de open poorten met het netstat commando.
netstat -plntu
En zorg ervoor dat je de HTTP poort 80 op de lijst krijgt zoals hieronder.
– Installeer Redis en RabbitMQ
Dit is optioneel, want je kunt Taiga.io nog steeds draaien zonder deze pakketten. In principe zullen de Redis en RabbitMQ pakketten gebruikt worden door taiga-events.
Installeer Redis en RabbitMQ uit de EPEL repository met het yum commando hieronder.
yum -y install rabbitmq-server redis
Als de installatie voltooid is, start dan zowel de Redis als de RabbitMQ diensten, en zet ze aan om te starten bij het opstarten van het systeem.
systemctl start rabbitmq-server systemctl enable rabbitmq-server
systemctl start redis
systemctl enable redis
Vervolgens moeten we een nieuwe gebruiker en virtuele host aanmaken met de naam ’taiga’ voor de RabbitMQ, en die zal gebruikt worden voor ’taiga-events’.
Voer de volgende commando’s uit om nieuwe gebruiker en vhost met de naam ’taiga’ aan te maken met wachtwoord ‘aqwe123′, en stel daarna de toestemming in voor de ’taiga’ gebruiker.
sudo rabbitmqctl add_user taiga aqwe123 sudo rabbitmqctl add_vhost taiga sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
– Installeer Nodejs
Node is nodig voor ’taiga-events’ – voeg de nodejs nodesource repository toe en installeer het met het yum commando.
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash - sudo yum -y install nodejs
Alle basispakketten die nodig zijn voor de installatie van Taiga.io zijn op het systeem geïnstalleerd.
Stap 2 – Installeer en configureer PostgreSQL
Taiga.io is een webapplicatie gebaseerd op het Python Django web framework, en het gebruikt PostgreSQL als databank. We hebben PostgreSQL versie 9.5 nodig voor de installatie van Taiga.io.
Voeg de PostgreSQL 9.5 repository toe aan het systeem.
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
Installeer nu PostgreSQL 9.5 met het yum commando hieronder.
sudo yum -y install postgresql95 postgresql95-devel postgresql95-contrib postgresql95-docs postgresql95-server
Nadat de installatie voltooid is, moeten we de PostgreSQL databank initialiseren.
sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb
Start nu de PostgreSQL service en zet hem aan om telkens bij het opstarten van het systeem te starten.
systemctl start postgresql-9.5 systemctl enable postgresql-9.5
Vervolgens moeten we een nieuwe database maken voor de installatie van Taiga.io. We moeten een nieuwe database en een gebruiker met de naam ’taiga’ aanmaken.
Log in als de ‘postgres’ gebruiker.
su - postgres
Maak nu een nieuwe database en gebruiker voor Taiga.io met de volgende commando’s.
createuser taiga createdb taiga -O taiga
Nieuwe PostgreSQL databank voor Taiga.io installatie is aangemaakt.
Stap 3 – Taiga gebruiker toevoegen
In deze stap maken we een nieuwe systeemgebruiker en groep met de naam ’taiga’, en voegen die dan toe aan de wielgroep voor toegang tot sudo commando’s.
Gebruik het ‘useradd’ commando hieronder om de ’taiga’ gebruiker en groep aan te maken.
useradd -U -m -s /bin/bash taiga passwd taiga
Voeg nu de ’taiga’ gebruiker toe aan de ‘wheel’ groep.
usermod -a -G wheel taiga
Test de ’taiga’ gebruiker op sudo toegang.
su - taiga sudo su
Typ je wachtwoord en controleer of de ’taiga’ gebruiker root-rechten krijgt.
Stap 4 – Configureer Taiga-back
Taiga-back is de backend van Taiga.io die een API biedt aan de Taiga frontend. Het is geschreven in Python en Django Web Framework.
In deze stap installeren en configureren we de taiga component ’taiga-back’.
Meld je aan bij de ’taiga’ gebruiker en download de ’taiga-back’ broncode van GitHub.
su - taiga git clone https://github.com/taigaio/taiga-back.git taiga-back
Ga nu naar de ’taiga-back’ directory en verander de branch in de ‘stable’ branch.
cd taiga-back git checkout stable
Voor we verder gaan, moeten we het virtualenv pakket bijwerken.
sudo pip install --upgrade virtualenv
Maak vervolgens een nieuwe python omgeving ’taiga’ met het mkvirtualenv commando.
mkvirtualenv -p /usr/bin/python3.5 taiga
Nieuwe virtualenv voor ’taiga-back’ is aangemaakt.
Voordat we alle modules voor taiga-back installeren, moeten we een nieuwe link maken voor het ‘pg_config’ commando naar de ‘/usr/bin’ directory.
sudo ln -s /usr/pgsql-9.5/bin/pg_config /usr/bin/pg_config
Installeer nu alle python modules die nodig zijn voor de ’taiga-back’ met de onderstaande commando’s.
workon taiga pip install -r requirements.txt
Nadat de installatie voltooid is, moeten we de database vullen met de eerste basisgegevens.
Voer alle volgende commando’s uit.
python manage.py migrate --noinput python manage.py loaddata initial_user python manage.py loaddata initial_project_templates python manage.py compilemessages python manage.py collectstatic --noinput
Deze commando’s zullen automatisch een beheerdersaccount‘admin‘ aanmaken met wachtwoord‘123123‘.
Maak vervolgens met vim een nieuwe configuratie voor ’taiga-back’.
vim ~/taiga-back/settings/local.py
Plak er de volgende configuratie in.
from .common import *
MEDIA_URL = “http://taiga.hakase-labs.co/media/”
STATIC_URL = “http://taiga.hakase-labs.co/static/”
SITES[“front”][“scheme”] = “http”
SITES[“front”][“domain”] = “taiga.hakase-labs.co”
SECRET_KEY = “theveryultratopsecretkey”
DEBUG = False
PUBLIC_REGISTER_ENABLED = True
DEFAULT_FROM_EMAIL = “[email protected]”
SERVER_EMAIL = DEFAULT_FROM_EMAIL
#CELERY_ENABLED = True
EVENTS_PUSH_BACKEND = “taiga.events.backends.rabbitmq.EventsPushBackend”
EVENTS_PUSH_BACKEND_OPTIONS = {“url”: “amqp://taiga:[email protected]:5672/taiga”}
# Uncomment and populate with proper connection parameters
# for enable email sending. EMAIL_HOST_USER should end by @domain.tld
#EMAIL_BACKEND = “django.core.mail.backends.smtp.EmailBackend”
#EMAIL_USE_TLS = False
#EMAIL_HOST = “localhost”
#EMAIL_HOST_USER = “”
#EMAIL_HOST_PASSWORD = “”
#EMAIL_PORT = 25
# Uncomment and populate with proper connection parameters
# for enable github login/singin.
#GITHUB_API_CLIENT_ID = “yourgithubclientid”
#GITHUB_API_CLIENT_SECRET = “yourgithubclientsecret”
Bewaar en sluit af.
Opmerking:
- Verander de ‘MEDIA_URL’ en ‘STATIC_URL’ met je eigen domeinnaam.
- Verander de ‘SECRET_KEY’ met je eigen zeer geheime sleutel.
- Verander de EVENTS_PUSH_BACKEND_OPTIONS wachtwoord waarde in je eigen RabbitMQ waarde. Voor deze gids gebruiken we wachtwoord ‘aqwe123’.
Test nu ’taiga-back’ met het onderstaande commando.
workon taiga python manage.py runserver 0.0.0.0:8000
Het commando zal taiga-back uitvoeren onder het publieke IP van de server met poort 8000.
Open de webbrowser en bezoek het volgende adres.
http://192.168.33.10:8000/api/v1/
En je krijgt de ’taiga-back’ API met JSON formaat zoals hieronder.
De ’taiga-back’ installatie en configuratie zijn voltooid.
Stap 5 – Configureer Taiga frontend
In deze stap zullen we de taiga frontend downloaden en configureren. De Frontend zal alle taiga interfaces afhandelen.
Log in op de taiga gebruiker.
su - taiga
Download de ‘Taiga frontend’ broncode met git.
cd ~ git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
Ga naar de ’taiga-front-dist’ directory en verander de branch in ‘stable’.
cd taiga-front-dist git checkout stable
Kopieer het standaard configuratiebestand en bewerk het met vim.
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json vim ~/taiga-front-dist/dist/conf.json
Kopieer de volgende configuratie:
{ "api": "http://taiga.hakase-labs.co/api/v1/", "eventsUrl": "ws://taiga.hakase-labs.co/events", "debug": "true", "publicRegisterEnabled": true, "feedbackEnabled": true, "privacyPolicyUrl": null, "termsOfServiceUrl": null, "maxUploadFileSize": null, "contribPlugins": [] }
Bewaar en sluit af.
De ‘Taiga frontend’ configuratie is voltooid.
Stap 6 – Configureer Taiga-events
Taiga-events is een WebSocket server waarmee je real-time veranderingen in het Taiga.io Dashboard kunt tonen, en het gebruikt RabbitMQ als message broker. In deze stap downloaden en configureren we ’taiga-events’.
Log in op de ’taiga’ gebruiker.
su - taiga
Download de ’taiga-events’ broncode en ga naar de directory.
git clone https://github.com/taigaio/taiga-events.git taiga-events cd taiga-events
Nu moeten we alle javascript bibliotheken die nodig zijn voor ’taiga-events’ downloaden en installeren met het npm commando op de volgende manier.
npm install sudo npm install -g coffee-script
Opmerking: We moeten het ‘koffie-script’ onder root systeem installeren.
Kopieer vervolgens het JSON configuratiebestand naar ‘config.json’ en bewerk het dan met vim.
cp config.example.json config.json vim config.json
Plak er de volgende configuratie in.
{ "url": "amqp://taiga:[email protected]:5672/taiga", "secret": "theveryultratopsecretkey", "webSocketServer": { "port": 8888 } }
Sla op en sluit af.
Opmerking:
- Verander de ‘url’ waarde met je eigen rabbitmq gebruiker en wachtwoord.
- Zorg er voor dat de ‘secret’ waarde overeenkomt met de ‘SECRET_KEY’ op ‘local.py’ – het configuratiebestand van ’taiga-back’.
De configuratie van Taiga-events is voltooid.
Stap 7 – Installeer en configureer Circus
Circus zal gebruikt worden voor het besturen en beheren van ’taiga-back’ en ’taiga-events’ processen. ’taiga-events’ draait als een koffiescript, en ’taiga-back’ draait onder Gunicorn.
In deze stap installeren we Circus handmatig vanaf de broncode.
Log in als de taiga gebruiker.
su - taiga
Download nu de circus broncode met git.
cd ~/ git clone https://github.com/circus-tent/circus.git circus
Voordat we circus op het systeem installeren, moeten we een nieuwe map maken voor de configuratie van circus.
Maak een nieuwe ‘conf’ map onder de taiga gebruiker.
mkdir -p ~/conf
En maak nieuwe circus configuratie voor Taiga.io met de naam ’taiga.ini’.
vim ~/conf/taiga.ini
Plak er de volgende configuratie in.
[circus] check_delay = 5 endpoint = tcp://127.0.0.1:5555 pubsub_endpoint = tcp://127.0.0.1:5556 statsd = true
[watcher:taiga-events]
working_dir = /home/taiga/taiga-events
cmd = /usr/bin/coffee
args = index.coffee
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/taigaevents.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 12
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/taigaevents.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 12
[watcher:taiga]
working_dir = /home/taiga/taiga-back
cmd = gunicorn
args = -w 3 -t 60 –pythonpath=. -b 127.0.0.1:8001 taiga.wsgi
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/gunicorn.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 4
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/gunicorn.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 4
[env:taiga]
PATH = /home/taiga/.virtualenvs/taiga/bin:$PATH
TERM=rxvt-256color
SHELL=/bin/bash
USER=taiga
LANG=en_US.UTF-8
HOME=/home/taiga
PYTHONPATH=/home/taiga/.virtualenvs/taiga/lib/python3.5/site-packages
Bewaar en sluit af.
Maak nu de map voor circus logbestanden.
mkdir -p ~/logs
Ga naar de circus directory en installeer de software met root privileges.
cd ~/circus sudo python3.5 setup.py install
Als de installatie voltooid is, zullen we circus als een dienst op het systeem instellen.
Voer het sudo commando uit en maak dan een nieuw service bestand ‘circusd.service’.
sudo su vim /usr/lib/systemd/system/circusd.service
Plak er de volgende configuratie in.
[Unit] Description=circus
[Service]
ExecStart=/usr/bin/circusd /home/taiga/conf/taiga.ini
Sla op en sluit af.
Herlaad nu systemd met onderstaand commando.
systemctl daemon-reload
Controleer of er geen fout optreedt, start dan de circusd service en zet hem aan om telkens bij het opstarten van het systeem te starten.
systemctl start circusd systemctl enable circusd
De installatie en configuratie van circus voor Taiga.io is voltooid. Controleer het met het circusctl commando hieronder.
circusctl status
En controleer of je de taiga-back en taiga-events op de circus proceslijst krijgt.
Of je kunt het systemctl commando gebruiken zoals hieronder.
systemctl status circusd
Stap 8 – Configureer Taiga Nginx Virtuele Host
In deze stap configureren we de Nginx virtuele host voor Taiga.io. We maken een nieuw virtuele host bestand aan onder de ‘conf.d’ directory voor onze Taiga.io installatie.
Ga naar de nginx configuratie directory en maak een nieuw bestand ’taiga.conf’ aan onder de ‘conf.d’ directory.
cd /etc/nginx/ vim conf.d/taiga.conf
Plak er de volgende configuratie in.
server { listen 80; server_name taiga.hakase-labs.co;
large_client_header_buffers 4 32k;
client_max_body_size 50M;
charset utf-8;
access_log /var/log/nginx/taiga.access.log;
error_log /var/log/nginx/taiga.error.log;
# Frontend
location / {
root /home/taiga/taiga-front-dist/dist/;
try_files $uri $uri/ /index.html;
}
# Backend
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001/api;
proxy_redirect off;
}
# Django admin access (/admin/)
location /admin {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001$request_uri;
proxy_redirect off;
}
# Static files
location /static {
alias /home/taiga/taiga-back/static;
}
# Media files
location /media {
alias /home/taiga/taiga-back/media;
}
# Taiga-events
location /events {
proxy_pass http://127.0.0.1:8888/events;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
}
Sla op en sluit af.
Voer nu de test nginx configuratie uit en controleer of er geen fout optreedt. Herstart dan de webserver dienst.
nginx -t systemctl restart nginx
De virtuele host configuratie voor Taiga.io is nu voltooid.
Stap 9 – Nginx toegang geven tot de Taiga frontend
Soms krijg je een foutmelding over de Nginx webserver die zegt dat hij de taiga-frontend bestanden niet kan benaderen – je ziet in dit geval de Nginx ‘500 Internal Server Error’.
Om dit probleem op te lossen, moeten we de eigenaar of groep van alle taiga-frontend bestanden veranderen en Nginx toegang geven tot alle bestanden.
Standaard op CentOS 7 draait de Nginx webserver onder de ‘nginx’ gebruiker en de Taiga.io installatie draait onder de ’taiga’ gebruiker.
Het volgende is het voorbeeld van de Nginx fout waar we het over hebben.
Nginx webserver kan niet alle inhoud lezen op de ‘/home/taiga/taiga-front-dist/dist’ directory.
Controleer dit met het onderstaande commando.
sudo -u nginx stat /home/taiga/taiga-front-dist/dist
En je krijgt het resultaat ‘permission denied’.
Nu moeten we de ‘nginx’ gebruiker toevoegen aan de ’taiga’ groep en de nginx gebruiker de vereiste permissies geven voor de taiga-front-dist directory.
Voeg ‘nginx’ gebruiker toe aan de ’taiga’ groep.
sudo gpasswd -a nginx taiga
Geef de webserver permissies om alle inhoud op de taiga-front-dist directory te lezen.
sudo chmod g+x /home/taiga sudo chmod g+x /home/taiga/taiga-front-dist sudo chmod g+x /home/taiga/taiga-front-dist/dist
En herstart de Nginx webserver.
systemctl restart nginx
Stap 10 – Testen
Open je webbrowser en bezoek de domeinnaam van je Taiga installatie, de mijne ishttp://taiga.hakase-labs.co
En je zou de Taiga standaard startpagina moeten krijgen a hieronder getoond.
Typ hier de standaard gebruiker‘admin‘ met wachtwoord‘123123‘, en klik dan op de knop ‘Login’.
En je komt in het admin dashboard.
De installatie van Taiga.io op CentOS 7 met Nginx webserver is met succes voltooid.