上一篇文章詳細闡述了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/
---------------------------------------------書山有路勤為徑,學海無涯苦作舟--------------------------------------------------------