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
sudo -u postgres psql
alter user postgres with password 'xxx';
# 保险一点,禁止postgres系统登录
usermod -s /sbin/nologin postgres
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激活 ¶
如下图:
记录一下自己的server-id,后面有用,然后:
java -jar atlassian-agent.jar -p jira -m changsen.dev@gmail.com -o xx.com -s B33J-D9GT-KK
#会得到一串序列码,然后复制到上图中去,就可以了
到这儿,基本上就算是部署成功了
后面如果要破解插件,使用命令:java -jar atlassian-agent.jar -p 'com.thed.zephyr.je' -m changsen.dev@gmail.com -o https://jiandaoyun.com -s B33J-D9GT-KKVI-5040
坑 ¶
说实在的,部署安装这一路上,踩了不少的坑,其中最最深的坑就是这个乱码问题,如下图所示:
晕了,这啥玩意儿,我尝试安装中文语言包,变更系统环境,变更中文索引,都不行,最后还是通过下面的办法解决的,吃水不忘挖井人,在这里要感谢下这个博主
sed -i '/^JVM_SUPPORT/s/""/"-Dfile.encoding=utf-8"/' setenv.sh
service jira stop/start
关于备份还原,也是比较坑,我的目标是要把jira7.10.2里面的数据导入到8.4,在最终实践完成之后,发现几个点需要注意一下
- 跨版本备份还原的时候,尽量初始化目标JIRA,也就是说刚刚安装好的jira,啥操作设置都还没有做,这样的话后期问题是最少的,在导入zip包的时候,应该把秘钥lic也写进去,然后等待漫长的时间就可以
- 上一步等待完成之后,你会发现用原来的账户密码无法登陆,而且就算是用旧的账号也没有权限登录,那该咋办呢? 找一下之前的管理员账号,用管理员权限登录才行的;还有记住在更新jira的lic之前,千万不要重启,否则你就凉凉了,只能重新部署一回
- 安装好之后,更新好lic之后,重启就会发现正常了
- 还有就是索引的问题,不要想着用原来的索引复制直接放在当前目录下,那样就算可以启动,但是你到时候就会发现索引根本是无法更新,要解决这个问题,唯一的做法就是:在更新lic之后,删除掉indexesV1下面的所有文件(可选),然后等待,可能会遇到的情况是要更新生成完整的索引才会出现登录界面,这个时候,关闭jira,再启动,应该就行了,如果不行,那就只能等等
- 在进行登陆的时候,如果不知道管理员是谁,可以自己去数据库找到jira的库,然后在cwd_membership中去查找
select child_name, directory_id from cwd_membership where parent_name='jira-administrators'
,就会知道谁是管理员了; - 再不济,你如果连密码也忘了,好办,直接更新数据库的值,
update cwd_user set credential='{PKCS5S2}bHqqrJhRBRZthu7zp4HlZUNIPD+D0yPuNlo3cLeBUKBTPH/fik0nSdG' where id=10001;
这里的id指的是管理员的id,单引号必须使用,不能用双引号,最后找一个已知用户的credential来作为值,就OK了 - 迁移过的项目可能会存在serverid一样的情况,那么这样的话就需要手动修改serverid了,具体参考这个链接吧,我就不细说了 传送门
- 假如遇到了启动jira的黄色警告,十有八九需要看下配置文件了
- 如果遇到有些任务没法删除,可能需要重启下对接的pg数据库了
- 假若遇到jira能够对接bitbucket,但是反向对接却不行,这样的话可能需要重新修改一下server.xml配置文件了,系统默认的达不到效果,必须要开启多个connector,指定不同的端口,然后nginx代理的bb使用443那个connector,bb那边填写不使用代理层,直接访问应用ip端口也行,但是jira的基本url那边一定要填写https域名访问的方式才可以(困扰了我好些时间,最终解决了,激动)
最后说一句,这些坑都是一点点摸索了,google上有些都没有,之后宁愿多写一点代码,都尽量不折腾这个历史遗留的大工程了