Как установить программное обеспечение для управления проектами Taiga.io на CentOS 7
На этой странице
- Предпосылки
- Что мы будем делать
- Шаг 1. Установка пакетов
- Шаг 2. Установка и настройка PostgreSQL
- Шаг 3. Добавьте пользователя Taiga
- Шаг 4. Настройка Taiga Назад
- Шаг 5. Настройка внешнего интерфейса Taiga
- Шаг 6. Настройка событий Taiga
- Шаг 7. Установите и настройте Circus
- Шаг 8. Настройка виртуального хоста Taiga Nginx
- Шаг 9. Предоставление Nginx доступа к внешнему интерфейсу Taiga
- Шаг 10. Тестирование
- Справочник
Taiga.io — это система управления проектами с открытым исходным кодом для гибких разработчиков, дизайнеров и менеджеров проектов. Это прекрасный инструмент управления проектами, который может обрабатывать как простые, так и сложные проекты для стартапов, разработчиков программного обеспечения и т. д.
Платформа Taiga состоит из трех основных компонентов, и каждый компонент имеет свои зависимости.
- Taiga-back: серверная часть приложения, предоставляющая API. Написан на Python и Django.
- Taiga-front-dist: интерфейс Taiga, написанный на AngularJS и CoffeeScript.
- События Taiga: сервер Taiga WebSocket для отображения изменений в приложениях в режиме реального времени. И использование RabbitMQ в качестве брокера сообщений.
В этом руководстве я пошагово покажу вам, как установить инструменты управления проектами Taiga.io на сервер CentOS 7. Мы также узнаем, как установить и настроить сервер CentOS 7 для установки Taiga.io.
Предпосылки
- СентОС 7
- Привилегии root
Что мы будем делать
- Установить пакеты
- Установка и настройка PostgreSQL
- Добавить пользователя тайги
- Настроить Тайгу Назад
- Настройка внешнего интерфейса Taiga
- Настройка событий тайги
- Настройка управления процессами Circus
- Настройка виртуального хоста Nginx для Taiga.io
- Разрешить Nginx доступ к внешнему интерфейсу Taiga
- Тестирование
Шаг 1 — Установите пакеты
Перед установкой всех компонентов Taiga.io нам необходимо подготовить систему, установив некоторые пакеты. На этом первом шаге мы установим пакеты, необходимые для всех компонентов и модулей Taiga, включая Nginx, RabitMQ, Redis и т. д.
- Установить зависимости
Нам нужны инструменты разработки для CentOS 7, которые будут использоваться для компиляции некоторых модулей Python.
Установите необходимые пакеты с помощью команды yum ниже.
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
- Установить репозиторий EPEL
Теперь нам нужно установить репозиторий EPEL (Extra Packages for Enterprise Linux). Он необходим для установки веб-сервера Nginx, RabbitMQ и Redis.
Установите репозиторий EPEL в системе CentOS 7, используя следующую команду:
sudo yum -y install epel-release
- Установить Питон
Для установки Taiga.io требуется Python 3.5. Мы будем использовать сторонний репозиторий — сообщество ius — для установки Python 3.5.
Добавьте репозиторий сообщества ius следующим образом.
sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
Теперь установите Python 3.5 с помощью следующей команды yum.
sudo yum -y install python35u python35u-pip python35u-devel python-devel python-pip python-virtualenvwrapper libxml2-devel libxslt-devel
- Установить Нгинкс
Taiga.io — это инструмент веб-приложения, работающий под веб-сервером. И в этом руководстве мы будем использовать Nginx в качестве веб-сервера.
Установите Nginx из репозитория EPEL, используя приведенную ниже команду yum.
sudo yum -y install nginx
После завершения установки запустите службу и включите ее запуск при загрузке системы.
systemctl start nginx
systemctl enable nginx
Теперь проверьте открытый порт с помощью команды netstat.
netstat -plntu
И убедитесь, что вы указали HTTP-порт 80 в списке, как показано ниже.
- Установите Redis и RabbitMQ
Это необязательно, так как вы можете запустить Taiga.io и без этих пакетов. В основном пакеты Redis и RabbitMQ будут использоваться taiga-events.
Установите Redis и RabbitMQ из репозитория EPEL с помощью приведенной ниже команды yum.
yum -y install rabbitmq-server redis
Если установка завершена, запустите службы Redis и RabbitMQ, а затем разрешите их запуск при загрузке системы.
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
systemctl start redis
systemctl enable redis
Далее нам нужно создать нового пользователя и виртуальный хост с именем taiga для RabbitMQ, и он будет использоваться для taiga-событий.
Выполните следующие команды для создания нового пользователя и виртуального хоста с именем taiga и паролем aqwe123, затем установите разрешение для пользователя taiga.
sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
- Установить нодейс
Node нужен для taiga-events — добавьте репозиторий nodejs nodesource и установите его командой yum.
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum -y install nodejs
Все основные пакеты, необходимые для установки Taiga.io, установлены в системе.
Шаг 2. Установите и настройте PostgreSQL.
Taiga.io — это веб-приложение, основанное на веб-фреймворке Python Django и использующее PostgreSQL в качестве базы данных. Для установки Taiga.io нам понадобится PostgreSQL версии 9.5.
Добавьте репозиторий PostgreSQL 9.5 в систему.
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
Теперь установите PostgreSQL 9.5 с помощью приведенной ниже команды yum.
sudo yum -y install postgresql95 postgresql95-devel postgresql95-contrib postgresql95-docs postgresql95-server
После завершения установки нам нужно инициализировать базу данных PostgreSQL.
sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb
Теперь запустите службу PostgreSQL и разрешите ей запускаться каждый раз при загрузке системы.
systemctl start postgresql-9.5
systemctl enable postgresql-9.5
Далее мы должны создать новую базу данных для установки Taiga.io. Нам нужно создать новую базу данных и пользователя с именем taiga.
Войдите в систему как пользователь postgres.
su - postgres
Теперь создайте новую базу данных и пользователя для Taiga.io, используя следующие команды.
createuser taiga
createdb taiga -O taiga
Создана новая база данных PostgreSQL для установки Taiga.io.
Шаг 3 — Добавьте пользователя 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
Введите свой пароль и убедитесь, что вы получили привилегии root для пользователя taiga.
Шаг 4 — Настройка Тайги Назад
Taiga-back — это серверная часть Taiga.io, которая предоставляет API для внешнего интерфейса Taiga. Он написан на Python и Django Web Framework.
На этом шаге мы установим и настроим компонент taiga taiga-back.
Войдите в систему под пользователем taiga и загрузите исходный код taiga-back с GitHub.
su - taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back
Теперь перейдите в каталог taiga-back и измените ветку на стабильную ветку.
cd taiga-back
git checkout stable
Прежде чем идти дальше, нам нужно обновить пакет virtualenv.
sudo pip install --upgrade virtualenv
Затем создайте новую тайгу среды Python с помощью команды mkvirtualenv.
mkvirtualenv -p /usr/bin/python3.5 taiga
Создан новый виртуалэнв для taiga-back.
Перед установкой всех модулей для taiga-back нам нужно создать новую ссылку для команды pg_config в директорию /usr/bin.
sudo ln -s /usr/pgsql-9.5/bin/pg_config /usr/bin/pg_config
Теперь установите все модули python, которые нужны taiga-back, используя приведенные ниже команды.
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
Эти команды автоматически создадут учетную запись администратора admin с паролем 123123.
Далее создайте новую конфигурацию для taiga-back с помощью vim.
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 = ":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"
Сохранить и выйти.
Примечание:
- Измените MEDIA_URL и STATIC_URL на собственное доменное имя.
- Замените SECRET_KEY своим секретным ключом.
- Измените значение пароля EVENTS_PUSH_BACKEND_OPTIONS на собственное значение RabbitMQ. В этом руководстве мы используем пароль aqwe123.
Теперь протестируйте taiga-back с помощью приведенной ниже команды.
workon taiga
python manage.py runserver 0.0.0.0:8000
Команда запустит taiga-back под общедоступным IP-адресом сервера с портом 8000.
Откройте веб-браузер и перейдите по следующему адресу.
И вы получите API taiga-back в формате JSON, как показано ниже.
Установка и настройка Taiga-back завершена.
Шаг 5 — Настройте интерфейс Taiga
На этом шаге мы загрузим и настроим интерфейс Taiga. Фронтенд будет обрабатывать все таежные интерфейсы.
Войти под пользователем тайга.
su - taiga
Загрузите исходный код интерфейса Taiga с помощью git.
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
Перейдите в каталог taiga-front-dist и измените ветку на стабильную.
cd taiga-front-dist
git checkout stable
Скопируйте файл конфигурации по умолчанию и отредактируйте его с помощью vim.
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
Скопируйте следующую конфигурацию:
{
"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": []
}
Сохранить и выйти.
Настройка интерфейса Taiga завершена.
Шаг 6. Настройка событий тайги
Taiga-events — это сервер WebSocket, который позволяет отображать изменения в реальном времени на панели инструментов Taiga.io и использует RabbitMQ в качестве брокера сообщений. На этом шаге мы загрузим и настроим taiga-events.
Войти под пользователем тайга.
su - taiga
Загрузите исходный код Taiga Events и перейдите в каталог.
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Теперь нам нужно скачать и установить все библиотеки javascript, которые нужны taiga-events, с помощью команды npm следующим образом.
npm install
sudo npm install -g coffee-script
Примечание: нам нужно установить coffee-script под корневой системой.
Затем скопируйте файл конфигурации JSON в config.json, затем отредактируйте его с помощью vim.
cp config.example.json config.json
vim config.json
Вставьте туда следующую конфигурацию.
{
"url": "amqp://taiga::5672/taiga",
"secret": "theveryultratopsecretkey",
"webSocketServer": {
"port": 8888
}
}
Сохранить и выйти.
Примечание:
- Измените значение URL, указав своего пользователя и пароль rabbitmq.
- Что касается секретного значения, убедитесь, что оно совпадает с SECRET_KEY в файле local.py — файле конфигурации taiga-back.
Настройка Taiga-событий завершена.
Шаг 7 - Установите и настройте Circus
Цирк будет использоваться для контроля и управления процессом тайги и тайги. taiga-events работает как кофейный скрипт, а taiga-back работает под Gunicorn.
На этом этапе мы установим Circus вручную из исходного кода.
Войдите в систему как пользователь taiga.
su - taiga
Теперь загрузите исходный код цирка с помощью git.
cd ~/
git clone https://github.com/circus-tent/circus.git circus
Перед установкой цирка в системе нам нужно создать новый каталог для конфигурации цирка.
Создайте новый каталог conf под пользователем taiga.
mkdir -p ~/conf
И создайте новую конфигурацию цирка для Taiga.io с именем taiga.ini.
vim ~/conf/taiga.ini
Вставьте следующую конфигурацию.
[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 и установите программное обеспечение с привилегиями root.
cd ~/circus
sudo python3.5 setup.py install
После завершения установки мы настроим цирк как службу в системе.
Запустите команду sudo, затем создайте новый служебный файл circusd.service.
sudo su
vim /usr/lib/systemd/system/circusd.service
Вставьте туда следующую конфигурацию.
[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 для Taiga.io завершена. Проверьте это с помощью приведенной ниже команды circusctl.
circusctl status
И убедитесь, что вы включили тайгу и тайгу в список цирковых процессов.
Или вы можете использовать команду systemctl, как показано ниже.
systemctl status circusd
Шаг 8. Настройте виртуальный хост Taiga Nginx
На этом этапе мы настроим виртуальный хост Nginx для Taiga.io. Мы создадим новый файл виртуального хоста в каталоге conf.d для нашей установки Taiga.io.
Перейдите в каталог конфигурации nginx и создайте новый файл taiga.conf в каталоге conf.d.
cd /etc/nginx/
vim conf.d/taiga.conf
Вставьте туда следующую конфигурацию.
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;
}
}
Сохранить и выйти.
Теперь запустите тестовую конфигурацию nginx и убедитесь в отсутствии ошибок. Затем перезапустите службу веб-сервера.
nginx -t
systemctl restart nginx
Настройка виртуального хоста для Taiga.io завершена.
Шаг 9. Предоставление Nginx доступа к внешнему интерфейсу Taiga
Иногда вы можете получить сообщение об ошибке веб-сервера Nginx, говорящего, что он не может получить доступ к файлам taiga-frontend — в этом случае вы увидите внутреннюю ошибку сервера Nginx 500.
Чтобы решить эту проблему, нам нужно изменить владельца или группу всех файлов taiga-frontend и предоставить Nginx доступ ко всем файлам.
По умолчанию в CentOS 7 веб-сервер Nginx работает под пользователем nginx, а установка Taiga.io выполняется под пользователем taiga.
Ниже приведен пример ошибки Nginx, о которой мы говорили.
Веб-сервер Nginx не может прочитать весь контент в каталоге /home/taiga/taiga-front-dist/dist.
Проверьте это с помощью приведенной ниже команды.
sudo -u nginx stat /home/taiga/taiga-front-dist/dist
И вы получите результат отказа в разрешении.
Теперь нам нужно добавить пользователя nginx в группу taiga и предоставить пользователю nginx необходимые разрешения для каталога taiga-front-dist.
Добавьте пользователя nginx в группу taiga.
sudo gpasswd -a nginx taiga
Дайте веб-серверу разрешение на чтение всего содержимого каталога 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
И перезапустите веб-сервер Nginx.
systemctl restart nginx
Шаг 10 — Тестирование
Откройте веб-браузер и перейдите на доменное имя установки Taiga, мое — http://taiga.hakase-labs.co.
И вы должны получить домашнюю страницу Taiga по умолчанию, как показано ниже.
Здесь введите пользователя admin по умолчанию с паролем 123123, а затем нажмите кнопку «Войти».
И вы попадете в админ-панель.
Установка Taiga.io на CentOS 7 с веб-сервером Nginx успешно завершена.
Ссылка
- https://tomkarho.com/taiga.io