Поиск по сайту:

Как установить программное обеспечение для управления проектами Taiga.io на CentOS 7


На этой странице

  1. Предпосылки
  2. Что мы будем делать
  3. Шаг 1. Установка пакетов
  4. Шаг 2. Установка и настройка PostgreSQL
  5. Шаг 3. Добавьте пользователя Taiga
  6. Шаг 4. Настройка Taiga Назад
  7. Шаг 5. Настройка внешнего интерфейса Taiga
  8. Шаг 6. Настройка событий Taiga
  9. Шаг 7. Установите и настройте Circus
  10. Шаг 8. Настройка виртуального хоста Taiga Nginx
  11. Шаг 9. Предоставление Nginx доступа к внешнему интерфейсу Taiga
  12. Шаг 10. Тестирование
  13. Справочник

Taiga.io — это система управления проектами с открытым исходным кодом для гибких разработчиков, дизайнеров и менеджеров проектов. Это прекрасный инструмент управления проектами, который может обрабатывать как простые, так и сложные проекты для стартапов, разработчиков программного обеспечения и т. д.

Платформа Taiga состоит из трех основных компонентов, и каждый компонент имеет свои зависимости.

  1. Taiga-back: серверная часть приложения, предоставляющая API. Написан на Python и Django.
  2. Taiga-front-dist: интерфейс Taiga, написанный на AngularJS и CoffeeScript.
  3. События Taiga: сервер Taiga WebSocket для отображения изменений в приложениях в режиме реального времени. И использование RabbitMQ в качестве брокера сообщений.

В этом руководстве я пошагово покажу вам, как установить инструменты управления проектами Taiga.io на сервер CentOS 7. Мы также узнаем, как установить и настроить сервер CentOS 7 для установки Taiga.io.

Предпосылки

  1. СентОС 7
  2. Привилегии root

Что мы будем делать

  1. Установить пакеты
  2. Установка и настройка PostgreSQL
  3. Добавить пользователя тайги
  4. Настроить Тайгу Назад
  5. Настройка внешнего интерфейса Taiga
  6. Настройка событий тайги
  7. Настройка управления процессами Circus
  8. Настройка виртуального хоста Nginx для Taiga.io
  9. Разрешить Nginx доступ к внешнему интерфейсу Taiga
  10. Тестирование

Шаг 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