Redmine
Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据库,有不少自己独特的功能,例如提供wiki、新闻台等,还可以集成其他版本管理系统和BUG跟踪系统,例如Perforce、SVN、CVS、TD等等。这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度
功能
- 多项目和子项目支持
- 里程碑版本跟踪
- 可配置的用户角色控制
- 可配置的问题追踪系统
- 自动日历和甘特图绘制
- 支持 Blog 形式的新闻发布、Wiki 形式的文档撰写和文件管理
- RSS 输出和邮件通知
- 每个项目可以配置独立的 Wiki 和论坛模块
- 简单的任务时间跟踪机制
- 用户、项目、问题支持自定义属性
- 支持多 LDAP 用户认证
- 支持用户自注册和用户激活
- 多语言支持(已经内置了zh简体中文)
- 多数据库支持(MySQL、SQLite、PostgreSQL)
- 外观模版化定制(可以使用 Basecamp 、Ruby安装)
-
项目论坛
-
简单实时跟踪功能
-
SCM in集成 (SVN, CVS, Git, Mecuial, Bazaa and Dacs)
Redmine安装配置
安装依赖:ruby、rake、rails
说明:centos7.3 可以使用yum直接安装ruby,也可以使用rvm安装。在此使用rvm管理ruby,rvm 是一个命令行工具.
#安装rvm
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
$ curl -L https://get.rvm.io | bash -s stable
$ source /etc/profile.d/rvm.sh #这一步必不可少,在执行完上一步之后也会提醒需要执行
$ rvm reload
$ rvm install 2.3.3
# 使用rvm命令:安装ruby
$ rvm list 查看ruby
$ rvm use 2.3.3 使用ruby
$ rvm install xxxx 安装一个版本的ruby
$ rvm remove xxxx 卸载一个版本的ruby
# 安装rake和rails
## 如果嫌默认的ruby源慢,可以使用以下方法进行替换
$ gem source -r https://rubygems.org/ # 删除默认ruby源
$ gem source -a http://mirrors.aliyun.com/rubygems/ # 配置阿里的源
## 安装
$ gem install rake -v 12.0.0
$ gem install rails -v 4.2.6
安装Redmine
$ wget http://www.redmine.org/releases/redmine-3.4.6.tar.gz
$ tar -xvf redmine-3.4.6.tar.gz
$ mv redmine-3.4.6 /usr/local/
$ cd /usr/local/
$ ln -s redmine-3.4.6 ./redmine
创建数据库
mysql -uroot -proot
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
mysql> CREATE USER 'redmine'@'172.16.0.4' IDENTIFIED BY 'redmine';
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'172.16.0.4';
#测试连接redmine 库
$ mysql -uredmine -h172.16.0.4 -predmine
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| redmine |
+--------------------+
2 rows in set (0.00 sec)
配置数据库
#进入redmine 配置目录
$ cd /usr/local/redmine/config
$ cp database.yml.example database.yml
$ vim database.yml
adapter: mysql2
database: redmine #数据库
host: 172.16.0.4 #数据库连接IP
username: redmine #数据库用户
password: "redmine" #数据库密码
encoding: utf8
安装依赖: Redmine通过Bundler管理gems的依赖
# 安装bundler
$ gem install bundler
# 安装Redmine所依赖的gems相关包
$ bundle install --without development test
- Note: 可选依赖项 && 数据库适配器
- RMagick :允许通过ImageMagick操作PDF和PNG导出的图像。如果系统没有安装ImageMagick,在安装Redmine依赖包时需要跳过该项
bundle install --without development test rmagick
session加密处理: 创建随机key对session加密,防止被篡改
$ bundle exec rake generate_secret_token
初始化数据库字段:
$ RAILS_ENV=production bundle exec rake db:migrate
数据初始化:
$ RAILS_ENV=production bundle exec rake redmine:load_default_data
## 该过程会以交互形式让用户选择语言环境变量,也可以在执行该命令时直接指定环境变量,如下:
$ RAILS_ENV=production REDMINE_LANG=zh bundle exec rake redmine:load_default_data
- 文件系统授权: 运行Redmine的用户需要对以下目录文件有写权限。出于安全考虑,app使用普通用户运行,所以在此需要先创建redmine用户。授权目录如下:
- files:存储附件文件log:存放应用日志
- tmp 和 tmp/pdf:如果目录文件不存在需要手动创建,用于创建PDF文件
- public/plugin_assets:存放插件
$ mkdir -p /usr/local/redmine/tmp/pdf /usr/local/redmine/public/plugin_assets
$ useradd redmine
$ chown -R redmine:redmine /usr/local/redmine
测试
$ bundle exec rails server webrick -e production
启动Redmine:
$ /usr/local/rvm/rubies/ruby-2.3.3/bin/ruby /usr/local/redmine/bin/rails server webrick -e production -d
检查Redmine运行状态:
Note: Due to a change in Rack,
rails server
now listens onlocalhost
instead of0.0.0.0
by default. Thisshould have minimal impact on the standard development workflow as both
http://127.0.0.1:3000 and http://localhost:3000 will continue to work as before
on your own machine.
However, with this change you will no longer be able to access the Rails
server from a different machine, for example if your development environment
is in a virtual machine and you would like to access it from the host machine.
In such cases, please start the server with
rails server -b 0.0.0.0
torestore the old behavior.
即, 新版本的Redmine启动后默认监听localhost,如果要通过外网访问,需要在启动时指定其监听的ip。如果不指定,需要在本机配置代理(nginx/httpd)。
安装iptables
$ yum install -y iptables-services
#添加规则
$ vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT
#启动iptables
systemctl start iptables
# 检测方法1:
$ curl http://192.168.228.130:3000 -I # 返回200状态码
# 检测方法2:配置代理,通过浏览器访问
## nginx相关配置如下:
vim /usr/local/nginx/conf/vhost/upstream.conf
upstream backserver {
server 127.0.0.1:
vim /usr/local/nginx/conf/vhost/redmine.conf
server {
listen 80;
server_name redmine.sasha-lab.net
location / {
#配置代理
proxy_pass http://backserver;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Redmine安装完成
登录
说明:user:admin passed:admin
登陆后会提示更改密码
至于我改了什么密码就不告诉你们啦
Redmine安装插件
随着需求的不断调整,对于功能的要求也就越来越多,所以作为运维,随时都面临着对已有工具升级、打补丁、装插件等工作。
Redmineg官方插件 http://www.redmine.org/plugins?page=1 ,更多的插件可以到github查找并下载。
安装插件(插件redmine_angile):
下载插件到 cd /usr/local/redmine/plugins/
下,并解压
安装依赖的gems包(需要先切换至Redmine运行目录):
$ cd /usr/local/redmine/ && bundle install --without development test --no-deployment --path vendor/cache
切换至redmine用户 (必须有该操作,否则将因文件权限问题导致服务不可用);
更新数据库
$ bundle exec rake redmine:plugins NAME=redmine_agile RAILS_ENV=production ;
重启redmine
/usr/local/rvm/rubies/ruby-2.3.3/bin/ruby /usr/local/redmine/bin/rails server webrick -e production -d
刷新页面即可看安装的插件
Redmine 配置邮件通知
#复制配置文件模版
$ cp configuration.yml.example configuration.yml
#配置
default:
email_delivery:
delivery_method: :async_smtp
smtp_settings:
address: smtp.163.com
port: 25
domain: 163.com
authentication: :login
user_name: "13660559892@163.com"
#password: "!QAZxsw2#EDC"
password: "Wuqd13579246810"
温馨提示:若delivery_method: :smtp 在测试发送邮件时会报553状态码,如图显示