Home
home

Redmine Test

0. Redmine 장단점

장점
오픈소스로 무료 사용 가능
원하는 기능만 커스터마이징해서 사용 가능
필요한 메뉴만 활성화, 플러그인 연계 (템플릿 구성 플러그인, 슬랙 연동 플러그인, Google OAuth 플러그인 등)
한글 번역도 자유롭게 변경 - 어색한 문구 표현도 원하는 형태로 자유롭게 변경 가능
필요한 기능만 활성화하면 복잡하지 않게 사용할 수 있어 보임
단점
최초 구현에 어렵습니다. (레드마인 버전에 따른 설정 및 플러그인 연계에 삽질)
Redmine 운영 및 관리 공수
최초 구성 외에 공수가 크다고 생각하지 않지만 검토 필요
유료 솔루션 대비 다양한 기능을 제공하지 않습니다.

1. Redmine 설치 - Ubuntu 22.04

sudo su - # 종속성 도구 설치 apt update apt install -y apache2 ruby ruby-dev curl build-essential libapache2-mod-passenger libmysqlclient-dev imagemagick libmagickwand-dev # rubygems로 bundler 설치 gem install bundler # apache2 활성화 및 상태 systemctl is-enabled apache2 systemctl status apache2 # mysql 설치와 활성화 및 상태 apt install -y mysql-server systemctl is-enabled mysql systemctl status mysql # mysql 접근 후 redmine 계정 설정 (redmine/P@ssw0rd) mysql -u root -p CREATE DATABASE redmine CHARACTER SET utf8mb4; CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'P@ssw0rd'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; FLUSH PRIVILEGES; SHOW GRANTS FOR redmine@localhost; quit ## redmine 설치 (5.1.2으로 설치함) # 5.1.2 cd /opt/ wget https://www.redmine.org/releases/redmine-5.1.2.tar.gz tar -xvzf redmine-5.1.2.tar.gz sudo ln -s redmine-5.1.2 redmine # redmine의 데이터베이스 설정 cd /opt/redmine cp config/database.yml.example config/database.yml nano config/database.yml username: redmine password: "P@ssw0rd" # 번들러 명령으로 redmine의 Ruby 종속성 설치 bundle config set --local without 'development test' bundle install # redmine 토큰 생성 및 데이터베이스 마이그레이션 bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate # redmine 설치 기본 값 로드 RAILS_ENV=production bundle exec rake redmine:load_default_data en # redmine.conf 확인 및 구성 적합도 확인 a2ensite redmine.conf apachectl configtest # 메뉴 문구 수정 vi /opt/redmine/config/locales/ko.yml # 5.1.2 버전에서 files, log, tmp, public/plugin_assets에 대한 권한을 부여해야 함 chmod -R 777 files log tmp public/plugin_assets # apache2 재시작 systemctl restart apache2
Bash
복사
대상 주소로 접속하면 아래와 같이 출력됩니다.
최초 계정 정보: admin/admin - 로그인하면 암호를 변경해야 합니다.
[Caption] Redmine 초기 접속 화면
⇒ 이 상태론 못쓰겠다… 테마와 플러그인을 적용하자!!!

2. Redmine 테마 및 플러그인 적용

적용한 테마: PupleMine2 - 링크
# puplemine2 테마 적용 cd /opt/redmine/public/themes/ git clone https://github.com/mrliptontea/PurpleMine2.git # apache2 재시작 systemctl restart apache2
Bash
복사
그라바타 사용자 아이콘 (Redmine 자체 기능)
관리 → 설정 → 표시방식 → 그라바타 사용자 아이콘 사용 → Check
기본 그라바타 이미지 : Identicons
내 계정 → 좌측 상단 아이콘 클릭
gravatar.com에서 가입하고 자신의 아이콘 생성
적용한 플러그인: redmine_issue_templates - 링크
일감 생성 시 기본 템플릿 구성
# redmine_issue_templates 플러그인 적용 cd /opt/redmine/plugins git clone https://github.com/agileware-jp/redmine_issue_templates.git cd /opt/redmine bundle install RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=redmine_issue_templates # apache2 재시작 systemctl restart apache2
Bash
복사
적용한 플러그인: redmine_agile - 링크
애자일 형태로 일감 관리 (free 버전에 대해 메일 주소 입력 후 다운로드)
redmine_agile-1_6_8-light.zip
276.7KB
# redmine_issue_templates 플러그인 적용 cd /opt/redmine/plugins unzip redmine_agile-1_6_8-light.zip cd /opt/redmine bundle install --without development test --no-deployment bundle exec rake redmine:plugins NAME=redmine_agile RAILS_ENV=production # apache2 재시작 systemctl restart apache2
Bash
복사
[참고] redmine 삭제
테마와 플러그인 적용 후 Redmine 접속!!

3. Redmine Slack Webhook 테스트

redmine-slack plugin 설치 - 링크
cd /opt/redmine/plugins/ git clone https://github.com/sciyoshi/redmine-slack.git # git clone하면 redmine-slack에 설치되는데 하이픈이 인식이 안되서 에러남 >> redmine_slack으로 변경 mv redmine-slack/ redmine_slack cd .. bundle install --without development test --no-deployment bundle exec rake redmine:plugins NAME=redmine_slack RAILS_ENV=production systemctl restart apache2
Bash
복사
redmine 관리자 권한 계정에서 작업 (최초 생성한 admin 계정)
1.
redmine plugin 설정 (관리 → 플러그인)
Slack URL : Slack Webhook 주소 지정
Slack Channel : 사용할 채널 지정
Post Issue Updates : Check ← 체크하지 않으면 일감 생성할 때만 알람 발생 (편집 및 종료는 알람 X)
2.
redmine 사용자 정의 항목 설정 (관리 → 사용자 정의 항목 → 새 사용자 정의 항목)
- 형식 : 목록 ← 선택
- 이름 : 아무거나…
- 가능한 값들 : #infrasec-redmine-alarm ← 채널 이름
3.
프로젝트 설정 변경 (프로젝트 → 설정)
- 프로젝트 탭에서 Slack Notify : #infrasec-redmine-alarm ← 선택
4.
결과 확인
모든 Action에 대한 정보를 슬랙 채널에 전달
[추가] 슬랙 메시지에 담당자 이름을 멘션으로 지정하기

4. Redmine OAuth 테스트 (google workspace)

플러그인 설치가 가능하지만 Google Workspace에서 설정할 때 ACS URL로 접근이 가능해야 합니다.
즉, 퍼블릭 IP와 도메인이 노출되어야 가능
redmine OAuth Plugin 설치 - 링크
# redmine 5.1.X 이상 지원 cd /opt/redmine/plugins/ git clone https://github.com/kontron/redmine_oauth.git cd .. bundle install systemctl restart apache2
Bash
복사
redmine https 설정
# apache2 SSL 모듈 활성화 a2enmod ssl rewrite # certbot 설치 (apache 경우) apt update apt upgrade -y apt install certbot python3-certbot-apache -y # Certbot 인증서 발급 및 설치 sudo certbot --apache # redmine.conf 수정 vi /etc/apache2/sites-available/redmine.conf <VirtualHost *:80> ServerName redmine.xxx.io ServerAdmin "IP or Domain" # Redirect Request to SSL Redirect permanent "/" "https://redmine.xxx.io/" </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ServerName redmine.xxx.io RailsEnv production DocumentRoot /opt/redmine/public ErrorLog ${APACHE_LOG_DIR}/redmine.xxx.io.error.log CustomLog ${APACHE_LOG_DIR}/redmine.xxx.io.access.log combined SSLEngine on SSLCertificateFile /etc/letsencrypt/live/redmine.xxx.io/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/redmine.xxx.io/privkey.pem <Directory "/opt/redmine/public"> Allow from all Require all granted </Directory> </VirtualHost> </IfModule> # letsencrypt 인증서 자동 갱신 (매일 새벽 3시마다 인증서 갱신 시도 -> 성공하면 apache2 재시작) crontab -e 0 3 * * * /usr/bin/certbot renew --renew-hook="systemctl restart apache2"
Bash
복사
⇒ redmine OAuth 설정으로 사용자 유형을 내부로 지정해서 회사 조직 계정만 접근할 수 있습니다.
⇒ Continue with Google 버튼 클릭!!
⇒ 대상 Google 계정 선택하여 로그인!!
⇒ 로그인 완료!!