Cài đặt phần mềm quản lý dự án Agile Taiga.io trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Taiga.io là một hệ thống quản lý dự án nguồn mở dành cho các nhà phát triển, nhà thiết kế và quản lý dự án nhanh nhẹn. Đây là một công cụ quản lý dự án tuyệt vời có thể xử lý cả các dự án đơn giản và phức tạp cho các công ty khởi nghiệp, nhà phát triển phần mềm, v.v.

Nền tảng Taiga có ba thành phần chính và mỗi thành phần có các phụ thuộc riêng.
  1. taiga-back: Phần phụ trợ của ứng dụng cung cấp API. Được viết bằng Python và Django.
  2. taiga-front-dist: Phần giao diện Taiga được viết bằng AngularJS và CoffeeScript.
  3. taiga-events: Máy chủ Taiga WebSocket để hiển thị các thay đổi theo thời gian thực trong các ứng dụng. Và sử dụng RabbitMQ làm môi giới tin nhắn.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn từng bước cách cài đặt công cụ quản lý dự án Taiga.io trên máy chủ Ubuntu 16.04. Chúng ta sẽ tìm hiểu cách thiết lập máy chủ Ubuntu để cài đặt Taiga.io.

Điều kiện tiên quyết
  • Ubuntu 16.04
  • Quyền root
Những gì chúng ta sẽ làm
  1. Cài đặtĐiều kiện tiên quyết
  2. Thêm người dùng Taiga
  3. Cài đặt và cấu hình Taiga Backend
  4. Cài đặt và cấu hình Taiga Frontend
  5. Cài đặt và cấu hình Taiga Events
  6. Cấu hình Circus và Gunicorn
  7. Cấu hình Taiga Nginx Virtualhost
  8. Kiểm tra

Bước 1 - Cài đặtĐiều kiện tiên quyết​

Trước khi cài đặt tất cả các thành phần Taiga.io, chúng ta cần chuẩn bị hệ thống bằng cách cài đặt các gói cần thiết. Trong bước đầu tiên này, chúng ta sẽ cài đặt các gói cần thiết cho tất cả các thành phần và mô-đun Taiga, bao gồm Nginx, RabitMQ, Redis, v.v.

Để bắt đầu, hãy cập nhật kho lưu trữ và nâng cấp hệ thống.
Mã:
sudo apt update
sudo apt upgrade -y
- Cài đặt các phụ thuộc

Các gói sau sẽ được sử dụng để biên dịch một số mô-đun python. Chạy lệnh apt bên dưới để cài đặt tất cả chúng trên hệ thống.
Mã:
sudo apt install -y build-essential binutils-doc autoconf flex bison libjpeg-dev libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev automake libtool libffi-dev curl git tmux gettext
- Cài đặt Nginx

Taiga.io là một công cụ ứng dụng dựa trên web. Nó chạy trên máy chủ web. Và đối với hướng dẫn này, chúng ta sẽ sử dụng máy chủ web Nginx để cài đặt.

Cài đặt Nginx bằng lệnh apt bên dưới.
Mã:
sudo apt install nginx -y
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ Nginx và cho phép nó khởi chạy khi khởi động hệ thống, bạn có thể thực hiện thao tác này bằng lệnh systemctl.
Mã:
systemctl start nginx
systemctl enable nginx
Bây giờ hãy kiểm tra bằng netstat và đảm bảo rằng cổng HTTP có trong danh sách.
Mã:
netstat -plntu


- Cài đặt Redis và RabbitMQ

Đây là gói tùy chọn nếu bạn không muốn thông báo không đồng bộ. Cài đặt Redis và RabbitMQ bằng lệnh apt bên dưới.
Mã:
sudo apt install -y redis-server rabbitmq-server
Sau khi cài đặt hoàn tất, hãy khởi động các dịch vụ redis và rabbitmq và thêm các dịch vụ đó vào thời gian khởi động.
Mã:
systemctl start redis
 
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
Tiếp theo, chúng ta cần tạo một người dùng và máy chủ ảo mới có tên là 'taiga' cho RabbitMQ - nó sẽ được sử dụng cho 'taiga-events'.

Chạy các lệnh bên dưới để tạo người dùng và máy chủ ảo mới có tên là taiga với mật khẩu 'aqwe123', sau đó đặt quyền cho người dùng 'taiga'.
Mã:
sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"


- Cài đặt Python

'taiga-back' được tạo bằng Django Web Framework và sử dụng 'Python 3.5'. Vì vậy, chúng ta cần cài đặt Python 3.5 trên hệ thống.

Chạy lệnh sau để cài đặt Python 3.5 với tất cả các phụ thuộc cần thiết.
Mã:
sudo apt install -y python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper libxml2-dev libxslt-dev
- Cài đặt Circus

Circus là trình quản lý quy trình và trình quản lý ổ cắm. Nó có thể được sử dụng để giám sát và kiểm soát tiến trình và ổ cắm trên hệ thống Linux.

Đối với hướng dẫn này, chúng tôi sẽ sử dụng circus để quản lý tiến trình 'taiga-events' được tạo bằng CoffeeScript.

Cài đặt circus bằng lệnh apt bên dưới.
Mã:
sudo apt install -y circus
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ 'circusd' và cho phép khởi chạy mọi lúc khi khởi động hệ thống.
Mã:
systemctl start circusd
systemctl enable circusd
Bây giờ hãy kiểm tra dịch vụ bằng các lệnh sau.
Mã:
systemctl status circusd
circusctl status
Và bạn sẽ nhận được kết quả như bên dưới.



- Cài đặt và cấu hình cơ sở dữ liệu PostgreSQL

Taiga.io đang sử dụng PostgreSQL làm cơ sở dữ liệu và thành phần 'taiga-back' đang sử dụng PostgreSQL (>= 9.4) làm cơ sở dữ liệu.

Cài đặt PostgreSQL 9.5 bằng cách chạy các lệnh apt sau.
Mã:
sudo apt install -y postgresql-9.5 postgresql-contrib-9.5
sudo apt install -y postgresql-doc-9.5 postgresql-server-dev-9.5
Nếu quá trình cài đặt cơ sở dữ liệu hoàn tất, hãy khởi động dịch vụ PostgreSQL và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống.
Mã:
systemctl start postgresql
systemctl enable postgresql
Tiếp theo, chúng ta sẽ tạo cơ sở dữ liệu và người dùng mới để cài đặt Taiga.io.

Đăng nhập vào người dùng 'postgres'.
Mã:
su - postgres
Tạo cơ sở dữ liệu và người dùng mới có tên 'taiga' bằng các lệnh bên dưới.
Mã:
createuser taiga
createdb taiga -O taiga
Cơ sở dữ liệu PostgreSQL đã được cài đặt và cơ sở dữ liệu cho Taiga.io đã được tạo.



- Cài đặt Nodejs

Node là cần thiết cho 'taiga-events' - thêm kho lưu trữ nodesource nodejs và cài đặt bằng lệnh apt.
Mã:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Tất cả các gói cần thiết để cài đặt Taiga.io đã được cài đặt thành công.

Bước 2 - Thêm người dùng Taiga mới​

Trong bước này, chúng ta sẽ tạo một người dùng hệ thống mới có tên là 'taiga', sau đó thêm người dùng này vào nhóm sudo.

Chạy lệnh để tạo người dùng 'taiga' mới.
Mã:
useradd -m -s /bin/bash taiga
passwd taiga
Bây giờ hãy thêm người dùng 'taiga' vào nhóm 'sudo'.
Mã:
usermod -a -G sudo taiga
Bây giờ hãy đăng nhập với tư cách 'taiga' và thử sử dụng lệnh sudo.
Mã:
su - taiga
sudo su
Nhập mật khẩu của bạn và đảm bảo rằng bạn có được quyền root.



Người dùng 'taiga' mới đã được tạo.

Bước 3 - Cấu hình Taiga Backend​

Taiga-back là phần phụ trợ của Taiga.io cung cấp API. Nó được viết bằng Python và Django Web Framework.

Trong bước này, chúng ta sẽ cài đặt và cấu hình thành phần taiga 'taiga-back' làm phần phụ trợ cung cấp API.

Đăng nhập vào người dùng 'taiga' và tải xuống mã nguồn 'taiga-back' từ GitHub.
Mã:
su - taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back
Bây giờ hãy đến thư mục 'taiga-back' và thay đổi nhánh thành nhánh 'stable'.
Mã:
cd taiga-back/
git checkout stable
Tiếp theo, chúng ta cần tạo môi trường python mới 'taiga' bằng virtualenv.
Mã:
mkvirtualenv -p /usr/bin/python3.5 taiga


Đăng nhập vào Môi trường ảo 'taiga' và cài đặt tất cả các mô-đun python cần thiết cho 'taiga-back' bằng lệnh pip như được hiển thị bên dưới.
Mã:
workon taiga
pip install -r requirements.txt
Sau khi cài đặt tất cả các mô-đun cần thiết hoàn tất, chúng ta cần điền dữ liệu cơ bản ban đầu vào cơ sở dữ liệu.

Chạy tất cả các lệnh khởi tạo bên dưới.
Mã:
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
Các lệnh sẽ tự động tạo tài khoản quản trị viên 'admin' với mật khẩu '123123'.

Tiếp theo, tạo cấu hình mới cho 'taiga-back' bằng vim.
Mã:
vim ~/taiga-back/settings/local.py
Dán cấu hình sau vào đó.
Mã:
từ .common nhập *
 
 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 = "myverysecretkey"
 
 DEBUG = False
 PUBLIC_REGISTER_ENABLED = True
 
 DEFAULT_FROM_EMAIL = "[emailprotected]"
 SERVER_EMAIL = DEFAULT_FROM_EMAIL
 
 #CELERY_ENABLED = True
 
 EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"
 EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:aqwe123@localhost:5672/taiga"}
 
 # Bỏ chú thích và điền các tham số kết nối thích hợp
 # để kích hoạt gửi email. EMAIL_HOST_USER phải kết thúc bằng @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
 
 # Bỏ chú thích và điền các tham số kết nối thích hợp
 # để bật đăng nhập/đăng nhập github.
 #GITHUB_API_CLIENT_ID = "yourgithubclientid"
 #GITHUB_API_CLIENT_SECRET = "yourgithubclientsecret"
Lưu và thoát.

Lưu ý:
  • Thay đổi 'MEDIA_URL' và 'STATIC_URL' bằng tên miền của riêng bạn name.
  • Thay đổi 'SECRET_KEY' bằng khóa bí mật của riêng bạn.
  • Thay đổi giá trị mật khẩu EVENTS_PUSH_BACKEND_OPTIONS thành giá trị RabbitMQ của riêng bạn. Đối với hướng dẫn này, chúng tôi đang sử dụng mật khẩu 'aqwe123'.
Bây giờ hãy kiểm tra 'taiga-back' bằng lệnh bên dưới.
Mã:
workon taiga
python manage.py runserver 0.0.0.0:8000
Lệnh sẽ chạy taiga-back dưới IP công khai của máy chủ với cổng 8000.



Mở trình duyệt web và truy cập địa chỉ sau. Của tôi là:
Và bạn sẽ nhận được API 'taiga-back' với định dạng JSON như bên dưới.



Việc cài đặt và cấu hình 'taiga-back' làm phần phụ trợ đã hoàn tất.

Bước 4 - Cấu hình Taiga Frontend​

Ở bước này, chúng ta sẽ tải xuống và cấu hình taiga frontend. Giao diện người dùng sẽ xử lý tất cả các giao diện taiga.

Đăng nhập với tư cách là người dùng taiga.
Mã:
su - taiga
Tải xuống tập lệnh 'taiga-front-dist' bằng lệnh git.
Mã:
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
Sau đó, hãy đến thư mục 'taiga-front-dist' và đổi nhánh thành 'stable'.
Mã:
cd taiga-front-dist/
git checkout stable
Bây giờ hãy sao chép mẫu cấu hình 'taiga-front-dist' vào 'conf.json' và chỉnh sửa bằng trình chỉnh sửa vim.
Mã:
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
Thực hiện tất cả cấu hình như bên dưới và thay đổi 'api' và 'eventsUrl' bằng tên miền của riêng bạn.
Mã:
{
 "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": []
 }
Lưu và thoát.



Cấu hình giao diện Taiga đã hoàn tất.

Bước 5 - Cấu hình sự kiện Taiga​

Taiga-events là máy chủ WebSocket cho phép bạn hiển thị những thay đổi theo thời gian thực trên Bảng điều khiển Taiga.io và sử dụng RabbitMQ làm môi giới tin nhắn. Trong bước này, chúng ta sẽ tải xuống và cấu hình 'taiga-events'.

Đăng nhập với tư cách là người dùng 'taiga'.
Mã:
su - taiga
Tải xuống mã nguồn 'taiga-events' từ GitHub bằng lệnh git và đi đến thư mục 'taiga-events'.
Mã:
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Bây giờ hãy cài đặt tất cả các mô-đun javascript cần thiết cho 'taiga-events' bằng npm và sau đó cài đặt gói 'coffee-script' vào hệ thống.
Mã:
npm install
sudo npm install -g coffee-script


Tiếp theo, sao chép cấu hình mặc định của 'taiga-events' vào 'config.json' và chỉnh sửa bằng vim editor.
Mã:
cp config.example.json config.json
vim config.json
Thực hiện cấu hình như bên dưới.
Mã:
{
 "url": "amqp://taiga:aqwe123@localhost:5672/taiga",
 "secret": "myverysecretkey",
 "webSocketServer": {
 "port": 8888
 }
 }
Lưu và thoát.

Lưu ý:
  • Thay đổi giá trị 'url' bằng tên người dùng và mật khẩu rabbitmq của riêng bạn.
  • Đối với giá trị 'secret', hãy đảm bảo rằng nó khớp với 'SECRET_KEY' trên 'local.py' tệp cấu hình của 'taiga-back'.
Cấu hình Taiga-events đã hoàn tất.

Bước 6 - Cấu hình Circus và Gunicorn​

Circus sẽ được sử dụng để kiểm soát và quản lý quy trình 'taiga-back' và 'taiga-events'. 'taiga-events' đang chạy dưới dạng tập lệnh coffee và 'taiga-back' đang chạy dưới Gunicorn.

Trong bước này, chúng ta sẽ thêm taiga-events và taiga-bac mới vào circusd.

Đối với 'taiga-events', hãy tạo tệp mới 'taiga-events.ini' bằng vim.
Mã:
vim /etc/circus/conf.d/taiga-events.ini
Dán cấu hình bên dưới.
Mã:
[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
Lưu và thoát.

Và đối với taiga-back, hãy tạo tệp mới 'taiga.ini'.
Mã:
vim /etc/circus/conf.d/taiga.ini
Dán cấu hình sau vào đó.
Mã:
[watcher:taiga]
 working_dir = /home/taiga/taiga-back
 cmd = gunicorn
 đối số = -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
Lưu và thoát.

Tiếp theo, chúng ta cần tạo thư mục 'logs' mới cho cả hai quy trình 'taiga-events' và 'taiga-back'.
Mã:
su - taiga
mkdir -p ~/logs
Bây giờ hãy khởi động lại dịch vụ circusd và kiểm tra tất cả các quy trình khả dụng.
Mã:
systemctl restart circusd
circusctl status
Và hãy đảm bảo 'taiga-events' và 'taiga-back' đang hoạt động trên danh sách quy trình, như được hiển thị bên dưới.


Bước 7 - Cấu hình Máy chủ ảo Taiga Nginx​

Trong bước này, chúng ta sẽ cấu hình máy chủ ảo Nginx cho Taiga.io. Chúng tôi sẽ tạo tệp máy chủ ảo mới trong thư mục 'conf.d' để cài đặt Taiga.io.

Đi đến thư mục cấu hình nginx và xóa tệp máy chủ ảo 'mặc định'.
Mã:
cd /etc/nginx/
sudo rm -f sites-enabled/default
Bây giờ hãy tạo tệp máy chủ ảo mới 'taiga.conf' trong thư mục 'conf.d'.
Mã:
vim /etc/nginx/conf.d/taiga.conf
Dán cấu hình sau vào đó.
Mã:
server {
 listen 80 default_server;
 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;
 
 # Vị trí giao diện người dùng
 / {
 root /home/taiga/taiga-front-dist/dist/;
 try_files $uri $uri/ /index.html;
 }
 
 # Vị trí giao diện người dùng
 /api {
 proxy_set_header Máy chủ $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 tắt;
 }
 
 # Quyền truy cập quản trị Django (/admin/)
 vị trí /admin {
 proxy_set_header Máy chủ $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 tắt;
 }
 
 # Tệp tĩnh
 vị trí /static {
 bí danh /home/taiga/taiga-back/static;
 }
 
 # Tệp phương tiện
 vị trí /media {
 bí danh /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 Nâng cấp $http_upgrade;
 proxy_set_header Kết nối "nâng cấp";
 proxy_connect_timeout 7 ngày;
 proxy_send_timeout 7 ngày;
 proxy_read_timeout 7 ngày;
 }
 }
Lưu và thoát.

Bây giờ hãy chạy thử cấu hình nginx và đảm bảo không có lỗi nào. Sau đó, khởi động lại dịch vụ máy chủ web.
Mã:
nginx -t
systemctl restart nginx
Cấu hình máy chủ ảo Nginx cho Taiga.io đã hoàn tất.


Bước 8 - Kiểm tra​

Mở trình duyệt web của bạn và truy cập tên miền Taiga.io. Của tôi là: http://taiga.hakase-labs.co

Và bạn sẽ nhận được trang chủ taiga mặc định.



Bây giờ hãy nhấp vào nút 'Đăng nhập' ở trên cùng bên phải và bạn sẽ nhận được trang đăng nhập quản trị viên.



Đăng nhập bằng người dùng mặc định 'admin' và mật khẩu '123123'.

Và bạn sẽ nhận được kết quả như bên dưới.



Tiếp theo, chúng ta sẽ đặt lại mật khẩu quản trị viên mặc định.

Nhấp vào nút 'administrator' ở trên cùng bên phải, sau đó nhấp vào 'Change Password'.



Bây giờ hãy nhập mật khẩu cũ '123123' và mật khẩu mới theo ý muốn của bạn, sau đó nhấp vào 'Save'.



Quá trình cài đặt và cấu hình Taiga.io trên Ubuntu 16.04 đã hoàn tất thành công.

Tham khảo​

 
Back
Bên trên