Taiga.io est un système de gestion de projet open source pour les développeurs agiles, les concepteurs et les chefs de projet. C'est un bel outil de gestion de projet qui peut gérer à la fois des projets simples et complexes pour les startups, les développeurs de logiciels, etc.
La plate-forme Taiga comporte trois composants principaux, et chaque composant a ses propres dépendances.
- Taïga arrière :Backend de l'application qui fournit une API. Écrit en Python et Django.
- Taiga-front-dist :Taiga Frontend écrit en AngularJS et CoffeeScript.
- Événements Taiga :Serveur Taiga WebSocket pour afficher les modifications en temps réel dans les applications. Et utiliser RabbitMQ comme courtier de messages.
Dans ce tutoriel, je vais vous montrer étape par étape comment installer les outils de gestion de projet Taiga.io sur le serveur CentOS 7. Nous apprendrons également comment installer et configurer le serveur CentOS 7 pour l'installation de Taiga.io.
Prérequis
- CentOS 7
- Privilèges root
Ce que nous allons faire
- Installer des packages
- Installer et configurer PostgreSQL
- Ajouter un utilisateur Taiga
- Configurer Taiga Back
- Configurer l'interface Taiga
- Configurer les événements Taiga
- Configurer la gestion des processus Circus
- Configurer l'hôte virtuel Nginx pour Taiga.io
- Autoriser Nginx à accéder à l'interface Taiga
- Test
Étape 1 - Installer les packages
Avant d'installer tous les composants Taiga.io, nous devons préparer le système en installant certains packages. Dans cette première étape, nous installerons les packages nécessaires pour tous les composants et modules Taiga, y compris Nginx, RabitMQ, Redis, etc.
- Installer les dépendances
Nous avons besoin d''Outils de développement' pour CentOS 7 qui seront utilisés pour compiler certains modules python.
Installez les packages requis à l'aide de la commande yum ci-dessous.
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- Installer le référentiel EPEL
Nous devons maintenant installer le référentiel EPEL (Extra Packages for Enterprise Linux). Il est nécessaire pour installer le serveur Web Nginx, RabbitMQ et Redis.
Installez le référentiel EPEL sur le système CentOS 7 à l'aide de la commande suivante :
sudo yum -y install epel-release- Installer Python
Taiga.io a besoin de Python 3.5 pour l'installation. Nous utiliserons un référentiel tiers - "ius community" - pour installer Python 3.5.
Ajoutez le référentiel 'ius community' de la manière suivante.
sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpmInstallez maintenant Python 3.5 à l'aide de la commande yum suivante.
sudo yum -y install python35u python35u-pip python35u-devel python-devel python-pip python-virtualenvwrapper libxml2-devel libxslt-devel- Installer Nginx
Taiga.io est un outil d'application Web qui s'exécute sous le serveur Web. Et pour ce guide, nous utiliserons Nginx comme serveur Web.
Installez Nginx à partir du référentiel EPEL à l'aide de la commande yum ci-dessous.
sudo yum -y install nginxUne fois l'installation terminée, démarrez le service et activez-le pour qu'il se lance au démarrage du système.
systemctl démarrer nginx
systemctl activer nginxVérifiez maintenant le port ouvert à l'aide de la commande netstat.
netstat -plntuEt assurez-vous d'avoir le port HTTP 80 dans la liste comme indiqué ci-dessous.
- Installer Redis et RabbitMQ
Ceci est facultatif, car vous pouvez toujours exécuter Taiga.io sans ces packages. Fondamentalement, les packages Redis et RabbitMQ seront utilisés par taiga-events.
Installez Redis et RabbitMQ à partir du référentiel EPEL à l'aide de la commande yum ci-dessous.
yum -y install redis rabbitmq-serverSi l'installation est terminée, démarrez les services Redis et RabbitMQ, puis activez-les pour qu'ils se lancent au démarrage du système.
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
systemctl start redis
systemctl enable redis
Ensuite, nous devons créer un nouvel utilisateur et un hôte virtuel nommé 'taiga' pour le RabbitMQ, et il sera utilisé pour les 'taiga-events'.
Exécutez les commandes suivantes pour créer un nouvel utilisateur et un nouvel hôte virtuel nommé 'taiga' avec le mot de passe 'aqwe123', puis définissez l'autorisation pour l'utilisateur 'taiga'.
sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
- Installer Nodejs
Le nœud est requis par 'taiga-events' - ajoutez le référentiel nodejs nodesource et installez-le avec la commande yum.
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum -y install nodejsTous les packages de base nécessaires à l'installation de Taiga.io ont été installés sur le système.
Étape 2 - Installer et configurer PostgreSQL
Taiga.io est une application Web basée sur le framework Web Python Django et utilise PostgreSQL comme base de données. Nous avons besoin de PostgreSQL version 9.5 pour l'installation de Taiga.io.
Ajoutez le référentiel PostgreSQL 9.5 au système.
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpmInstallez maintenant PostgreSQL 9.5 à l'aide de la commande yum ci-dessous.
sudo yum -y install postgresql95 postgresql95-devel postgresql95-contrib postgresql95-docs postgresql95-serverUne fois l'installation terminée, nous devons initialiser la base de données PostgreSQL.
sudo /usr/pgsql-9.5/bin/postgresql95-setup initdbDémarrez maintenant le service PostgreSQL et activez-le pour qu'il se lance à chaque démarrage du système.
systemctl start postgresql-9.5
systemctl enable postgresql-9.5
Ensuite, nous devons créer une nouvelle base de données pour l'installation de Taiga.io. Nous devons créer une nouvelle base de données et un utilisateur nommé 'taiga'.
Connectez-vous en tant qu'utilisateur 'postgres'.
su - postgresCréez maintenant une nouvelle base de données et un nouvel utilisateur pour Taiga.io à l'aide des commandes suivantes.
createuser taiga
createdb taiga -O taiga
Une nouvelle base de données PostgreSQL pour l'installation de Taiga.io a été créée.
Étape 3 - Ajouter un utilisateur Taiga
Dans cette étape, nous allons créer un nouvel utilisateur système et un groupe nommé "taiga", puis l'ajouter au groupe wheel pour l'accès à la commande sudo.
Utilisez la commande 'useradd' ci-dessous pour créer l'utilisateur et le groupe 'taiga'.
useradd -U -m -s /bin/bash taiga
passwd taigaAjoutez maintenant l'utilisateur 'taiga' au groupe 'wheel'.
usermod -a -G roue taïgaTestez l'utilisateur 'taiga' pour l'accès sudo.
su - taïga
sudo suTapez votre mot de passe et assurez-vous d'obtenir les privilèges root pour l'utilisateur 'taiga'.
Étape 4 - Configurer Taiga Back
Taiga-back est le backend de Taiga.io qui fournit une API au frontend Taiga. Il est écrit en Python et Django Web Framework.
Dans cette étape, nous allons installer et configurer le composant taiga 'taiga-back'.
Connectez-vous à l'utilisateur 'taiga' et téléchargez le code source 'taiga-back' depuis GitHub.
su - taiga
clone git https://github.com/taigaio/taiga-back.git taiga-backAllez maintenant dans le répertoire 'taiga-back' et changez la branche en branche 'stable'.
cd taiga-back
git checkout stableAvant d'aller plus loin, nous devons mettre à jour le package virtualenv.
sudo pip install --upgrade virtualenvEnsuite, créez un nouvel environnement python 'taiga' à l'aide de la commande mkvirtualenv.
mkvirtualenv -p /usr/bin/python3.5 taïgaUn nouvel environnement virtuel pour 'taiga-back' a été créé.
Avant d'installer tous les modules pour taiga-back, nous devons créer un nouveau lien pour la commande 'pg_config' vers le répertoire '/usr/bin'.
sudo ln -s /usr/pgsql-9.5/bin/pg_config /usr/bin/pg_configInstallez maintenant tous les modules python nécessaires au 'taiga-back' à l'aide des commandes ci-dessous.
workon taiga
pip install -r requirements.txtUne fois l'installation terminée, nous devons remplir la base de données avec les données de base initiales.
Exécutez toutes les commandes suivantes.
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 - -noinputCes commandes créeront automatiquement un compte administrateur 'admin ' avec le mot de passe '123123 '.
Ensuite, créez une nouvelle configuration pour 'taiga-back' en utilisant vim.
vim ~/taiga-back/settings/local.pyCollez-y la configuration suivante.
à partir de l'importation .common *
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 =Vrai
EVENTS_PUSH_BACKEND ="taiga.events.backends.rabbitmq.EventsPushBackend"
EVENTS_PUSH_BACKEND_OPTIONS ={"url":"amqp ://taiga:[email protected]:5672/taiga"}
# Décommentez et renseignez avec les paramètres de connexion appropriés
# pour activer l'envoi d'e-mails. EMAIL_HOST_USER doit se terminer par @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
# Décommentez et remplissez avec les paramètres de connexion appropriés
# pour activer la connexion/singin github.
#GITHUB_API_CLIENT_ID ="yourgithubclientid"
#GITHUB_API_CLIENT_SECRET ="yourgithubclientsecret"Enregistrez et quittez.
Remarque :
- Remplacez 'MEDIA_URL' et 'STATIC_URL' par votre propre nom de domaine.
- Changez la 'SECRET_KEY' avec votre propre clé très secrète.
- Remplacez la valeur du mot de passe EVENTS_PUSH_BACKEND_OPTIONS par votre propre valeur RabbitMQ. Pour ce guide, nous utilisons le mot de passe "aqwe123".
Testez maintenant 'taiga-back' avec la commande ci-dessous.
workon taiga
python manage.py runserver 0.0.0.0:8000
La commande exécutera taiga-back sous l'adresse IP publique du serveur avec le port 8000.
Ouvrez le navigateur Web et visitez l'adresse suivante.
http://192.168.33.10:8000/api/v1/
Et vous obtiendrez l'API "taiga-back" au format JSON comme ci-dessous.
L'installation et la configuration de 'taiga-back' sont terminées.
Étape 5 - Configurer Taiga Frontend
Dans cette étape, nous allons télécharger et configurer l'interface taïga. Le Frontend gérera toutes les interfaces de la taïga.
Connectez-vous à l'utilisateur taïga.
su - taïga
Téléchargez le code source 'Taiga frontend' en utilisant git.
cd ~
clone git https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
Allez dans le répertoire 'taiga-front-dist' et changez la branche en 'stable'.
cd taiga-front-dist
git checkout stable
Copiez le fichier de configuration par défaut et modifiez-le à l'aide de vim.
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
Copiez la configuration suivante :
{
"api":"http://taiga.hakase-labs.co/api/v1/",
"eventsUrl":"ws://taiga.hakase-labs. co/events",
"debug":"true",
"publicRegisterEnabled":vrai,
"feedbackEnabled":vrai,
"privacyPolicyUrl":null,
"termsOfServiceUrl":null,
"maxUploadFileSize":null,
"contribPlugins":[]
}
Enregistrez et quittez.
La configuration 'Taiga frontend' est terminée.
Étape 6 - Configurer les événements Taiga
Taiga-events est un serveur WebSocket qui vous permet d'afficher les modifications en temps réel dans le tableau de bord Taiga.io, et il utilise RabbitMQ comme courtier de messages. Dans cette étape, nous allons télécharger et configurer 'taiga-events'.
Connectez-vous à l'utilisateur 'taiga'.
su - taïga
Téléchargez le code source de 'Taiga Events' et accédez au répertoire.
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Nous devons maintenant télécharger et installer toutes les bibliothèques javascript nécessaires à 'taiga-events' en utilisant la commande npm de la manière suivante.
npm install
sudo npm install -g coffee-script
Remarque : Nous devons installer le 'coffee-script' sous le système racine.
Ensuite, copiez le fichier de configuration JSON dans 'config.json', puis modifiez-le à l'aide de vim.
cp config.example.json config.json
vim config.json
Collez-y la configuration suivante.
{
"url":"amqp://taiga:[email protected]:5672/taiga",
"secret":"theveryultratopsecretkey",
"webSocketServer":{
"port":8888
}
}
Enregistrez et quittez.
Remarque :
- Changez la valeur 'url' avec votre propre nom d'utilisateur et mot de passe rabbitmq.
- Pour la valeur 'secret', assurez-vous qu'elle correspond à la 'SECRET_KEY' sur 'local.py' - le fichier de configuration de 'taiga-back'.
La configuration des événements Taiga est terminée.
Étape 7 - Installer et configurer Circus
Circus sera utilisé pour contrôler et gérer le processus « retour de la taïga » et « événements de la taïga ». 'taiga-events' s'exécute en tant que script de café et 'taiga-back' s'exécute sous Gunicorn.
Dans cette étape, nous allons installer Circus manuellement à partir du code source.
Connectez-vous en tant qu'utilisateur taïga.
su - taïga
Téléchargez maintenant le code source du cirque en utilisant git.
cd ~/
clone git https://github.com/circus-tent/circus.git circus
Avant d'installer circus sur le système, nous devons créer un nouveau répertoire pour la configuration de circus.
Créez un nouveau répertoire 'conf' sous l'utilisateur taiga.
mkdir -p ~/conf
Et créez une nouvelle configuration de cirque pour Taiga.io nommée "taiga.ini".
vim ~/conf/taiga.ini
Collez la configuration suivante.
[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]
CHEMIN =/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
Enregistrez et quittez.
Créez maintenant le répertoire des fichiers journaux du cirque.
mkdir -p ~/logs
Allez dans le répertoire circus et installez le logiciel avec les privilèges root.
cd ~/circus
installation de sudo python3.5 setup.py
Une fois l'installation terminée, nous configurerons Circus en tant que service sur le système.
Exécutez la commande sudo, puis créez un nouveau fichier de service 'circusd.service'.
sudo su
vim /usr/lib/systemd/system/circusd.service
Collez-y la configuration suivante.
[Unité]
Description=circus
[Service]
ExecStart=/usr/bin/circusd /home/taiga/conf/taiga.ini
Enregistrez et quittez.
Maintenant, rechargez le système systemd en utilisant la commande ci-dessous.
rechargement du démon systemctl
Assurez-vous qu'il n'y a pas d'erreur, puis démarrez le service circusd et activez-le pour qu'il se lance à chaque démarrage du système.
systemctl start circusd
systemctl enable circusd
L'installation et la configuration de Circus pour Taiga.io sont terminées. Vérifiez-le en utilisant la commande circusctl ci-dessous.
statut de cirque
Et assurez-vous que les événements de la taïga et de la taïga figurent sur la liste des processus de cirque.
Ou vous pouvez utiliser la commande systemctl comme ci-dessous.
systemctl status circusd
Étape 8 - Configurer l'hôte virtuel Taiga Nginx
Dans cette étape, nous allons configurer l'hôte virtuel Nginx pour Taiga.io. Nous allons créer un nouveau fichier d'hôte virtuel sous le répertoire 'conf.d' pour notre installation Taiga.io.
Allez dans le répertoire de configuration nginx et créez un nouveau fichier 'taiga.conf' sous le répertoire 'conf.d'.
cd /etc/nginx/
vim conf.d/taiga.conf
Collez-y la configuration suivante.
serveur {
écouter 80 ;
nom_serveur taiga.hakase-labs.co ;
large_client_header_buffers 4 32 k ;
client_max_body_size 50 M ;
jeu de caractères utf -8 ;
access_log /var/log/nginx/taiga.access.log ;
error_log /var/log/nginx/taiga.error.log ;
# Frontend
emplacement / {
racine /home/taiga/taiga-front-dist/dist/ ;
try_files $uri $uri/ /index.html ;
}
# Backend
location /api {
proxy_set_header Hôte $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 ;
}
# Accès administrateur Django (/admin/)
emplacement /admin {
proxy_set_header Hôte $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 ;
}
# Fichiers statiques
location /static {
alias /home/taiga/taiga-back/static ;
}
# Fichiers multimédias
emplacement /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 ;
}
}Enregistrez et quittez.
Exécutez maintenant la configuration de test nginx et assurez-vous qu'il n'y a pas d'erreur. Redémarrez ensuite le service du serveur Web.
nginx -t
systemctl redémarre nginxLa configuration de l'hôte virtuel pour Taiga.io est terminée.
Étape 9 - Autoriser Nginx à accéder à l'interface Taiga
Parfois, vous pouvez obtenir une erreur à propos du serveur Web Nginx indiquant qu'il ne peut pas accéder aux fichiers frontaux de la taïga - vous verrez l'erreur "500 Internal Server Error" de Nginx dans ce cas.
Pour résoudre ce problème, nous devons changer le propriétaire ou le groupe de tous les fichiers frontaux de la taïga et donner à Nginx l'accès à tous les fichiers.
Par défaut sur CentOS 7, le serveur Web Nginx s'exécute sous l'utilisateur 'nginx' et l'installation de Taiga.io s'exécute sous l'utilisateur 'taiga'.
Voici l'exemple de l'erreur Nginx dont nous parlons.
Le serveur Web Nginx ne peut pas lire tout le contenu du répertoire '/home/taiga/taiga-front-dist/dist'.
Vérifiez cela en utilisant la commande ci-dessous.
sudo -u nginx stat /home/taiga/taiga-front-dist/distEt vous obtiendrez le résultat d'autorisation refusée.
Nous devons maintenant ajouter l'utilisateur 'nginx' au groupe 'taiga' et donner à l'utilisateur nginx les autorisations requises pour le répertoire taiga-front-dist.
Ajoutez l'utilisateur 'nginx' au groupe 'taiga'.
sudo gpasswd -a nginx taïgaAccordez au serveur Web les autorisations nécessaires pour lire tout le contenu du répertoire 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 /distEt redémarrez le serveur Web Nginx.
systemctl redémarrer nginxÉtape 10 - Tester
Ouvrez votre navigateur Web et visitez votre nom de domaine d'installation Taiga, le mien est http://taiga.hakase-labs.co
Et vous devriez obtenir la page d'accueil par défaut de Taiga illustrée ci-dessous.
Ici, tapez l'utilisateur par défaut 'admin ' avec le mot de passe '123123 ', puis cliquez sur le bouton 'Connexion'.
Et vous accéderez au tableau de bord d'administration.
L'installation de Taiga.io sur CentOS 7 avec le serveur Web Nginx s'est terminée avec succès.