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
# 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
這裏使用的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記得開啓白名單以及涉及到不一樣專有網絡須要放行安全組
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 。登錄第一次會要求修改用戶名和密碼。
參考: 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;
結合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
郵件通知是最基本的方式,也能夠實現釘釘及企業微信告警
郵件報警:
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/ ## 增值服務插件