zoukankan      html  css  js  c++  java
  • CentOS7上部署taiga项目管理软件

    作者:waringid 


    一、简介

    Taiga 是一个免费开源,而且功能非常强大的项目管理平台,用于初创企业和敏捷开发团队。提供一个简单、漂亮的项目管理工具。Taiga 采用 Python Django 框架开发,前端基于 AngularJS 实现。

    二、更新必要的组件及系统版本

    • 安装必要的组件并更新系统

    yum install -y gcc autoconf flex bison libjpeg-turbo-devel
    yum install -y freetype-devel zlib-devel zeromq-devel gdbm-devel ncurses-devel
    yum install -y automake libtool libffi-devel curl git tmux
    yum install -y libxml2-devel libxslt-devel
    yum install -y wget openssl-devel gcc-c++
    • 安装PostgreSQL 9.5

    wget http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
    rpm -ivh pgdg-centos95-9.5-2.noarch.rpm
    yum install -y postgresql95-server postgresql95-devel postgresql95-contrib
    export PATH=$PATH:/usr/pgsql-9.5/bin
    • 修改验证方式为md5

    vim /var/lib/pgsql/9.5/data/pg_hba.conf
    postgresql95-setup initdb
    systemctl start postgresql-9.5.service
    • 安装Python 3.5.1

    wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz
    tar xvf Python-3.5.1.tar.xz
    cd Python-3.5.1/
    ./configure --prefix=/opt/python3.5
    make
    make install
    export PATH=$PATH:/opt/python3.5/bin

    三、配置数据库及用户环境

    • 新建用户及数据库

    useradd taiga
    sudo -u postgres psql
    CREATE DATABASE taiga;
    CREATE USER taiga WITH PASSWORD 'J5brHrAXFLQSif0K';
    GRANT ALL PRIVILEGES ON DATABASE taiga TO taiga;
    q
    • 配置pip环境

    pip3.5 install virtualenv virtualenvwrapper
    VIRTUALENVWRAPPER_PYTHON=/opt/python3.5/bin/python3.5
    source /opt/python3.5/bin/virtualenvwrapper.sh
    mkvirtualenv -p /opt/python3.5/bin/python3.5 taiga
    deactivate

    四、配置taiga-back

    • 下载内容

    cd /home/taiga
    git clone https://github.com/taigaio/taiga-back.git taiga-back
    cd taiga-back/
    git checkout stable
    • 配置python组件

    sed -i -e '34s/^/#/ig' requirements.txt  
    sed -i -e '34a git+https://github.com/Xof/django-pglocks.git' requirements.txt
    pip3.5 install -r requirements.txt
    chown -R taiga:taiga /home/taiga/
    sed -i -e '1a #!/opt/python3.5/bin/python3.5' -e '1d' manage.py  
    • 初始化启动配置

    su taiga
    cd /home/taiga/taiga-back
    python3.5 manage.py migrate --noinput
    python3.5 manage.py loaddata initial_user
    python3.5 manage.py loaddata initial_project_templates
    python3.5 manage.py loaddata initial_role
    python3.5 manage.py compilemessages
    python3.5 manage.py collectstatic –noinput
    • 配置文件设定

    vim /home/taiga/taiga-back/settings/local.py
    from .development import *
    from .common import *
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'taiga',
            'USER': 'taiga',
            'PASSWORD': 'youpassword',
            'HOST': '',
            'PORT': '',
        }
    }
    MEDIA_URL = "http://192.168.5.86/media/"
    STATIC_URL = "http://192.168.5.86/static/"
    ADMIN_MEDIA_PREFIX = "http://192.168.5.86/static/admin/"
    SITES["front"]["scheme"] = "http"
    SITES["front"]["domain"] = "192.168.5.86"
    SECRET_KEY = "2k_DRTqCjy$&-Rul^C23Brf=DY80DLZCl7VF*xU$*ert7-6VccT"


    • 测试启动状态

    python3.5 manage.py runserver 0.0.0.0:8000 --insecure


    • 安装异步消息交互组件

    cd /home/taiga/
    git clone https://github.com/zeromq/libzmq.git libzmq
    cd libzmq/
    ./autogen.sh
    ./configure --without-libsodium
    make
    make install
    • 安装进程和socket监控工具circus

    cd /home/taiga
    git clone https://github.com/circus-tent/circus.git circus
    cd /home/taiga/circus/
    python3.5 setup.py install
    ln -s /opt/python3.5/bin/circusd /usr/local/bin/circusd
    ln -s /opt/python3.5/bin/gunicorn /usr/local/bin/gunicorn


    • 配置circus

    mkdir -p /home/taiga/conf
    vim circus.ini


    [circus]
    check_delay = 5
    endpoint = tcp://127.0.0.1:5555
    pubsub_endpoint = tcp://127.0.0.1:5556
    statsd = true
    [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


    vim /usr/lib/systemd/system/circus.service


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


    ln -s '/usr/lib/systemd/system/circus.service' '/etc/systemd/system/circus.service'


    • 配置日志内容

    mkdir -p /home/taiga/logs
    touch /home/taiga/logs/gunicorn.stdout.log
    touch /home/taiga/logs/gunicorn.stderr.log


    五、配置taiga-front

    • 安装前端

    cd /home/taiga
    git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
    cd taiga-front-dist/
    git checkout stable
    cd dist/
    sed -e 's/localhost/YOURIP/' conf.example.json > conf.json
    systemctl start circus.service


    • 安装nginx


    vim /etc/yum.repos.d/nginx.repo
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=0
    enabled=1


    yum install -y nginx


    • 配置nginx

    vim /etc/nginx/conf.d/taiga.conf


    server {
        listen 80 default_server;
        server_name _;
    
        large_client_header_buffers 4 32k;
        client_max_body_size 50M;
        charset utf-8;
    
        access_log /opt/taiga/logs/nginx.access.log;
        error_log /opt/taiga/logs/nginx.error.log;
    
        # Frontend
        location / {
            root /opt/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://192.168.5.86: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://192.168.5.86:8001$request_uri;
            proxy_redirect off;
        }
    
        # Static files
        location /static {
            alias /opt/taiga/taiga-back/static;
        }
    
        # Media files
        location /media {
            alias /opt/taiga/taiga-back/media;
        }
    }


    六、启动测试

    • 启动taiga

    su taiga -c "python3.5 /home/taiga/taiga-back/manage.py runserver 0.0.0.0:8000 &"


    • 启动nginx

    chown -R taiga:taiga /home/taiga/
    chmod o+x /home/taiga/
    systemctl restart nginx




  • 相关阅读:
    实验五 shell脚本编程
    实验四 Linux系统C语言开发环境学习
    实验三 Linux系统用户管理及VIM配置
    实验二 Linux系统简单文件操作命令
    实验一 Linux系统与应用准备
    实验八 进程间通信
    实验七 信号
    实验六 进程基础
    实验五 shell脚本编程
    实验四 Linux系统搭建C语言编程环境
  • 原文地址:https://www.cnblogs.com/ios9/p/10155034.html
Copyright © 2011-2022 走看看