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