웹사이트 검색

CentOS 7에 Taiga.io 프로젝트 관리 소프트웨어를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 우리가 할 일\n
  3. 1단계 - 패키지 설치
  4. 2단계 - PostgreSQL 설치 및 구성
  5. 3단계 - Taiga 사용자 추가
  6. 4단계 - Taiga 백 구성
  7. 5단계 - Taiga 프런트엔드 구성\n
  8. 6단계 - Taiga 이벤트 구성
  9. 7단계 - Circus 설치 및 구성
  10. 8단계 - Taiga Nginx 가상 호스트 구성\n
  11. 9단계 - Nginx가 Taiga 프런트엔드에 액세스하도록 허용\n
  12. 10단계 - 테스트
  13. 참조

Taiga.io는 민첩한 개발자, 디자이너 및 프로젝트 관리자를 위한 오픈 소스 프로젝트 관리 시스템입니다. 신생 기업, 소프트웨어 개발자 등을 위한 단순하고 복잡한 프로젝트를 모두 처리할 수 있는 아름다운 프로젝트 관리 도구입니다.

Taiga 플랫폼에는 세 가지 주요 구성 요소가 있으며 각 구성 요소에는 고유한 종속성이 있습니다.

  1. Taiga-back: API를 제공하는 애플리케이션의 백엔드. Python과 Django로 작성되었습니다.
  2. Taiga-front-dist: AngularJS 및 CoffeeScript로 작성된 Taiga 프런트엔드.\n
  3. Taiga-events: Taiga WebSocket 서버는 앱의 실시간 변경 사항을 표시합니다. 그리고 RabbitMQ를 메시지 브로커로 사용합니다.\n

이 튜토리얼에서는 CentOS 7 서버에 Taiga.io 프로젝트 관리 도구를 설치하는 방법을 단계별로 보여줍니다. 또한 Taiga.io 설치를 위해 CentOS 7 서버를 설정하고 구성하는 방법도 배웁니다.

전제 조건

  1. 센트OS 7
  2. 루트 권한\n

우리가 할 일

  1. 패키지 설치
  2. PostgreSQL 설치 및 구성
  3. 타이가 사용자 추가
  4. 타이가 백 구성
  5. Taiga 프런트엔드 구성\n
  6. 타이가 이벤트 구성
  7. 서커스 프로세스 관리 구성\n
  8. Taiga.io용 Nginx 가상 호스트 구성\n
  9. Nginx가 Taiga 프런트엔드에 액세스하도록 허용\n
  10. 테스트

1단계 - 패키지 설치

모든 Taiga.io 구성 요소를 설치하기 전에 일부 패키지를 설치하여 시스템을 준비해야 합니다. 이 첫 번째 단계에서는 Nginx, RabitMQ, Redis 등을 포함한 모든 Taiga 구성 요소 및 모듈에 필요한 패키지를 설치합니다.

- 종속성 설치

일부 Python 모듈을 컴파일하는 데 사용할 CentOS 7용 개발 도구가 필요합니다.

아래 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를 설치하는 데 필요합니다.

다음 명령을 사용하여 CentOS 7 시스템에 EPEL Repository를 설치합니다.

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

이제 다음 yum 명령을 사용하여 Python 3.5를 설치합니다.

sudo yum -y install python35u python35u-pip python35u-devel python-devel python-pip python-virtualenvwrapper libxml2-devel libxslt-devel

- Nginx 설치

Taiga.io는 웹 애플리케이션 도구이며 웹 서버에서 실행됩니다. 이 가이드에서는 Nginx를 웹 서버로 사용합니다.

아래 yum 명령을 사용하여 EPEL 저장소에서 Nginx를 설치합니다.

sudo yum -y install nginx

설치가 완료되면 서비스를 시작하고 시스템 부팅 시 실행되도록 활성화합니다.

systemctl start nginx
systemctl enable nginx

이제 netstat 명령을 사용하여 열린 포트를 확인하십시오.

netstat -plntu

그리고 아래와 같이 목록에 HTTP 포트 80이 있는지 확인하십시오.

- Redis 및 RabbitMQ 설치

이러한 패키지 없이도 Taiga.io를 실행할 수 있으므로 선택 사항입니다. 기본적으로 Redis 및 RabbitMQ 패키지는 taiga-events에서 사용됩니다.

아래의 yum 명령을 사용하여 EPEL 저장소에서 Redis 및 RabbitMQ를 설치합니다.

yum -y install rabbitmq-server redis

설치가 완료되면 Redis 및 RabbitMQ 서비스를 모두 시작한 다음 시스템 부팅 시 실행되도록 활성화합니다.

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

systemctl start redis
systemctl enable redis

다음으로 RabbitMQ에 대한 taiga라는 새 사용자 및 가상 호스트를 만들어야 하며 taiga-events에 사용됩니다.

암호 aqwe123을 사용하여 taiga라는 새 사용자 및 가상 호스트를 생성하기 위해 다음 명령을 실행한 다음 taiga 사용자에 대한 권한을 설정합니다.

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

- Nodejs 설치

노드는 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

이제 아래 yum 명령을 사용하여 PostgreSQL 9.5를 설치합니다.

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

Taiga.io 설치를 위한 새로운 PostgreSQL 데이터베이스가 생성되었습니다.

3단계 - Taiga 사용자 추가

이 단계에서는 taiga라는 새 시스템 사용자 및 그룹을 만든 다음 sudo 명령 액세스를 위해 wheel 그룹에 추가합니다.

아래의 useradd 명령을 사용하여 taiga 사용자 및 그룹을 생성합니다.

useradd -U -m -s /bin/bash taiga
passwd taiga

이제 taiga 사용자를 wheel 그룹에 추가합니다.

usermod -a -G wheel taiga

sudo 액세스에 대해 taiga 사용자를 테스트합니다.

su - taiga
sudo su

암호를 입력하고 taiga 사용자의 루트 권한을 얻었는지 확인하십시오.

4단계 - Taiga Back 구성

Taiga-back은 Taiga 프론트엔드에 API를 제공하는 Taiga.io의 백엔드입니다. Python 및 Django Web Framework로 작성되었습니다.

이 단계에서는 taiga 구성 요소 taiga-back을 설치하고 구성합니다.

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을 위한 새로운 virtualenv가 생성되었습니다.

taiga-back에 대한 모든 모듈을 설치하기 전에 /usr/bin 디렉토리에 대한 pg_config 명령에 대한 새 링크를 만들어야 합니다.

sudo ln -s /usr/pgsql-9.5/bin/pg_config /usr/bin/pg_config

이제 아래 명령을 사용하여 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

이 명령은 비밀번호가 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 = ":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을 자신의 도메인 이름으로 변경합니다.\n
  • 비밀 키로 SECRET_KEY를 변경합니다.\n
  • EVENTS_PUSH_BACKEND_OPTIONS 암호 값을 자신의 RabbitMQ 값으로 변경합니다. 이 가이드에서는 비밀번호 aqwe123을 사용하고 있습니다.\n

이제 아래 명령으로 taiga-back을 테스트합니다.

workon taiga
python manage.py runserver 0.0.0.0:8000

이 명령은 포트 8000을 사용하여 서버 공용 IP에서 taiga-back을 실행합니다.

웹 브라우저를 열고 다음 주소를 방문하십시오.

그리고 아래와 같이 JSON 형식의 taiga-back API를 얻을 수 있습니다.

taiga-back 설치 및 구성이 완료되었습니다.

5단계 - Taiga 프런트엔드 구성

이 단계에서는 taiga 프런트엔드를 다운로드하고 구성합니다. Frontend는 모든 타이가 인터페이스를 처리합니다.

타이가 사용자로 로그인합니다.

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

기본 구성 파일을 복사하고 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 이벤트 구성

Taiga-events는 Taiga.io 대시보드에서 실시간 변경 사항을 표시할 수 있는 WebSocket 서버이며 RabbitMQ를 메시지 브로커로 사용합니다. 이 단계에서는 taiga-events를 다운로드하고 구성합니다.

타이가 사용자로 로그인합니다.

su - taiga

Taiga Events 소스 코드를 다운로드하고 디렉토리로 이동합니다.

git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events

이제 다음과 같은 방법으로 npm 명령을 사용하여 taiga-events에 필요한 모든 자바스크립트 라이브러리를 다운로드하고 설치해야 합니다.

npm install
sudo npm install -g coffee-script

참고: root 시스템 아래에 커피 스크립트를 설치해야 합니다.

다음으로 JSON 구성 파일을 config.json에 복사한 다음 vim을 사용하여 편집합니다.

cp config.example.json config.json
vim config.json

다음 구성을 거기에 붙여넣으십시오.

{
    "url": "amqp://taiga::5672/taiga",
    "secret": "theveryultratopsecretkey",
    "webSocketServer": {
        "port": 8888
    }
}

저장 및 종료.

메모:

  • 자신의 rabbitmq 사용자 및 비밀번호로 url 값을 변경하십시오.\n
  • 비밀 값은 taiga-back의 구성 파일인 local.py의 SECRET_KEY와 일치하는지 확인합니다.\n

타이가 이벤트 구성이 완료되었습니다.

7단계 - Circus 설치 및 구성

서커스는 타이가 백 및 타이가 이벤트 프로세스를 제어하고 관리하는 데 사용됩니다. taiga-events는 커피 스크립트로 실행되고 있으며 taiga-back은 Gunicorn 아래에서 실행되고 있습니다.

이 단계에서는 소스 코드에서 수동으로 Circus를 설치합니다.

taiga 사용자로 로그인합니다.

su - taiga

이제 git을 사용하여 서커스 소스 코드를 다운로드합니다.

cd ~/
git clone https://github.com/circus-tent/circus.git circus

시스템에 서커스를 설치하기 전에 서커스 구성을 위한 새 디렉토리를 만들어야 합니다.

taiga 사용자 아래에 새 conf 디렉토리를 만듭니다.

mkdir -p ~/conf

그리고 taiga.ini라는 Taiga.io에 대한 새로운 서커스 구성을 만듭니다.

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

서커스 디렉토리로 이동하여 루트 권한으로 소프트웨어를 설치하십시오.

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

Taiga.io의 서커스 설치 및 구성이 완료되었습니다. 아래 circusctl 명령을 사용하여 확인하십시오.

circusctl status

그리고 서커스 프로세스 목록에서 타이가 백과 타이가 이벤트를 확인하십시오.

또는 아래와 같이 systemctl 명령을 사용할 수 있습니다.

systemctl status circusd

8단계 - Taiga Nginx 가상 호스트 구성

이 단계에서는 Taiga.io용 Nginx 가상 호스트를 구성합니다. Taiga.io 설치를 위해 conf.d 디렉토리 아래에 새로운 가상 호스트 파일을 생성합니다.

nginx 구성 디렉토리로 이동하여 conf.d 디렉토리 아래에 새 파일 taiga.conf를 만듭니다.

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 사용자를 추가합니다.

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 기본 홈페이지가 표시됩니다.

여기에 암호 123123과 함께 기본 사용자 admin을 입력한 다음 로그인 버튼을 클릭합니다.

그러면 관리 대시보드로 이동합니다.

Nginx 웹 서버가 있는 CentOS 7에 Taiga.io 설치가 성공적으로 완료되었습니다.

참조

  • https://tomkarho.com/taiga.io