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/ ## 增值服务插件

相关文章
相关标签/搜索