Taiga.io è un sistema di gestione dei progetti open source per sviluppatori agili, designer e project manager. È un bellissimo strumento di gestione dei progetti in grado di gestire progetti sia semplici che complessi per startup, sviluppatori di software ecc.
La piattaforma Taiga ha tre componenti principali e ogni componente ha le proprie dipendenze.
- Taiga-back :backend dell'applicazione che fornisce un'API. Scritto in Python e Django.
- Taiga-front-dist :Taiga Frontend scritto in AngularJS e CoffeeScript.
- Eventi Taiga :server Taiga WebSocket per mostrare le modifiche in tempo reale nelle app. E utilizzando RabbitMQ come broker di messaggi.
In questo tutorial, ti mostrerò passo dopo passo come installare gli strumenti di gestione dei progetti Taiga.io sul server CentOS 7. Impareremo anche come configurare e configurare il server CentOS 7 per l'installazione di Taiga.io.
Prerequisiti
- CentOS 7
- Privilegi di root
Cosa faremo
- Installa pacchetti
- Installa e configura PostgreSQL
- Aggiungi utente Taiga
- Configura Taiga indietro
- Configura il frontend Taiga
- Configura eventi Taiga
- Configura la gestione del processo Circus
- Configura Nginx Virtual Host per Taiga.io
- Consenti a Nginx di accedere al frontend Taiga
- Test
Passaggio 1:installazione dei pacchetti
Prima di installare tutti i componenti di Taiga.io, dobbiamo preparare il sistema installando alcuni pacchetti. In questo primo passaggio, installeremo i pacchetti necessari per tutti i componenti e moduli Taiga, inclusi Nginx, RabitMQ, Redis ecc.
- Installa dipendenze
Abbiamo bisogno di "Strumenti di sviluppo" per CentOS 7 che verranno utilizzati per compilare alcuni moduli Python.
Installa i pacchetti richiesti usando il comando yum di seguito.
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
- Installa il repository EPEL
Ora dobbiamo installare il repository EPEL (Extra Packages for Enterprise Linux). È necessario per installare il server web Nginx, RabbitMQ e Redis.
Installa EPEL Repository sul sistema CentOS 7 utilizzando il comando seguente:
sudo yum -y install epel-release
- Installa Python
Taiga.io ha bisogno di Python 3.5 per l'installazione. Utilizzeremo un repository di terze parti - "ius community" - per installare Python 3.5.
Aggiungi il repository 'ius community' nel modo seguente.
sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
Ora installa Python 3.5 usando il seguente comando yum.
sudo yum -y install python35u python35u-pip python35u-devel python-devel python-pip python-virtualenvwrapper libxml2-devel libxslt-devel
- Installa Nginx
Taiga.io è uno strumento di applicazione Web e viene eseguito nel server Web. E per questa guida, utilizzeremo Nginx come server web.
Installa Nginx dal repository EPEL usando il comando yum di seguito.
sudo yum -y install nginx
Al termine dell'installazione, avvia il servizio e abilitalo all'avvio all'avvio del sistema.
systemctl start nginx
systemctl enable nginx
Ora controlla la porta aperta usando il comando netstat.
netstat -plntu
E assicurati di avere la porta HTTP 80 nell'elenco come mostrato di seguito.
- Installa Redis e RabbitMQ
Questo è facoltativo, poiché puoi ancora eseguire Taiga.io senza questi pacchetti. Fondamentalmente, i pacchetti Redis e RabbitMQ verranno utilizzati da taiga-events.
Installa Redis e RabbitMQ dal repository EPEL utilizzando il comando yum di seguito.
yum -y install rabbitmq-server redis
Se l'installazione è completa, avvia i servizi Redis e RabbitMQ, quindi abilita l'avvio all'avvio del sistema.
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
systemctl start redis
systemctl enable redis
Successivamente, dobbiamo creare un nuovo utente e un host virtuale chiamato "taiga" per RabbitMQ, che verrà utilizzato per "eventi taiga".
Esegui i seguenti comandi per creare un nuovo utente e vhost denominato 'taiga' con password 'aqwe123', quindi imposta l'autorizzazione per l'utente 'taiga'.
sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
- Installa Nodejs
Il nodo è necessario per 'taiga-events':aggiungi il repository nodejs nodesource e installalo con il comando yum.
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum -y install nodejs
Tutti i pacchetti di base necessari per l'installazione di Taiga.io sono stati installati sul sistema.
Passaggio 2:installazione e configurazione di PostgreSQL
Taiga.io è un'applicazione web basata sul framework web Python Django e utilizza PostgreSQL come database. Abbiamo bisogno di PostgreSQL versione 9.5 per l'installazione di Taiga.io.
Aggiungi il repository PostgreSQL 9.5 al sistema.
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
Ora installa PostgreSQL 9.5 usando il comando yum di seguito.
sudo yum -y install postgresql95 postgresql95-devel postgresql95-contrib postgresql95-docs postgresql95-server
Al termine dell'installazione, è necessario inizializzare il database PostgreSQL.
sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb
Ora avvia il servizio PostgreSQL e abilitalo per l'avvio ogni volta all'avvio del sistema.
systemctl start postgresql-9.5
systemctl enable postgresql-9.5
Successivamente, dobbiamo creare un nuovo database per l'installazione di Taiga.io. Dobbiamo creare un nuovo database e un utente chiamato 'taiga'.
Accedi come utente 'postgres'.
su - postgres
Ora crea un nuovo database e utente per Taiga.io usando i seguenti comandi.
createuser taiga
createdb taiga -O taiga
È stato creato un nuovo database PostgreSQL per l'installazione di Taiga.io.
Fase 3 - Aggiungi utente Taiga
In questo passaggio, creeremo un nuovo utente e gruppo di sistema denominato "taiga", quindi lo aggiungeremo al gruppo ruota per l'accesso al comando sudo.
Usa il comando 'useradd' di seguito per creare l'utente e il gruppo 'taiga'.
useradd -U -m -s /bin/bash taiga
passwd taiga
Ora aggiungi l'utente "taiga" al gruppo "ruota".
usermod -a -G wheel taiga
Testare l'utente 'taiga' per l'accesso sudo.
su - taiga
sudo su
Digita la tua password e assicurati di ottenere i privilegi di root per l'utente 'taiga'.
Fase 4 - Configura Taiga Back
Taiga-back è il backend di Taiga.io che fornisce un'API al frontend Taiga. È scritto in Python e Django Web Framework.
In questo passaggio installeremo e configureremo il componente taiga 'taiga-back'.
Accedi all'utente 'taiga' e scarica il codice sorgente 'taiga-back' da GitHub.
su - taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back
Ora vai alla directory 'taiga-back' e cambia il ramo nel ramo 'stabile'.
cd taiga-back
git checkout stable
Prima di andare oltre, dobbiamo aggiornare il pacchetto virtualenv.
sudo pip install --upgrade virtualenv
Quindi, crea il nuovo ambiente Python "taiga" usando il comando mkvirtualenv.
mkvirtualenv -p /usr/bin/python3.5 taiga
È stato creato un nuovo virtualenv per 'taiga-back'.
Prima di installare tutti i moduli per taiga-back, dobbiamo creare un nuovo collegamento per il comando 'pg_config' alla directory '/usr/bin'.
sudo ln -s /usr/pgsql-9.5/bin/pg_config /usr/bin/pg_config
Ora installa tutti i moduli Python necessari al 'taiga-back' usando i comandi seguenti.
workon taiga
pip install -r requirements.txt
Al termine dell'installazione, è necessario popolare il database con i dati di base iniziali.
Esegui tutti i seguenti comandi.
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
Questi comandi creeranno automaticamente un account amministratore 'admin ' con password '123123 '.
Quindi, crea una nuova configurazione per 'taiga-back' usando vim.
vim ~/taiga-back/settings/local.py
Incolla lì la seguente configurazione.
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"
Salva ed esci.
Nota:
- Cambia 'MEDIA_URL' e 'STATIC_URL' con il tuo nome di dominio.
- Cambia la 'SECRET_KEY' con la tua chiave molto segreta.
- Cambia il valore della password EVENTS_PUSH_BACKEND_OPTIONS con il tuo valore RabbitMQ. Per questa guida utilizziamo la password 'aqwe123'.
Ora prova 'taiga-back' con il comando seguente.
workon taiga
python manage.py runserver 0.0.0.0:8000
Il comando eseguirà taiga-back sotto l'IP pubblico del server con la porta 8000.
Apri il browser web e visita il seguente indirizzo.
http://192.168.33.10:8000/api/v1/
E otterrai l'API "taiga-back" con formato JSON come di seguito.
L'installazione e la configurazione di 'taiga-back' sono state completate.
Passaggio 5 - Configura Taiga Frontend
In questo passaggio, scaricheremo e configureremo il frontend taiga. Il Frontend gestirà tutte le interfacce taiga.
Accedi all'utente taiga.
su - taiga
Scarica il codice sorgente "Taiga frontend" usando git.
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
Vai alla directory 'taiga-front-dist' e cambia il ramo in 'stable'.
cd taiga-front-dist
git checkout stable
Copia il file di configurazione predefinito e modificalo usando vim.
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
Copia la seguente configurazione:
{
"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": []
}
Salva ed esci.
La configurazione del "frontend Taiga" è stata completata.
Passaggio 6 - Configura eventi Taiga
Taiga-events è un server WebSocket che ti consente di mostrare le modifiche in tempo reale nel dashboard di Taiga.io e utilizza RabbitMQ come broker di messaggi. In questo passaggio, scaricheremo e configureremo 'taiga-eventi'.
Accedi all'utente 'taiga'.
su - taiga
Scarica il codice sorgente di "Taiga Events" e vai alla directory.
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Ora dobbiamo scaricare e installare tutte le librerie javascript necessarie per 'taiga-events' usando il comando npm nel modo seguente.
npm install
sudo npm install -g coffee-script
Nota: Abbiamo bisogno di installare 'coffee-script' sotto il sistema di root.
Quindi, copia il file di configurazione JSON in 'config.json', quindi modificalo usando vim.
cp config.example.json config.json
vim config.json
Incolla lì la seguente configurazione.
{
"url": "amqp://taiga:[email protected]:5672/taiga",
"secret": "theveryultratopsecretkey",
"webSocketServer": {
"port": 8888
}
}
Salva ed esci.
Nota:
- Cambia il valore 'url' con il tuo utente e password rabbitmq.
- Per il valore 'segreto', assicurati che corrisponda a 'SECRET_KEY' su 'local.py' - il file di configurazione di 'taiga-back'.
La configurazione degli eventi Taiga è stata completata.
Passaggio 7 - Installa e configura Circus
Circus sarà utilizzato per il controllo e la gestione del processo "taiga-back" e "taiga-eventi". "taiga-events" viene eseguito come script per il caffè e "taiga-back" viene eseguito sotto Gunicorn.
In questo passaggio, installeremo Circus manualmente dal codice sorgente.
Accedi come utente taiga.
su - taiga
Ora scarica il codice sorgente del circo usando git.
cd ~/
git clone https://github.com/circus-tent/circus.git circus
Prima di installare circus sul sistema, dobbiamo creare una nuova directory per la configurazione di circus.
Crea una nuova directory 'conf' sotto l'utente taiga.
mkdir -p ~/conf
E crea una nuova configurazione del circo per Taiga.io denominata 'taiga.ini'.
vim ~/conf/taiga.ini
Incolla la seguente configurazione.
[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
Salva ed esci.
Ora crea la directory per i file di registro del circo.
mkdir -p ~/logs
Vai alla directory del circo e installa il software con i privilegi di root.
cd ~/circus
sudo python3.5 setup.py install
Al termine dell'installazione, configureremo circus come servizio sul sistema.
Esegui il comando sudo, quindi crea un nuovo file di servizio "circusd.service".
sudo su
vim /usr/lib/systemd/system/circusd.service
Incolla lì la seguente configurazione.
[Unit]
Description=circus
[Service]
ExecStart=/usr/bin/circusd /home/taiga/conf/taiga.ini
Salva ed esci.
Ora ricarica il sistema systemd usando il comando seguente.
systemctl daemon-reload
Assicurati che non ci siano errori, quindi avvia il servizio circusd e abilitalo per l'avvio ogni volta all'avvio del sistema.
systemctl start circusd
systemctl enable circusd
L'installazione e la configurazione di Circus per Taiga.io sono state completate. Controllalo usando il comando circusctl qui sotto.
circusctl status
E assicurati di avere il taiga-back e gli eventi taiga nell'elenco dei processi del circo.
Oppure puoi usare il comando systemctl come di seguito.
systemctl status circusd
Passaggio 8:configurazione dell'host virtuale Taiga Nginx
In questo passaggio, configureremo l'host virtuale Nginx per Taiga.io. Creeremo un nuovo file host virtuale nella directory 'conf.d' per la nostra installazione di Taiga.io.
Vai alla directory di configurazione di nginx e crea un nuovo file 'taiga.conf' nella directory 'conf.d'.
cd /etc/nginx/
vim conf.d/taiga.conf
Incolla lì la seguente configurazione.
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;
}
}
Salva ed esci.
Ora esegui la configurazione di test nginx e assicurati che non ci siano errori. Quindi riavvia il servizio del server web.
nginx -t
systemctl restart nginx
La configurazione dell'host virtuale per Taiga.io è stata completata.
Fase 9:consentire a Nginx di accedere al Taiga Frontend
A volte potresti ricevere un errore sul server web Nginx che dice che non può accedere ai file taiga-frontend:in questo caso vedrai Nginx '500 Internal Server Error'.
Per risolvere questo problema, dobbiamo cambiare il proprietario o il gruppo di tutti i file taiga-frontend e dare a Nginx l'accesso a tutti i file.
Per impostazione predefinita su CentOS 7, il server Web Nginx è in esecuzione con l'utente 'nginx' e l'installazione di Taiga.io è in esecuzione con l'utente 'taiga'.
Di seguito è riportato l'esempio dell'errore Nginx di cui stiamo parlando.
Il server web Nginx non può leggere tutto il contenuto nella directory '/home/taiga/taiga-front-dist/dist'.
Verificalo usando il comando seguente.
sudo -u nginx stat /home/taiga/taiga-front-dist/dist
E otterrai il risultato del permesso negato.
Ora dobbiamo aggiungere l'utente 'nginx' al gruppo 'taiga' e fornire all'utente nginx i permessi necessari per la directory taiga-front-dist.
Aggiungi l'utente 'nginx' al gruppo 'taiga'.
sudo gpasswd -a nginx taiga
Concedi al server web le autorizzazioni per leggere tutto il contenuto nella directory taiga-front-dist.
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
E riavvia il server web Nginx.
systemctl restart nginx
Fase 10 - Test
Apri il tuo browser web e visita il tuo nome di dominio di installazione Taiga, il mio è http://taiga.hakase-labs.co
E dovresti ottenere la home page predefinita di Taiga mostrata di seguito.
Qui, digita l'utente predefinito 'admin ' con password '123123 ', quindi fare clic sul pulsante 'Accedi'.
E arriverai alla dashboard dell'amministratore.
L'installazione di Taiga.io su CentOS 7 con il server web Nginx è stata completata con successo.