Redmine4.x安裝及使用心得分享

1、redmine有關

Redmine是基於ruby語言的開源版的 jira + Confluence,主要適用於中小團隊。目前因內部須要作問題跟蹤,新裝了一套,這裏記錄下安裝步驟。安裝環境要求:javascript

Redmine version Supported Ruby versions Rails version used
4.1 (upcoming) Ruby 2.3, 2.4, 2.5, 2.6 Rails 5.2
4.0 Ruby 2.2 (2.2.2 and later), 2.3, 2.4, 2.5, 2.6 Rails 5.2
3.4 Ruby 1.9.3, 2.0.0, 2.1, 2.2, 2.3, 2.4 Rails 4.2

附一下個人安裝環境:css

Redmine version Ruby versions Rails version OS version
4.0.4 2.6.3 5.2 CentOS7.4

關因而否使用官方推薦的第三方一鍵部署:我的不建議使用,一鍵部署沒法自定義目錄規劃,且一鍵安裝的程序目錄十分混亂不利於管理,也不利於學習。部署前,建議參考官方文檔先安裝一次html

2、ruby gem安裝

# ruby下載安裝
wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.gz -P /usr/local/src/
tar xzvf ruby-2.6.3.tar.gz
cd ruby-2.6.3
./configure --prefix=/usr/local/ruby
make && make install

# 修改環境變量
vim /etc/profile.d/ruby.sh
export export PATH=/usr/local/ruby/bin:$PATH
source /etc/profile

# gem安裝
wget https://rubygems.org/rubygems/rubygems-3.0.4.zip -P /usr/local/src/
unzip rubygems-3.0.4.zip
cd rubygems-*
ruby setup.rb

修改ruby源爲國內源:https://gems.ruby-china.com/java

替換新源
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
檢查源
gem sources -l
https://gems.ruby-china.com
# 確保只有 gems.ruby-china.com

關於Bundler替換國內原:
bundle config mirror.https://rubygems.org https://gems.ruby-china.com

rails框架可使用gem install rails -v=5.2.3 進行安裝,也能夠經過bundle自已查找依賴進行安裝 。先說安裝 bundle,以下:mysql

gem install rake
gem install bundle

3、redmine安裝

一、數據庫配置

這裏使用的mysql,條件容許建議使用RDS,先使用以下命令安裝:nginx

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

## RDS記得開啓白名單以及涉及到不一樣專有網絡須要放行安全組

二、redmine下載

wget http://www.redmine.org/releases/redmine-4.0.4.tar.gz -P /data1/
tar zxvf redmine-4.0.4.tar.gz
mv redmine-4.0.4 redmine

## 安裝後的結構參考,該結構更易於擴展
[root@mgt-redmine-server1 data1]# tree -L 3 redmine/
redmine/
├── current -> release/20200413190500
└── release
    └── 20200413190500
        ├── app
        ├── appveyor.yml
        ├── bin
        ...

修改數據庫配置,Copy config/database.yml.example to config/database.yml ,修改database.yml的內容以下:git

production:
  adapter: mysql2
  database: redmine
  host: xxx/rds地址
  username: redmine
  password: "my_password"

我這裏使用的mysql 數據庫,若是使用其餘數據庫操做相似。web

三、安裝依賴包

依賴包有兩種,一種是OS系統依賴包,另外一個是ruby須要依賴的包。先說前者,主要是ImageMagick相關包,一條命令搞定:sql

yum install ImageMagick ImageMagick-devel

後者依賴包,會比較多,安裝方式有兩種,一種是出現個使用gem指定包名稱和版本號裝一個,另外一種是使用bundle一鍵搞定。先說前者如何知道依賴什麼: shell

[root@361way.com config]# rake db:migrate RAILS_ENV="production"
(in /opt/redmine)
Could not find gem 'rails (= 5.2.3)' in any of the gem sources listed in your Gemfile.
Run `bundle install` to install missing gems.

進行數據庫表結構建立操做的時候,若是缺乏相關依賴會報錯缺乏的包名稱和版本號。按圖索驥就能夠了:

gem install rails -v=5.2.3
gem install rouge -v=3.3.0
gem install request_store -v=1.0.5
gem install mysql2 -v '0.5.2'

依賴會有幾十外,我這裏只寫了幾個,我是沒這個耐心,這裏介紹下如何使用bundle進行安裝。bundle默認不讓使用root安裝,須要建立一個普通用戶,就是啓動redmine進程的用戶www吧。對該用戶須要配置sudo權限,由於其中一些操做是須要使用root身份的。

須要注意,切換用戶後,默認使用的源仍是官方源,這個是在用戶系統目前下配置的,因此切換爲www用戶後,重複上面切換源的步驟。

進入config目錄,執行以下操做

bundle install --without development test  //只能用普通用戶執行,須要給該用戶sudo權限

不一下子全部的依賴就安裝好了,若是有系統依賴包不存在時,會有錯誤提示。

四、生成祕鑰,導入表結構

使用如下命令可生成新的 session 密鑰:

bundle exec rake generate_secret_token

使用以下指令進行表結構操做:

RAILS_ENV=production bundle exec rake db:migrate

該操做和上面rake db檢查包依賴的指令是同樣的。

使用如下命令導入初始數據,包括默認的問題類型、工做流程等:

RAILS_ENV=production REDMINE_LANG=zh bundle exec rake redmine:load_default_data

期間遇到以下報錯,這是一個官方的BUG:

Expected to find a manifest file in `app/assets/config/manifest.js

解決方法:

vim /app/assets/config/manifest.js  ##若目錄不存在則建立

//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css

五、啓動服務

默認使用以下指令啓服務,默認監聽端口3000:

bundle exec rails server webrick -e production -b 0.0.0.0

## 經過nginx啓動就無需這麼啓動,推薦使用nginx啓動

默認的登陸名和密碼都是 admin 。登錄第一次會要求修改用戶名和密碼。

4、nginx整合

參考: https://www.phusionpassenger.com/library/install/nginx/install/oss/el7/

請先配置好阿里源的Base及Epel源

yum install -y pygpgme curl

curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo

yum clean all && yum makecache

yum install -y nginx passenger || sudo yum-config-manager --enable cr && sudo yum install -y nginx passenger

執行完畢後,會自動安裝一個nginx,配置經過passenger啓動訪問redmine

vim redmine.mgt.tarscorp.com.conf 

  passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
  passenger_ruby /usr/local/ruby/bin/ruby;
  passenger_instance_registry_dir /var/run/passenger-instreg;

server {
  listen  80;
  server_name redmine.mgt.tarscorp.com; # redmine.com;
  root /data1/redmine/current/public;
  passenger_enabled on;
  client_max_body_size      20m; # Max attachemnt size
}

## 作一個簡單的安全優化,
    server_tokens       off;     ##隱藏nginx具體版本

    allow 10.254.0.0/16;        ##限定訪問來源爲辦公室網絡訪問
    deny all;

5、整合openldap

結合memberOf實現openLDAP認證

名稱:自定義
主機/端口:按實際填寫

帳號密碼:一般公司會建立一個專門用於查詢認證的用戶
帳號:uid=usr_proxy,ou=Service,dc=tars,dc=com
密碼:xxx

Base DN: dc=tars,dc=com
過濾器: memberOf=cn=Users,ou=Redmine,ou=Groups,dc=tars,dc=com

超時選填,用戶即時生成打鉤

屬性欄根據實際狀況填寫,必填的是登陸名屬性. 
登陸名屬性:uid
名字屬性:gecos
姓氏屬性:givenName
郵件屬性:mail

6、配置郵件通知

郵件通知是最基本的方式,也能夠實現釘釘及企業微信告警

郵件報警:

vim configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: false
      address: 'smtp.tarsplus.com'
      port: 25
      authentication: :login
      user_name: 'redmine@xxx.com'
      password: 'wdMgKPuCZ8vcvyNd'

#解決收到郵件內嵌連接直達爲localhost問題
vim settings.yml
host_name:
  default: redmine.mgt.tarscorp.com
管理--> 配置-->郵件通知:郵箱簽名區域修改:http://redmine.mgt.tarscorp.com/my/page   ##修改這裏的用處是爲了郵箱收到工單能夠直接點擊到達redmine

配置

## 這裏按實際狀況填寫,redmine web頁面也配置一下 管理--> 配置 --> 郵件通知 發件人地址要和user_name對應

## 雲主機記得申請主機的25發郵件權限,也建議在集羣中配置SMTP的網關來實現,只須要nginx作個四層代理轉發給外網的smtp服務器便可,後續集羣任何項目使用smtp只須要走nginx就行了,也只須要解封一臺ECS便可,易於管理。

釘釘通知:基於webhook,推薦我實踐過的兩個項目吧

項目一:https://gitee.com/DexterPoker/redmine2dingding   
## 只適用於釘釘,可是實踐須要懂一點java包。可是釘釘截至目前認證方式改版了因此corpSecret,agentId這塊有變化,須要大家Java同事幫你改一下,還有原做者說的能夠在羣上@同事的效果,依然須要你同事幫你看下,由於可能會有坑,時間緣由也沒繼續往下走了,不過能夠經過singlePush: 1 企業通知的形式發送給指定人

項目二:https://www.redmineplugins.cn/projects/1/plugin_blocks/70
## 支持釘釘和企業微信,最下方有案例參考我簡單記錄分享的,興許能幫你解惑。最終釘釘是經過企業通知的形式發送給指定人

結束語:

這裏安裝上參考了運維之路 ,在此感謝原做者,點擊直達。另外本文作了一些本身的心得分享以及部署問題解決

Redmine 適合中小團隊, 在選型上我的不推薦使用該項目, 雖然開源,但運維難度較高, 單說安裝都會難道一批人。redmine 強大的一方面是插件很是豐富,但探索的路上,你會發現插件的質量良莠不齊,但願你在看到這篇文章能使你少走彎路。這裏推薦個插件網站:

插件網站:
https://www.redmineplugins.cn/projects/redmineplugins/plugin_blocks ##國人收集維護,相對友好
https://www.redmineup.com/ ## 增值服務插件

相關文章
相關標籤/搜索