ubuntu16.04或者centos7下部署taiga項目管理軟件

        Taiga是一款開源的敏捷項目管理軟件,提供Scrum和KanBan兩種敏捷管理工具。taiga項目管理工具的搭建過程比較繁瑣,下面將其搭建步驟進行了整理。

    BackLog

    KanBan 

 兼容性

一、前言

Taiga平臺主要有三部分構成:taiga-back、taiga-front-dist、taiga-event。

1、Taiga-back: taiga平臺的後端,提供API接口響應前端請求返回json數據,由Python和Django編寫。

2、Taiga-front-dist: taiga平臺的前端,提供用戶操作界面,由AngularJs和CoffeeScript編寫。

3、Taiga-events:taiga平臺的事件,提供實時的信息更改,使用RabbitMQ作爲消息代理。

二、搭建

    Ubuntu16.04和Centos7的搭建方法基本一致,畢竟Ubuntu和Centos以及Debian和Redhat本是同源。這兩者的安裝只是包的安裝工具apt和yum的區別。下面就以Centos7的安裝爲例。

1、安裝依賴關係

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 epel-release

2、安裝python

    Ubuntu和Centos會默認安裝python2.7版本(輸入python測試),在這個項目taiga-back使用的是django web framework使用的是3.5版本,因此需要安裝python3.5。

sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm

## 安裝python3.5
sudo yum -y install python35u python35u-pip python35u-devel python-devel python-pip python-virtualenvwrapper libxml2-devel libxslt-devel

3、安裝Nginx

    Taiga是一個網頁版項目管理工具,在web服務器下運行,因此將使用Nginx作爲web服務器。

sudo yum -y install nginx

    啓動該服務以及添加引導啓動

systemctl start nginx
systemctl enable nginx

    使用netstat檢查打開的端口,確保Http端口在列表中。

4、安裝Redis和RabbitMQ

    Redis和RabbitMQ包將被taiga事件使用。

yum -y install rabbitmq-server redis

    安裝成功啓動、添加引導啓動

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

systemctl start redis
systemctl enable redis

5、創建新的taiga用戶以及虛擬主機,並且設置用戶權限,注意密碼

sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"

6、安裝Nodejs

    “taiga-events”需要節點 - 添加nodejs nodesource存儲庫並使用yum命令進行安裝(curl在最開始安裝依賴的時候已經安裝)。

curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum -y install nodejs

7、安裝Postgresql

    Taiga項目是基於Django框架的,後臺數據庫是依賴postgresql數據庫,下面安裝Postgresql9.5。

# 將Postgresql9.5數據庫添加到系統中
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm

# 使用yum安裝PostgreSQL9.5
sudo yum -y install postgresql95 postgresql95-devel postgresql95-contrib postgresql95-docs postgresql95-server

# 初始化數據庫
sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb

# 啓動數據庫以及添加引導啓動
systemctl start postgresql-9.5
systemctl enable postgresql-9.5

# 登錄數據庫(默認)
su - postgres

# 爲taiga項目創建新的數據庫和用戶(taiga-back用到taiga數據庫)
createuser taiga
createdb taiga -O taiga

   爲Taiga項目的數據庫已經創建。

8、添加taiga用戶

    將創建一個名爲“taiga”的新系統用戶和組,然後將其添加到wheel組中以進行sudo命令訪問。

# 使用"useradd"來創建"taiga"用戶和組,並設置密碼
useradd -U -m -s /bin/bash taiga
passwd taiga

# 將"taiga"用戶添加到"wheel"組
usermod -a -G wheel taiga

# 測試"taiga"用戶的sudo訪問權限
su - taiga
sudo su

9、安裝Taiga後端

    Taiga-back是taiga項目的後端,它爲前端提供了API。

# 登錄"taiga"用戶並從Github下載"taiga-back"源碼
su - taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back

# 進入'taiga-back'目錄並將分支改爲'stable'分支。
cd taiga-back
git checkout stable

# 更新virtualenv軟件包
sudo pip install --upgrade virtualenv

# 使用mkvirtualenv命令創建新的python環境'taiga'
mkvirtualenv -p /usr/bin/python3.5 taiga

# 安裝所有用於taiga-back的模塊之前,我們需要爲'/ usr / bin'目錄創建'pg_config'命令的新鏈接
sudo ln -s /usr/pgsql-9.5/bin/pg_config /usr/bin/pg_config


# 安裝'taiga-back'所需的所有python模塊

workon taiga
pip install -r requirements.txt

# 使用初始基本數據填充數據庫
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

    上述操作會自動在數據庫裏面創建一個密碼爲"123123"的管理員賬號"admin"

# 使用vim創建'taiga-back'的新配置
vim ~/taiga-back/settings/local.py

# 粘貼以下配置(###內####)
##################################################################
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
 
EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"
EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:PASSWORD_FOR_EVENTS@localhost:5672/taiga"}
##################################################################

    注意:

            (1) 、用自己的ip地址更改“MEDIA_URL”和“STATIC_URL”。例如:"http://10.193.40.137/media/"

            (2) 、用你自己的密鑰更改'SECRET_KEY',注意該密碼需要與後面的taiga-events保持一致。

            (3) 、將EVENTS_PUSH_BACKEND_OPTIONS密碼值更改爲您自己的RabbitMQ值。 在爲rabbitmq添加用戶的時候的密碼。

     測試"taiga-back"

workon taiga
python manage.py runserver 0.0.0.0:8000

    在瀏覽器輸入 http://10.193.40.137:8000/api/v1/        (ip地址爲本機地址也是local.py裏面填寫的地址)

返回數據:至此taiga後端已經安裝成功,可以在http://10.193.40.137/admin/ 後臺管理界面登錄 賬號:admin 密碼:123123

10、安裝Taiga前端

    Taiga-front-dist是Taiga項目的前端代碼,該項目採用前後端分離的架構,前端處理所有的taiga接口

# 登錄到taiga用戶
su - taiga

# 使用git下載'Taiga前端'源代碼
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist

# 轉到'taiga-front-dist'目錄並將分支更改爲'stable'
cd taiga-front-dist
git checkout stable

# 編輯默認配置文件
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json


# 注意注意 將下面的taiga.hakase-labs.co替換爲本機ip 和 搭建後端一樣(###內###)
##################################################################
{
     "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": []
 }
##################################################################

# 修改app-loader.js文件
vi ~/taiga-front-dist/dist/v-1573835111605/js/app-loader.js

# 將第一行 window.taigaConfig={api:"http://xxxx:8000/api/v1/"....} 此處的xxxx修改爲本機ip

11、安裝Taiga事件

    Taiga-events是一個webSocket服務器,允許taiga儀表盤中顯示實時更改,並使用RabbitMQ作爲消息代理。

# 登錄到taiga用戶
su - taiga

# 下載"taiga-events源碼",然後進入目錄
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events

# 使用npm命令下載並安裝'taiga-events'所需的所有javascript庫
npm install
sudo npm install -g coffee-script

# 編輯配置文件
cp config.example.json config.json
vim config.json

# 粘貼一下配置,注意此處的兩個密碼"aqwe123"和 "theveryultratopsecretkey"需要和前面taiga-back設# 置的密碼保持一致。(###內###)
##################################################################
{
     "url": "amqp://taiga:aqwe123@localhost:5672/taiga",
     "secret": "theveryultratopsecretkey",
     "webSocketServer": {
         "port": 8888
     }
 }
##################################################################

12、安裝circus

    circus將用於控制和管理'taiga-back'和'taiga-events'過程。 'taiga-events'正在作爲coffee運行,而'taiga-back'正在django下運行

# 登錄taiga
su - taiga

# 使用git下載馬戲團的源代碼
cd ~/
git clone https://github.com/circus-tent/circus.git circus

# 在taiga用戶下創建新的'conf'目錄
mkdir -p ~/conf

# 創建名爲'taiga.ini'的新馬戲團配置文件
vim ~/conf/taiga.ini

# 粘貼如下配置,該配置包括circus基礎配置以及taiga-back、taiga-events配置(###內###)
##################################################################
[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
##################################################################

# 創建日誌文件目錄
mkdir -p ~/logs

# 安裝circus
cd ~/circus
sudo python3.5 setup.py install

# 創建circus服務
sudo su
vim /usr/lib/systemd/system/circusd.service

# 粘貼如下配置,幫助其找到taiga.ini(###內###)
##################################################################

[Unit]
Description=circus
 
[Service]
ExecStart=/usr/bin/circusd /home/taiga/conf/taiga.ini
##################################################################

# 重新加載systemd系統
systemctl daemon-reload

# 啓動circusd服務並添加引導啓動
systemctl start circusd
systemctl enable circusd

# 檢查circus狀態
systemctl status circusd

13、 配置nginx

    Nginx是一個web服務器

# 在nginx配置目錄'conf.d'目錄下創建一個新文件'taiga.conf'
cd /etc/nginx/
vim conf.d/taiga.conf

# 粘貼如下配置(###內###)
##################################################################
server {
    listen 80;
    server_name _;

    large_client_header_buffers 4 32k;
    client_max_body_size 50M;
    charset utf-8;

    access_log /home/taiga/logs/nginx.access.log;
    error_log /home/taiga/logs/nginx.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;
    }
}
##################################################################
# 配置nginx對taiga-front-dist的訪問權限
sudo gpasswd -a nginx taiga

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

# 重啓nginx服務
nginx -t
systemctl restart nginx

14、測試

    在瀏覽器中運行 10.193.40.137,默認進入taiga主頁。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章