Skip to content

Jira

前置环境资源准备:

名称 下载地址
Jira Software https://www.atlassian.com/zh/software/jira/download
JDK1.8 yum install java-1.8.0-openjdk -y
mysql5.7 https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
Postgresql9.6 https://www.postgresql.org/download/

开始

首先

推荐系统语言设置为中文,不然后面显示会有部分乱码,影响体验

[root@jira ~]# cat /etc/locale.conf 
LANG=zh_CN.UTF-8

MySql

#解压安装包
tar xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
#本地安装
yum localinstall mysql-*
#激活并启动mysqld
systemctl enable --now mysqld
#查询密码
grep pass /var/log/mysqld.log
#修改当前登录用户的密码
alter user user() identified by 'xxxxx';

为了安全,建议修改mysql监听地址:

cat >/etc/my.cnf<<EOF
bind-address=127.0.0.1
EOF
systemctl restart mysqld

然后接着创建一个用于JIRA的数据库:

create database jira character set utf8mb4 collate utf8mb4_bin;
grant all privileges on jira.* to jiraAdmin@'localhost' identified by 'xxxxxx' with grant option;
flush privileges;

如果出现ERROR 1819 (HY000), 依次执行:

SHOW VARIABLES LIKE 'validate_password%';

set global validate_password_policy=LOW;

安装Postgresql9.6

因为最新的8.6.x才会支持pgsql10,所以这里要先使用pgsql9.6,

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
yum install postgresql96-server
/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl enable --now postgresql-9.6
修改pg_hba.conf,改一下监听地址和password, 修改postgres用户密码:
sudo -u postgres psql
alter user postgres with password 'xxx';
# 保险一点,禁止postgres系统登录
usermod -s /sbin/nologin postgres
创建jira的用户:
postgres=# CREATE DATABASE jiradb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;
CREATE DATABASE
postgres=# \l
                                     数据库列表
   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
-----------+----------+----------+-------------+-------------+-----------------------
 jira      | postgres | UTF8     | C | C | 

postgres=# create user jira with encrypted password 'xxx';
CREATE ROLE
postgres=# grant all privileges on database jiradb to jira;
GRANT

JIRA安装

sudo ./atlassian-jira-software-8.4.1-x64.bin
cd /data/atlassian/jira
sudo cp ~/atlassian-agent.jar .
vim catalina.sh
JAVA_OPTS='-Xms2048m -Xmx8192m -javaagent:/data/atlassian/jira/atlassian-agent.jar'

cd /data/atlassian/jira/atlassian-jira/WEB-INF/lib
sudo wget https://jdbc.postgresql.org/download/postgresql-42.2.9.jar
sudo cp ~/atlassian-extras-3.2.jar .

cd /data/atlassian/jira/atlassian-jira/WEB-INF/atlassian-bundled-plugins
sudo cp ~/atlassian-universal-plugin-manager-plugin-4.0.5.jar .

JIRA卸载

sudo ./uninstall && rm -rf xx

JIRA激活

如下图: image.png

记录一下自己的server-id,后面有用,然后:

java -jar atlassian-agent.jar -p jira -m changsen.dev@gmail.com -o xx.com -s B33J-D9GT-KK
#会得到一串序列码,然后复制到上图中去,就可以了
接着:

image.png

到这儿,基本上就算是部署成功了

后面如果要破解插件,使用命令:java -jar atlassian-agent.jar -p 'com.thed.zephyr.je' -m changsen.dev@gmail.com -o https://jiandaoyun.com -s B33J-D9GT-KKVI-5040

说实在的,部署安装这一路上,踩了不少的坑,其中最最深的坑就是这个乱码问题,如下图所示: PXM_IZ15XFCO6VP8Z830.png

晕了,这啥玩意儿,我尝试安装中文语言包,变更系统环境,变更中文索引,都不行,最后还是通过下面的办法解决的,吃水不忘挖井人,在这里要感谢下这个博主

sed -i '/^JVM_SUPPORT/s/""/"-Dfile.encoding=utf-8"/' setenv.sh
service jira stop/start


关于备份还原,也是比较坑,我的目标是要把jira7.10.2里面的数据导入到8.4,在最终实践完成之后,发现几个点需要注意一下

  1. 跨版本备份还原的时候,尽量初始化目标JIRA,也就是说刚刚安装好的jira,啥操作设置都还没有做,这样的话后期问题是最少的,在导入zip包的时候,应该把秘钥lic也写进去,然后等待漫长的时间就可以
  2. 上一步等待完成之后,你会发现用原来的账户密码无法登陆,而且就算是用旧的账号也没有权限登录,那该咋办呢? 找一下之前的管理员账号,用管理员权限登录才行的;还有记住在更新jira的lic之前,千万不要重启,否则你就凉凉了,只能重新部署一回
  3. 安装好之后,更新好lic之后,重启就会发现正常了
  4. 还有就是索引的问题,不要想着用原来的索引复制直接放在当前目录下,那样就算可以启动,但是你到时候就会发现索引根本是无法更新,要解决这个问题,唯一的做法就是:在更新lic之后,删除掉indexesV1下面的所有文件(可选),然后等待,可能会遇到的情况是要更新生成完整的索引才会出现登录界面,这个时候,关闭jira,再启动,应该就行了,如果不行,那就只能等等
  5. 在进行登陆的时候,如果不知道管理员是谁,可以自己去数据库找到jira的库,然后在cwd_membership中去查找select child_name, directory_id from cwd_membership where parent_name='jira-administrators',就会知道谁是管理员了;
  6. 再不济,你如果连密码也忘了,好办,直接更新数据库的值,update cwd_user set credential='{PKCS5S2}bHqqrJhRBRZthu7zp4HlZUNIPD+D0yPuNlo3cLeBUKBTPH/fik0nSdG' where id=10001; 这里的id指的是管理员的id,单引号必须使用,不能用双引号,最后找一个已知用户的credential来作为值,就OK了
  7. 迁移过的项目可能会存在serverid一样的情况,那么这样的话就需要手动修改serverid了,具体参考这个链接吧,我就不细说了 传送门
  8. 假如遇到了启动jira的黄色警告,十有八九需要看下配置文件了
  9. 如果遇到有些任务没法删除,可能需要重启下对接的pg数据库了
  10. 假若遇到jira能够对接bitbucket,但是反向对接却不行,这样的话可能需要重新修改一下server.xml配置文件了,系统默认的达不到效果,必须要开启多个connector,指定不同的端口,然后nginx代理的bb使用443那个connector,bb那边填写不使用代理层,直接访问应用ip端口也行,但是jira的基本url那边一定要填写https域名访问的方式才可以(困扰了我好些时间,最终解决了,激动)

最后说一句,这些坑都是一点点摸索了,google上有些都没有,之后宁愿多写一点代码,都尽量不折腾这个历史遗留的大工程了

参考文档

  1. https://confluence.atlassian.com/adminjiraserver084/connecting-jira-applications-to-mysql-5-7-979404275.html

  2. https://confluence.atlassian.com/doc/database-setup-for-mysql-128747.html#DatabaseSetupForMySQL-Troubleshooting

  3. https://confluence.atlassian.com/jira/retrieving-the-jira-administrator-192836.html?_ga=2.135018673.1737434708.1577466457-1481252373.1574734546

  4. https://confluence.atlassian.com/display/JIRA044/Running+JIRA+over+SSL+or+HTTPS?_ga=2.139124659.1053526859.1577711738-682801975.1577600956

  5. https://www.sslshopper.com/

  6. https://confluence.atlassian.com/jirakb/configure-jira-server-to-run-behind-a-nginx-reverse-proxy-426115340.html

  7. https://confluence.atlassian.com/jirakb/bypass-a-proxy-or-ssl-to-test-network-connectivity-for-jira-server-827328189.html