CentOS 7에 Taiga.io 프로젝트 관리 소프트웨어를 설치하는 방법
이 페이지에서
- 전제 조건
- 우리가 할 일\n
- 1단계 - 패키지 설치
- 2단계 - PostgreSQL 설치 및 구성
- 3단계 - Taiga 사용자 추가
- 4단계 - Taiga 백 구성
- 5단계 - Taiga 프런트엔드 구성\n
- 6단계 - Taiga 이벤트 구성
- 7단계 - Circus 설치 및 구성
- 8단계 - Taiga Nginx 가상 호스트 구성\n
- 9단계 - Nginx가 Taiga 프런트엔드에 액세스하도록 허용\n
- 10단계 - 테스트
- 참조
Taiga.io는 민첩한 개발자, 디자이너 및 프로젝트 관리자를 위한 오픈 소스 프로젝트 관리 시스템입니다. 신생 기업, 소프트웨어 개발자 등을 위한 단순하고 복잡한 프로젝트를 모두 처리할 수 있는 아름다운 프로젝트 관리 도구입니다.
Taiga 플랫폼에는 세 가지 주요 구성 요소가 있으며 각 구성 요소에는 고유한 종속성이 있습니다.
- Taiga-back: API를 제공하는 애플리케이션의 백엔드. Python과 Django로 작성되었습니다.
- Taiga-front-dist: AngularJS 및 CoffeeScript로 작성된 Taiga 프런트엔드.\n
- Taiga-events: Taiga WebSocket 서버는 앱의 실시간 변경 사항을 표시합니다. 그리고 RabbitMQ를 메시지 브로커로 사용합니다.\n
이 튜토리얼에서는 CentOS 7 서버에 Taiga.io 프로젝트 관리 도구를 설치하는 방법을 단계별로 보여줍니다. 또한 Taiga.io 설치를 위해 CentOS 7 서버를 설정하고 구성하는 방법도 배웁니다.
전제 조건
- 센트OS 7
- 루트 권한\n
우리가 할 일
- 패키지 설치
- PostgreSQL 설치 및 구성
- 타이가 사용자 추가
- 타이가 백 구성
- Taiga 프런트엔드 구성\n
- 타이가 이벤트 구성
- 서커스 프로세스 관리 구성\n
- Taiga.io용 Nginx 가상 호스트 구성\n
- Nginx가 Taiga 프런트엔드에 액세스하도록 허용\n
- 테스트
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