JIRA
     分类:项目管理     有: 2 条评论

JIRA

     分类:项目管理     有: 2 条评论

JIRA SoftWare

JIRA SoftWare是一款很强大的项目管理软件。收费的,很贵。关于JIRA 的安装、迁移、管理
官网下载:https://www.atlassian.com/software/jira/update

Centos 7 安装

最好在新的系统中安装,因为默认是8080端口,当然也可以修改为其他端口。

配置JDK环境

安装Centos 7时选择开发模式,这样会自动安装JDK1.8,如果系统中没有JDK1.8,请自行安装JDK1.8或以上版本,设置好环境变量。可参考本博客:java jdk环境搭建

安装、配置数据库

虽然JIRA自带数据库,但是要更好的体验还是用更专业的数据库,在Linux中用MySQL或mariaDB比较多;数据库建议用MySQL5.6,虽然官网文档有写支持5.7,但是我还没有尝试过,MySQL5.7对应的mariadb10是可以正常使用的。

为了方便,我们统一创建一个目录用来安装JIRA,我是在kvm中,直接一个虚拟机用来运行JIRA

# 创建用来存放安装文件的目录
mkdir /data/AtlassianResource
cd /data/AtlassianResource

安装参考:MySQL数据库
可以yum,可以rpm,可以源码编译,安装MySQL5.6,MySQL5.7,mariadb10等都是没有问题的,之后可以通过配置调优。

下面为MySQL RPM安装方式文件分布(有需要的可看看):

目录说明
/usr/bin客户端程序和可执行文件、脚本
/usr/sbin服务端程序
/var/lib/mysql日志文件、数据库文件[重点要知道这个]
/usr/share/info信息文件
/usr/share/man联机帮助文档目录
/usr/include/mysqlC头文件目录
/usr/lib/mysqllib库文件目录
/usr/share/mysql其他支持文件,包括错误信息,字符集文件,示例配置文件,SQL数据库的安装
/usr/share/sql-bench基准程序

下面以MySQL5.6为例:
官方配置说明:https://confluence.atlassian.com/doc/database-setup-for-mysql-128747.html

systemctl stop mysqld

vim /etc/my.cnf
#修改或增加以下内容
[mysql]
default-character-set=utf8

[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES   #这一行一般已经有了,不用修改
# sql_mode = NO_AUTO_VALUE_ON_ZERO  #有这一行的话一定要注释掉

transaction-isolation = READ-COMMITTED
max_allowed_packet=512M
innodb_log_file_size=512M
innodb_buffer_pool_size=512M
innodb_file_per_table=1
collation-server=utf8_bin
character-set-server=utf8
default-storage-engine=INNODB

#下面三行配置,添加后,若MySQL无法启动,则请删除;若可正常启动,则最好添加上。
performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256

# 保存并启动数据库
systemctl start mysqld

检查配置并创建数据库

# 查看最大包限制大小,数值除以1024再除以1024得到的就是MB,如果不是上一步设置的512M可以用命令修改。
show VARIABLES like '%max_allowed_packet%'; 
# 查看字符集变量,如果不是utf8就设置为utf8
SHOW VARIABLES LIKE 'character%'; 

# 修改命令
mysql -u root -p
set global max_allowed_packet = 512*1024*1024
set global character_set_server = utf8
set global character_set_connection = utf8

# 创建数据库
CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;
exit

# 删除MySQL日志文件
cd /var/lib/mysql/                     #MySQL的数据库文件目录
# ls可以看到有ib_logfile0和ib_logfile1两个文件,删除这两个文件
rm -rf ib_logfile*

安装JIRA

# 官网下载地址,选Linux(x64):https://www.atlassian.com/software/jira/update
# 目前最新的是7.4
cd /data/AtlassianResource
wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.4.0-x64.bin
chmod a+x atlassian-jira-software-7.4.0-x64.bin
./atlassian-jira-software-7.4.0-x64.bin

INFO: Created system preferences directory in java.home.
This will install JIRA Software 7.1.7 on your computer.
OK [o, Enter], Cancel [c]                                                                          
# 询问是否安装?  安装[输入o,回车],取消[输入c] ;输入o安装
# 我输入o

Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (use default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing JIRA installation [3]
# 选择一个安装类型:快速安装(使用默认配置)[1]、自定义安装(建议使用此类型)[2]、升级安装(升级已存在的JIRA)[3] ;;;选2,自定义安装
# 我输入1
                                                                                  
Where should JIRA Software be installed?         #JIRA安装在哪?                                                   
[/opt/atlassian/jira]           #默认的【安装目录】                                                                 
/data/atlassian/jira            #设置为我要安装的目录

Default location for JIRA Software data              #JIRA数据目录(JIRA应用程序主目录)
[/var/atlassian/application-data/jira]               #默认的【数据目录】
/data/atlassian/application-data/jira                #设置为我要安装的目录

Configure which ports JIRA Software will use.        #配置哪个端口给JIRA使用
JIRA requires two TCP ports that are not being used by any other
applications on this machine. The HTTP port is where you will access JIRA
through your browser. The Control port is used to startup and shutdown JIRA.
Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]                                 
# JIRA需要两个未被使用的TCP端口:HTTP端口和Control(控制)端口
# 我输入2,配置自定义端口
# 这里我们也选择2,但是实际不去改它,只是阅览下
HTTP Port Number
[8080]
Control Port Number
[8005]

JIRA can be run in the background.
You may choose to run JIRA as a service, which means it will start                                 
automatically whenever the computer restarts.
#JIRA安装成系统服务后,可以后台运行,可以用服务命令形式(service 服务名 start/stop)启停,还可以随计算机自启动。
Install JIRA as Service?                                                                           # 将JIRA安装成系统服务?
Yes [y, Enter], No [n]                                                                             # 是[y,回车],否[n] ;;;输入y

Details on where JIRA Software will be installed and the settings that will be used.
Installation Directory: /data/atlassian/jira
Home Directory: /data/atlassian/application-data/jira
HTTP Port: 8080
RMI Port: 8005
Install as service: Yes
Install [i, Enter], Exit [e]                                                                       # 列出前面配置的信息,输入i开始安装

Extracting files ...

Please wait a few moments while JIRA Software starts up.
Launching JIRA Software ...
Installation of JIRA Software 7.4.0 is complete
# 之后会提示是否启动服务,y或n都随意
Your installation of JIRA Software 7.4.0 is now ready and can be accessed
via your browser.
JIRA Software 7.4.0 can be accessed at http://localhost:8080                                       # 访问地址 http://[ip]:8080,如http://127.0.0.1:8080
Finishing installation ... #安装完毕

此时可以用ststemctl来管理JIRA了

# 注意:JIRA启动非常的慢,运行命令后还看不到8080端口,起码要2分钟以后才能看到,才能够正常访问
systemctl start jira
systemctl stop jira
systemctl restart jira

#或者用安装目录下的脚本:
/data/atlassian/jira/bin/start-jira.sh
/data/atlassian/jira/bin/stop-jira.sh
/data/atlassian/jira/bin/shutdown.sh  #完全关闭JIRA系统

# 设置开机自启
JIRA本身是设置了开机自启的,但是/etc/rc.d/init.d目录下的jira启动脚本不支持`chkconfig jira on`的方式设置启动
测试了一下添加到rc.local也不管用,先用脚本启动,有空再处理
ln -s /data/atlassian/jira/bin/start-jira.sh /root
ln -s /data/atlassian/jira/bin/stop-jira.sh /root

安装数据库连接驱动

此时,虽然安装完了,但是是无法连接数据库的,需要连接驱动。
MySQL-connect-java驱动下载:https://dev.mysql.com/downloads/connector/j/
下载后解压出mysql-connector-java-5.1.42-bin.jar文件(目前最新的是5.1.42),放在在<JIRA installation directory>/lib/目录下。即:/data/atlassian/jira/lib(默认安装的话,位置为:/opt/atlassian/jira/lib)
参考:https://confluence.atlassian.com/adminjiraserver074/connecting-jira-applications-to-mysql-881683181.html

破解JIRA

这里的破解程序只是我自己使用,不方便公开(原因大家都知道),这些破解文件貌似适合7.X系列的,目前7.3.8和7.4是可以正常使用的。
破解文件:JIRA破解文件.zip 密码:1087。。。。
下载破解文件,解压到root目录,接下来要替换文件

#find找到文件目录
find / -name atlassian-extras*

[root@jira ~]# find / -name atlassian-extras*
find: ‘/run/user/42/gvfs’: Permission denied
/data/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar
/data/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-api-3.2.jar
# atlassian-extras-3.2.jar就是要替换的文件,先备份,再替换

mv /data/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar /data/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar.bak
mv /root/atlassian-extras-3.2.jar /data/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar
#如果破解文件atlassian-extras-3.2.jar的文件名和系统中的atlassian-extras-3.2.jar文件名不同,改为和系统的一样的文件名。

find / -name atlassian-universal-plugin-manager-plugin*

[root@jira ~]# find / -name atlassian-universal-plugin-manager-plugin*
find: ‘/run/user/42/gvfs’: Permission denied
/data/atlassian/jira/atlassian-jira/WEB-INF/atlassian-bundled-plugins/atlassian-universal-plugin-manager-plugin-2.22.2.jar
/data/atlassian/application-data/jira/plugins/.osgi-plugins/transformed-plugins/atlassian-universal-plugin-manager-plugin-2.22.2_1498616682000.jar
/data/atlassian/application-data/jira/plugins/.osgi-plugins/transformed-plugins/atlassian-universal-plugin-manager-plugin-2.22.2_1499394258000.jar
# atlassian-universal-plugin-manager-plugin-2.22.2.jar就是要替换的文件

mv /data/atlassian/jira/atlassian-jira/WEB-INF/atlassian-bundled-plugins/atlassian-universal-plugin-manager-plugin-2.22.2.jar /data/atlassian/jira/atlassian-jira/WEB-INF/atlassian-bundled-plugins/atlassian-universal-plugin-manager-plugin-2.22.2.jar.bak
mv /root/atlassian-universal-plugin-manager-plugin-2.21.jar /data/atlassian/jira/atlassian-jira/WEB-INF/atlassian-bundled-plugins/atlassian-universal-plugin-manager-plugin-2.22.2.jar
#同样,文件名要改为系统里文件的文件名

接下来重启JIRA:systemctl restart jira 开始初始化配置,要耐心等待JIRA完全启动。




这里把密钥粘贴进去,点下一步,不用管ServiceID是多少,只粘贴ID就可以。



到了这里就算完成安装了,可以正式使用了,之后的配置基本是在JIRA里面进行设置了。


Docker部署

# 数据库部分
docker run --name mysql -d -v /web/soft/jira_mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -it docker.io/mysql:5.6.36

docker exec -it [容器名:mysql] /bin/bash
vim /etc/mysql/conf.d/docker.cnf
#加入以下内容
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

transaction-isolation = READ-COMMITTED
max_allowed_packet=512M
innodb_log_file_size=512M
innodb_buffer_pool_size=512M
innodb_file_per_table=1
collation-server=utf8_bin
character-set-server=utf8
default-storage-engine=INNODB

#下面三行配置,添加后,若MySQL无法启动,则请删除;若可正常启动,则最好添加上。
performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256

# 保存退出容器,重启容器
docker restart [容器名:mysql]
docker exec -it [容器名:mysql] /usr/bin/mysql -uroot -p123456 -e "create database jira"

###########################################################
# JIRA 部分
这里--link指定链接名称为mysql的容器,取名别名也叫mysql
docker run --name jira -d -p 8066:8080 --link mysql:mysql -it docker.io/cptactionhank/atlassian-jira:latest
# 用root用户进入容器(默认不是root)
docker exec -u root -it [容器名:jira] /bin/bash

破解JIRA,按Centos 7的方式进行,替换文件,理论上破解文件支持JIRA7.X系列;文件名要与系统的一致。
修改完毕退出容器,重启容器
docker restart [容器名:jira]

浏览器访问,并粘贴密钥,数据库选mysql,host输入mysql(运行容器时指定了名称,重启会导致IP变更,所以这里用主机名)配置完成。

开启HTTPS

利用nginx反代;现在nginx上设置好域名和证书;能正常访问域名;

# 默认安装的位置在opt下
vim /opt/atlassian/jira/conf/server.xml

# 配置文件中Connector已经注释掉了一段,不用理,直接加以下这一段
<!-- OPTIONAL,Nginx Proxy Connector with https -->
<Connector port="8081(端口)" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" proxyName="你的jira用的域名" proxyPort="443" scheme="https" secure="true"/>

# 修改好后,重启jira;可以看到多了个8081端口,其实就是443访问一样的加密端口
# 然后修改nginx反代的地址是:https://localhost:8081
# 配置完成,可以使用了

参考:
http://blog.csdn.net/wh211212/article/details/76098957
https://www.cnblogs.com/jzy996492849/p/7240116.html



jira-config.properties

jira-config.properties文件(在7.X)版本默认是没有的,要自己创建
该文件是用于修改一些高级的功能,这个文件指定的值会替换jpm.xml文件中对应的key的值。要修改某一项值就查看jpm.xml文件中相应的key,复制到jira-config.properties中用赋值号“=”进行赋值。
文件位于:/data/atlassian/application-data/jira/jira-config.properties (位于JIRA应用程序主目录的根目录)
官方文档:https://confluence.atlassian.com/adminjiraserver074/advanced-jira-application-configuration-881684161.html

关闭顶部烦人的临时访问提示(JIRA管理员后台二次登录)

JIRA管理员每次进入系统后台,都要进行二次密码登录
JIRA和Confluence之间建立的应用程序链接,在进入后台时,仍然要进行二次密码登录,是不是很繁琐?
具体要修改的值可以在jpm.xml中看到(find一下就能找到在/data/atlassian/jira/atlassian-jira/WEB-INF/classes/下)

vim /data/atlassian/application-data/jira/jira-config.properties
# 写入下面的值,去关闭临时访问功能(websudo)
jira.websudo.is.disabled = true
#使用绝对格式日期,不想对日期(如今天、昨天)
jira.lf.date.relativize = false
# 保存退出,重启JIRA生效

官方文档:https://confluence.atlassian.com/adminjiraserver074/configuring-secure-administrator-sessions-881684205.html


JIRA应用程序主目录

就是在安装的时候设置的目录:/data/atlassian/application-data/jira(find / -name export也能找到)

[root@jira bin]# ll /data/atlassian/application-data/jira/
total 12
drwxr-x--- 2 jira jira 4096 Jul  7 14:01 analytics-logs
drwxr-x--- 4 jira jira   44 Jul  7 09:57 caches
drwxr-x--- 3 jira jira   25 Jul  6 23:06 data
-rw-r----- 1 jira jira 1151 Jul  7 09:57 dbconfig.xml
drwxr-x--- 3 jira jira   58 Jul  7 09:59 export
drwxr-x--- 4 jira jira   64 Jul  7 09:58 import
-rw-r----- 1 jira jira  234 Jul  7 10:34 jira-healthcheck-eol.json
drwxr-x--- 2 jira jira  100 Jul  7 09:58 log
drwxr-x--- 2 jira jira    6 Jul  7 10:34 logos
drwxr-x--- 2 jira jira   76 Jul  7 09:58 monitor
drwxr-x--- 6 jira jira  100 Jul  7 09:57 plugins
drwxr-x--- 3 jira jira   26 Jul  6 23:06 tmp

目录具体作用参考:https://confluence.atlassian.com/adminjiraserver074/jira-application-home-directory-881684063.html


工作流

mark
mark


备注分组查看

项目管理点开对应的项目
mark
mark
这里admin是管理员组。soft是内部人员组。clent是客户组。这里把admin和soft都加入项目角色Administrator中;这里的权限只会影响问题的备注,不会影响其他权限。客户的账户加入client中,这样每次写备注就可以选定可查看的角色,客户无法看到内部处理问题的过程。
mark


JIRA 7.2 之后版本开启Excel 导出功能

  1. 停止 JIRA。
  2. $JIRA_HOME 目录下,编辑jira-config.properties文件,如果没有此文件,新建一个。
  3. 在此文件中添加语句:jira.export.excel.enabled=true

导出CSV文件乱码

法1:导出问题为CSV文件,用Excel打开是乱码的,用win记事本另存为ANSI格式文档,再用Excel打开看看是否已正常显示。
法2:用win记事本打开CSV文件,不要做任何操作,直接保存文件,再用Excel打开看看是否正常。参考:CREO自动生成的BOM表


文件名乱码

参考:http://blog.csdn.net/mchdba/article/details/39529565?utm_source=tuicool&utm_medium=referral


数据迁移

Atlassian产品的备份机制是这样的:
数据分为两类:文字数据和附件数据,文字数据都一般都存在数据库中,附件数据直接存在数据目录(也称Home目录)中(JIRA默认位置为**Application DataJIRA)。

用户在软件后台界面点击备份后(备份的是数据库的文字数据),会将数据库中的数据和附件压缩成zip放在软件安装的数据目录中。以后直接在软件后台的还原功能里导入这个zip包进行还原即可。因此无需单独去备份数据库。

但是在手动备份或软件自动备份里,建议不勾选备份附件选项。这是因为数据库中的文字数据压缩成zip包后很小,而附件数据就十分的大(几乎无压缩),假如每天自动备份一次,硬盘很容易就被占满了。因此备份时不备份附件,还原时将文字数据还原后,直接将附件目录从原来的覆盖到新的即可。

<font color=#ff0000>注意:如果原jira有安装agile、servicedesk、katl-commons插件,新jira需先安装插件后再还原数据</font>

只迁移数据,重建索引

1,用系统管理员登入站点管理,打开“系统”页面,如下图,点击“备份数据”菜单。(备份文字数据)
jira111

2,备份好数据后,关闭JIRA,停止服务。下图是附件数据
jira222

3,把附件数据文字数据拷贝到新平台,覆盖附件数据,把文字数据的压缩包放到import文件夹下;启动JIRA,在后台恢复数据,迁移完成。
jira222

迁移所有数据(包括日志、缓存、索引)

如果是旧平台迁移到新平台上(想保留所有文件,包括索引、日志等),可以直接把/data/atlassian/application-data/jira/(JIRA数据目录,在安装时指定的)目录下,除了dbconfig.xml,jira-config.properties,jira-healthcheck-eol.json,.jira-home.lock 这4个文件(貌似Linux才有4个,在win中只有2个)外,其他的都拷贝到新平台,并把文字数据的压缩包放到import文件夹下,启动JIRA,在后台恢复数据,迁移完成。

参考资料:Atlassian产品备份与还原


备份服务

JIRA自带了备份服务,可以自动备份(附件不备份);备份的是设置,配置等。这个功能藏的比较深。
在右侧选择系统--服务--Backup Service


教程

http://www.confluence.cn/pages/viewpage.action?pageId=2916470



Atlassian Confluence

Atlassian Confluence是一个知识管理平台(WiKi)


(●゚ω゚●)
  1. deluks

    兄弟,你给的破解文件密码不正确啊。

    Reply
    1. 博主
      @deluks

      (╯﹏╰)那个不是密码,只是方便我自己记而已,密钥还不能公开,可能会影响到业务,抱歉。

      Reply