인프라

centos 8 linux 에서 레드마인 설치하는 방법

소행성왕자 2020. 7. 24. 11:23

Redmine은 널리 사용되는 오픈 소스 프로젝트 관리 웹 응용 프로그램입니다.
MySQL 및 PostgreSQL 과 같은 시장 데이터베이스 를 백엔드로 지원 하며 설치와 함께 제공된 WEBrick (제작 사용에 권장) 웹 서버에서 Apache 로 프론트 엔드를 변경할 수도 있습니다.
본 내용에서는 PostgreSQL을 백엔드로 사용하여 최신 Redmine을 RHEL 8 / CentOS 8 에 설치하는법을 보여드립니다.

 

1. 응용 프로그램의 소유자가 될 사용자를 만들고 임시 sudo액세스 권한을 부여합니다.(root 권한)
# useradd redmine

새 사용자의 비밀번호를 설정해야합니다. 비밀번호는 원하는것 입력하세요. (root 권한)
# passwd redmine


RHEL 기반 배포에는 권한있는 명령을 실행하는 wheel데 사용할 수 있는 사용자 그룹이 있습니다.
이 그룹으로 설정되어 있는지 확인하기 위해 파일 sudoer을 만들 수 있습니다.
# grep "%wheel" /etc/sudoers
%wheel  ALL=(ALL)       ALL
# %wheel        ALL=(ALL)       NOPASSWD: ALL

NOPASSWD 옵션이 있는 두 번째 줄은 주석 처리되어 있습니다.
위의 구성을 사용하면 redmine 사용자를 wheel 그룹에 추가하기만 하면 됩니다.
# usermod -a -G wheel redmine

2. 운영 체제에서 제공 하는 패키지 를 설치하기 위해 dnf 사용합니다.
# dnf install kernel-devel kernel-headers gcc postgresql-devel ruby ruby-devel rubygems


3. redmine 응용 프로그램을 얻으려면 공식 다운로드 사이트 (Redmine에서 실행되는)를 방문하세요.
여기에서 우리는 압축 다운로드 할 수 있는 wget 이용하여 얻겠습니다.
# wget https://www.redmine.org/releases/redmine-4.0.3.tar.gz -O /opt/redmine-4.0.3.tar.gz

저장경로는 /opt 에 저장됩니다.
/opt 로 이동하여 압축을 풀겠습니다.

# cd /opt
# tar -xzf redmine-4.0.3.tar.gz

압축푼 redmine 을 /home 경로에 이동할께요

# mv ./redmine-4.0.3 /home/redmine/

4. 데이터 베이스 설정 (mysql 사용합니다.)
# cd /home/redmine/redmine-4.0.3/config
# mv ./database.yml.example ./database.yml
# vi database.yml

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "password"
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4


 * mysql 버전이 5.7.7 이전 이면 utf8mb4 대신 utf8 을 사용하세요.

4. 데이터 베이스 설정이 끝났으면 이제 Redmine이 의존하는 다양한 Ruby 패키지를 설치할 것입니다.
그들 중 일부는 root액세스 가 필요 하고 일부는 redmine사용자 이름으로 설치 되며 나중에 일부는 복구가 필요할 것입니다. 
(redmine 계정)
# gem install bundler


5. redmine 설치 (redmine 계정) 
# bundle install --without development test rmagick

이부분에서 오류가 발생할수 있습니다.
오류 내용을 보면 패키지 설치가 되어 있지 않은 경우가 대부분이니 자세하게 살펴보시기 바랍니다.

$ dnf install redhat-rpm-config

6. 가장 어려우부분을 끝냈습니다. 이제 토큰을 생성합니다.

$ bundle exec rake generate_secret_token

7. 다음으로 애플리케이션에 필요한 데이터베이스 객체를 생성합니다.

$ RAILS_ENV=production bundle exec rake db:migrate
...
...
...

완료되면 mysql redmine table 생성된것을 확인할수 있습니다.

8. 설치의 마지막 단계는 기본 데이터를 데이터베이스에 로드하는 것입니다.
$ RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data


9. 설치가 완료되어 redmine 을 시작해보겠습니다. (redmine 계정으로)
# bundle exec rails server webrick -e production -p 3009 &

보통 3000 포트를 사용하는데 저는 gitlab 을 사용하느라 이미 3000포트를 사용하고 있어 3009 포트를 사용합니다.


10. 3009 방화벽 오픈

# firewall-cmd --zone=public --add-port=3009/tcp --permanent
# firewall-cmd --reload


11. 브라우져이서 http://192.168.1.14:3009 가르기면 redmine 설치된 기본 인터페이스를 볼수 있습니다.

12. 설치가 완료되면 그룹 에서 redmine 사용자를 wheel 제거하여 프로세스 중에 필요한 보안 허점을 제거 할 수 있습니다. (redmine 계정)

# id
uid=1023(redmine) gid=1023(redmine) groups=1023(redmine),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

# gpasswd -d redmine wheel
사용자 redmine을(를) 그룹 wheel에서 제거하는 중

# id redmine 
uid=1023(redmine) gid=1023(redmine) groups=1023(redmine)