上一篇文章详细阐述了jira和confluence的安装部署和相关配置的操作记录,也介绍了两者之间其中一种集成方式;下面介绍另外的集成方式。
安装部署jira和confluence的顺序是,先安装jira、再安装confluence,在安装confluence的过程中去对接jira,既confluence用户目录会主动同步jira的用户目录。这样只需要在jira中创建账号就会自动同步进confluence中。
1、jira与confluence对接操作记录
下面以图例方式展示:
===============================================================================
如果是先安装的confluence,并且在"配置用户管理"中选择的是"在Confluence中管理用户和组",那么后续向跟jira对接的操作方法如下:
1)jira和confluence最好设置相同的管理员账号和密码
2)登录confluence管理员账号下,依次点击右上角的"用户管理"->点击左侧最下面的"管理"中的"应用程序链接"->"创建新链接",然后添加jira的url地址,根据提示进行添加配置即可(提示中会跳到jira界面里,相继添加confluence的地址)
3)左上角jira和confluence对接的标题名称可以自定义,Jira在"系统"->"一般配置"->编辑"标题";Confluence在"一般配置"->编辑"标题"
===============================================================================
1)在jira里创建的用户,会主动给用户发送一封邮件,点击邮件可以重置密码。使用该用户登录后,点击左上角图标,切换到confluence后进行该用户的界面
设置,这样该用户才能载入到confluence用户目录下。
2)在jira里创建和删除用户,默认confluence同步是需要一段时间的。如果用户同步不及时,可以手动同步,即点击"用户目录"->"同步",即手动同步用户目录即可!(删除用户最后先在jira里删除,然后Confluence同步用户)
注意:一般来说,用户创建(建议使用"邀请用户"的方式创建用户)的规则:
1)如果jira和Confluence都需要创建用户,就先在jira上创建用户,然后Confluence同步。
2)如果只需要Confluence账号,不需要jira账号。那么就在Confluence上"邀请用户"注册账号,然后同步到jira上的账号默认不能登录,需要将用户添加到jira的相关用户组内才能够登录。
=========================================================
confluence和jira的用户目录同步方式:
根据以上部署可知,confluence和jira的用户同步是单方向的,及confluence同步jira的用户,但是jira不能同步confluence用户!
在配置用户目录同步时,点击"添加目录",发现只有三种同步方式:
1)添加Crowd服务器,可以实现jira和confluence用户目录双向同步;
2)添加LDAP服务器,可以实现jira和confluence用户目录双向同步;
3)添加Jira服务器,只能实现confluence同步jira用户目录,即单向同步。
=========================================================
2、查看破解后jira和confluence的到期日期
1)查看jira的到期时间。如下可知,jira到期时间是2033年2月8号
2)查看Confluence的到期时间。如下可知,Confluence离到期时间还有957个月零7天20小时
===== confluence上开通用户,使该用户只具有某一个或几个项目空间的操作权限 =====
方法: 1)正常开通用户,比如A用户。 2)创建一个用户组,比如test用户组(默认是空的)。 3)点击右上角设置图标里的"用户管理"->"站点管理"->"用户"->"全局权限",然后编辑test组权限(设置"个人空间"、"创建空间"两个权限即可, "站点管理"和"系统管理员"权限看情况是否设置) 4)编辑A用户,将A用户所属的组设置为test。注意:千万不要设置为confluence-users组,否则就对所有的项目空间都具有权限。 5)假设使A用户仅仅只具有eason项目的操作权限。则打开eason名称的目录空间,点击左下角的"空间管理"->"权限",在右边的"用户"区域(或者"组"区域)点击 "编辑权限",将A用户(或者test组)添加进去,并设置权限(比如只设置"查看"权限)即可。 6)如果是一个用户针对多个项目空间的权限,就依次在这些项目空间的"空间管理"->"权限"里设置,如上第4步操作即可。 如上操作后,A用户登录confluence就只有所设置的空间的权限了。
jira跟confluence不一样,它只有角色权限,针对组进行设置的,不针对个人。jira权限设置:"系统"->"安全"->"全局权限"
3、jira和confluence常见问题解决办法阐述
3.1、jira/confluence访问界面出现"您可以临时访问管理功能。如果不再需要,请 取消访问。更多信息, 请查看 相关文档”
如何取消? 1)需要在JIRA的Home文件夹里手工创建一个文件:jira-config.properties,文件里面写一句话jira.websudo.is.disabled=true 2)重启JIRA服务即可 具体操作: a)查询jira服务的家目录 [root@jira-wiki ~]# cat /opt/jira/atlassian-jira-6.3.6-standalone/atlassian-jira/WEB-INF/classes/jira-application.properties # Do not modify this file unless instructed. It is here to store the location of the JIRA home directory only and is typically written to by the installer. jira.home =/opt/jirahome 如上可以得知,jira服务的家目录是/opt/jirahome b)在jira家目录下添加文件 [root@jira-wiki ~]# cd /var/atlassian/application-data/jira [root@jira-wiki jira]# touch jira-config.properties [root@jira-wiki jira]# vim jira-config.properties jira.websudo.is.disabled=true [root@jira-wiki jira]# chown jira.jira jira-config.properties //此处授权看安装部署jira时的授权,保持一致即可。 c)重启jira [root@jira-wiki jira]# /opt/jira/atlassian-jira-6.3.6-standalone/bin/stop-jira.sh [root@jira-wiki jira]# /opt/jira/atlassian-jira-6.3.6-standalone/bin/startup.sh
3.2、jira和confluence调整为域名访问的操作记录
如之前的安装文档,jira和confluence安装后都是通过ip+port进行访问以及关联,后面调整为域名访问,修改记录如下: 1)在前面架设一个LB层,通过域名访问代替ip+port访问,然后将域名解析到LB的ip上即可。例如: http://jira.eason.com 代替http://172.16.50.99:8080 http://wiki.eason.com 代替http://172.16.50.99:8090 2)访问http://wiki.eason.com,在右上角 a)点击"一般配置",将"服务器主页URL"由http://172.16.50.99:8090修改为http://wiki.eason.com; b)点击"配置应用程序链接",将对应的ip的url修改为域名的url; c)点击"应用程序导航器",发现confluence对应的url已经变成wiki域名了,此时jira的链接还是ip+port方式, 接着进行添加操作,将jira的域名方式添加进去,然后将之前的ip+port方式的链接拉到最下面。(这个配置 涉及到从confluence界面的左上角切换到jira后显示的地址信息) 3)访问http://jira.eason.com,在右上角 a)点击点击"一般配置",将"服务器主页URL"由http://172.16.50.99:8080修改为http://jira.eason.com; b)点击"应用程序"->"应用程序链接",将对应的ip的url修改为域名的url; c)点击"应用程序导航器",将对应的ip的url修改为域名的url;
3.3、jira账号创建项目的权限
默认创建的jira账号是没有创建jira项目的权限的,如果想让一个jira账号拥有创建项目的权限,正确做法如下: 1)创建一个组,比如叫jira-project 2)点击右上角的"系统"->"安全"->"全局配置",然后将所创建的组jira-project设置为"JIRA 管理员",注意是 "JIRA 管理员",而不是"JIRA 系统管理员" 3)然后将用户拉到jira-project组内即可!
3.4、confluence和jira的备份和恢复
confluence的自动备份: 数据备份目录:/var/atlassian/application-data/confluence/backups //("站点管理"->"每日备份管理") 附件备份目录:/var/atlassian/application-data/confluence/attachments //("站点管理"->"附件存储") confluence备份与还原 ("站点管理"->"管理"->"备份与还原") 可以根据界面里提示进行数据恢复 如果从confluence主目录中由备份和恢复 备份必须复制至/var/atlassian/application-data/confluence/restore目录中。 如果备份文件很大,推荐这种方式 ---------------------------------------------------------------- jira的自动备份 数据备份目录: /opt/jirahome/export //("系统"->"导入导出"->"备份系统") 附件所在目录:/opt/jirahome/data/attachments //这个需要手动备份 jira的数据恢复: ("系统"->"导入导出"->"恢复系统")
3.5、confluence管理员admin账号密码忘记的处理办法
1)登录mysql,查看admin账号情况,记下admin管理员的id号 [root@jira-wiki ~]# mysql -p123456 ...... mysql> use confluence; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select id,user_name,credential from cwd_user; +--------+-----------+---------------------------------------------------------------------------+ | id | user_name | credential | +--------+-----------+---------------------------------------------------------------------------+ | 229377 | admin | {PKCS5S2}tlWAcMgBdam9NCC/h7Q6WuFAVH2BwJ4iSfUZk8KjCY/+5lOxk9t8OWVeHih/yG0T | | 229378 | eason | {PKCS5S2}SE2+ylWD6taZwttCtEs/Bn91V535gTOO+MZDzCbxpAdWxjhb05GwDjOMvFiQT61b | | 229379 | admin | nopass | | 229381 | test | X | +--------+-----------+---------------------------------------------------------------------------+ 4 rows in set (0.00 sec) mysql> update cwd_user set credential = '{PKCS5S2}SE2+ylWD6taZwttCtEs/Bn91V535gTOO+MZDzCbxpAdWxjhb05GwDjOMvFiQT61b' where id=229377; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 2)根据admin的id号进行update更新密码。如果你的密码是{PKCS5S2}前缀开头的,则用下面这个sql: 我们将admin账号密码修改为已知的eason账号的密码;"eason@123"(下面的密码就是eason@123的密文) MariaDB [confluence]> update cwd_user set credential = '{PKCS5S2}SE2+ylWD6taZwttCtEs/Bn91V535gTOO+MZDzCbxpAdWxjhb05GwDjOMvFiQT61b' where id=229377; Query OK, 0 rows affected (0.057 sec) Rows matched: 1 Changed: 0 Warnings: 0 mysql> select id,user_name,credential from cwd_user; +--------+-----------+---------------------------------------------------------------------------+ | id | user_name | credential | +--------+-----------+---------------------------------------------------------------------------+ | 229377 | admin | {PKCS5S2}SE2+ylWD6taZwttCtEs/Bn91V535gTOO+MZDzCbxpAdWxjhb05GwDjOMvFiQT61b | | 229378 | eason | {PKCS5S2}SE2+ylWD6taZwttCtEs/Bn91V535gTOO+MZDzCbxpAdWxjhb05GwDjOMvFiQT61b | | 229379 | admin | nopass | | 229381 | test | X | +--------+-----------+---------------------------------------------------------------------------+ 4 rows in set (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.09 sec) 3)然后使用更新后的新密码eason@123登录admin账号,在confluence界面里进行密码重置。
3.6、confluence导出PDF格式文件不显示中文解决办法
由于confluence导出PDF格式文件需要应用字体文件,下载字体文件在confluence管理员界面安装即可。 从本机c盘->Windows-Fonts文件夹里复制simkai字体文件到桌面,然后使用管理员账号登陆confluence,找到"PDF导出语言支持"选择, 选择本机桌面的simkai字体文件进行安装即可。安装后,导出的pdf文件里的中文就能正常显示了。
3.7、离职人员的jira/confluence账号销毁
员工离职时是不能直接在jira/confluence里删除他们账号的,因为这些账号关联了对应项目,除非修改为其他账号的关联关系, 否则不能直接删除. 但是可以禁用这些账号. 可行的处理方法: 1) 管理员账号登录jira, 点右上角的"设置"->"用户管理"->"用户",直接搜索离职人员的对应账号, 点击后面的"编辑", 将"活跃"前面方框里的对勾去掉, 即改为了"不活跃"状态, 这样该用户就登录不了jira了! 然后使用管理员账号登录confluence, 点击右上角的"设置"->"用户管理"->"用户目录"->"同步". 然后在"用户"里搜索离职人员账号,发现账号上被标记了"无效",即登录不了confluence了! 2) 如果离职的人员是jira上某些项目关联负责人, 则也是无法设置为"不活跃"的, 即无法注释"编辑"->"活跃", 此时的做法是: 将此账号从它之前所有所在的组内撤出来, 即确保它在jira/confluence下不属于任何组, 这样它登录后就没有任何权限了.
3.8、Confluence应用程序的问题梳理
3.8.1、问题一:JVM 堆内存溢出,导致confluence访问慢或程序直接跑死问题 查看/opt/atlassian/confluence/logs/catalina.out日志,报错信息为: java.lang.OutOfMemoryError: Direct buffer memory 解决办法:增大JVM内存,做法如下: 在bin/catalina.sh脚本文件里添加下面一行内容,具体内存增加到多少,要根据自己服务器的实际内存来考虑(比如我的机器是128G,这里我调整到24G) [root@jira-wiki ~]# vim /opt/atlassian/confluence/bin/catalina.sh ...... JAVA_OPTS='-Xms20480m -Xmx20480m -XX:PermSize=10240M -XX:MaxNewSize=10240m -XX:MaxPermSize=5120m' //将此行加入配置中 [root@jira-wiki ~]# /opt/atlassian/confluence/bin/stop-confluence.sh [root@jira-wiki ~]# /opt/atlassian/confluence/bin/start-confluence.sh
3.8.2、问题二:confluence正常启动,8090端口也顺利起来了,但是confluence访问报错404! [root@jira-wiki ~]# tail -f /opt/atlassian/confluence/logs/catalina.out ........ 11-Jan-2018 09:10:46.527 SEVERE [http-nio-8090-exec-6] org.springframework.web.socket.sockjs.client.SockJsClient.doHandshake Initial SockJS "Info" request to server failed, url=ws://127.0.0.1:8091/synchrony/sockjs/v1org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://127.0.0.1:8091/synchrony/sockjs/v1/info": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:607) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:572) at org.springframework.web.socket.sockjs.client.RestTemplateXhrTransport.executeInfoRequestInternal(RestTemplateXhrTransport.java:138) at org.springframework.web.socket.sockjs.client.AbstractXhrTransport.executeInfoRequest(AbstractXhrTransport.java:153) at org.springframework.web.socket.sockjs.client.SockJsClient.getServerInfo(SockJsClient.java:286) at org.springframework.web.socket.sockjs.client.SockJsClient.doHandshake(SockJsClient.java:254) at org.springframework.web.socket.sockjs.client.SockJsClient.doHandshake(SockJsClient.java:236) at com.atlassian.synchrony.proxy.websocket.WebSocketProxy.afterConnectionEstablished(WebSocketProxy.java:49) at org.springframework.web.socket.handler.PerConnectionWebSocketHandler.afterConnectionEstablished(PerConnectionWebSocketHandler.java:81) 特别注意: confluence和jira的日志不只是只在/opt/atlassian/confluence/logs和/opt/atlassian/jira/logs下面,有时只根据这里面的日志是看不到具体报错的! 还需要去confluence和jira服务的家目录/var/atlassian/application-data(默认就是这个路径)下面查看日志,可以通过这里面的日志信息进行排错。 日志分别为/var/atlassian/application-data/jira/log/atlassian-jira.log和/var/atlassian/application-data/confluence/logs/atlassian-confluence.log 以上报错查看confluence日志如下 [root@jira-wiki ~]# tail -f /var/atlassian/application-data/confluence/logs/atlassian-confluence.log ...... org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hostComponentProvider': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.atlassian.plugin.spring.SpringHostComponentProviderFactoryBean.setSpringHos tComponentProviderConfig(com.atlassian.plugin.spring.SpringHostComponentProviderConfig); nested exception is org.springframework.beans.factory.BeanCreationException: Error cre ating bean with name 'bundledPluginLoader' defined in class path resource [services/pluginServiceContext.xml]: Cannot resolve reference to bean 'osgiPluginFactory' while setting constructor argument with key [1]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'osgiPluginFactory' defined in class path resource [services/pluginServiceContext.xml]: Cannot resolve reference to bean 'osgiPersistentCache' while setting constructor argument; nested exception is org.springframework. beans.factory.BeanCreationException: Error creating bean with name 'osgiPersistentCache': FactoryBean threw exception on object creation; nested exception is com.atlassian.plugin.osgi. container.OsgiContainerException: Unable to clean the cache directory: /var/atlassian/application-data/confluence/plugins-osgi-cache/felix 通过上面的日志错误信息可知,是由于cache缓存目录的权限不对造成的: [root@jira-wiki ~]# ll -d /var/atlassian/application-data/confluence/plugins-osgi-cache drwxr-xr-x 5 root root 4096 Nov 9 10:54 /var/atlassian/application-data/confluence/plugins-osgi-cache plugins-osgi-cache目前权限是root,confluence程序权限是confluence,所以不能创建缓存数据。将其权限修改为confluence即可! 建议可以将/var/atlassian/application-data/confluence下的目录权限全部修改为confluence.confluence。 [root@jira-wiki ~]# chown -R confluence.confluence /var/atlassian/application-data/confluence/plugins-osgi-cache [root@jira-wiki ~]# ll -d /var/atlassian/application-data/confluence/plugins-osgi-cache drwxr-xr-x 5 confluence confluence 4096 Nov 9 10:54 /var/atlassian/application-data/confluence/plugins-osgi-cache 如上修改后,访问confluence就正常了(可以不用重启confluence)
3.8.3、问题三: confluence登陆后,上传附件报错:Could not upload the file to Confluence. The server may be unavailable 查看日志: [root@jira-wiki ~]# tail -f /var/atlassian/application-data/confluence/logs/atlassian-confluence.log ...... javax.servlet.jsp.jspException: java.lang.RuntimeException: Error creating temp file in folder: /var/atlassian/application-data/confluence/attachments/ver003/21/87/4587521/92/247/3997842/5144597 javax.servlet.error.exception: java.lang.RuntimeException: Error creating temp file in folder: /var/atlassian/application-data/confluence/attachments/ver003/21/87/4587521/92/247/3997842/5144597 由此可以看出,附件不能上传的原因是由于权限问题导致的,解决如下: [root@jira-wiki ~]# ll -d /var/atlassian/application-data/confluence/attachments/ver003/ drwxr-xr-x 11 root root 4096 Jan 9 09:14 /var/atlassian/application-data/confluence/attachments/ver003/ [root@jira-wiki ~]# chown -R confluence.confluence /var/atlassian/application-data/confluence/attachments [root@jira-wiki ~]# ll -d /var/atlassian/application-data/confluence/attachments/ver003/ drwxr-xr-x 11 confluence confluence 4096 Jan 9 09:14 /var/atlassian/application-data/confluence/attachments/ver003/
---------------------------------------------书山有路勤为径,学海无涯苦作舟--------------------------------------------------------