标签:自动安装 工作流 需要 网站 系统 code base javascrip 改版
一、redmine有关Redmine是基于ruby语言的开源版的 jira +?Confluence,主要适用于中小团队。目前因内部需要做问题跟踪,新装了一套,这里记录下安装步骤。安装环境要求:
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 |
附一下我的安装环境:
Redmine version | Ruby versions | Rails version | OS version |
---|---|---|---|
4.0.4 | 2.6.3 | 5.2 | CentOS7.4 |
关于是否使用官方推荐的第三方一键部署:个人不建议使用,一键部署无法自定义目录规划,且一键安装的程序目录十分混乱不利于管理,也不利于学习。部署前,建议参考官方文档先安装一次
# 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/>
替换新源
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,如下:
gem install rake
gem install bundle
这里使用的mysql,条件允许建议使用RDS,先使用如下命令安装:
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的内容如下:
production:
adapter: mysql2
database: redmine
host: xxx/rds地址
username: redmine
password: "my_password"
我这里使用的mysql 数据库,如果使用其他数据库操作类似。
依赖包有两种,一种是OS系统依赖包,另一个是ruby需要依赖的包。先说前者,主要是ImageMagick相关包,一条命令搞定:
yum install ImageMagick ImageMagick-devel
后者依赖包,会比较多,安装方式有两种,一种是出现个使用gem指定包名称和版本号装一个,另一种是使用bundle一键搞定。先说前者如何知道依赖什么:
[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
期间遇到如下报错:
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; ##限定访问来源为办公室网络或open***访问
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‘
vim settings.yml
host_name:
default: redmine.mgt.tarscorp.com #解决收到邮件内嵌链接直达为localhost问题
## 这里按实际情况填写,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/ ## 增值服务插件
标签:自动安装 工作流 需要 网站 系统 code base javascrip 改版
原文地址:https://blog.51cto.com/swiki/2490575