知識(shí)庫(kù)
DevOps士聪、敏捷管理张症,對(duì)于整體流程和團(tuán)隊(duì),2個(gè)工具是最不能少的屯蹦,而且使用頻率非常高嘀趟,知識(shí)庫(kù) + 問題跟蹤脐区,我用的是Confluence + Jira,工欲善其事必先利其器她按,我們先需要把工具選擇和準(zhǔn)備好牛隅,再開始后面的事情炕柔,下面介紹下Confluence的安裝流程
為什么是Confluence
- 豐富的知識(shí)庫(kù)相關(guān)的模板
- 在線協(xié)作編輯
- 每個(gè)人的知識(shí)可以分享給全公司的人
- 評(píng)論功能和提醒功能完美結(jié)合,隨時(shí)隨地得到最新知識(shí)庫(kù)更新
- 和JIRA結(jié)合完美
工具包準(zhǔn)備
安裝和啟動(dòng)
這里介紹2種安裝和啟動(dòng)方式
- 傳統(tǒng)安裝啟動(dòng)方式
- Docker安裝啟動(dòng)方式(推薦)
1.傳統(tǒng)安裝和啟動(dòng)
需要準(zhǔn)備
- CentOS 7.x
- JDK 1.8(配置好JAVA_HOME)
- MYSQL 5.7.X(二進(jìn)制安裝或者Docker鏡像)
一頓操作猛如虎媒佣。匕累。。
## 解壓安裝包
cd your-path
tar -xvf atlassian-confluence-6.9.0.tar.gz
## 指定工作目錄
vi /your-path/atlassian-confluence-6.9.0/confluence/WEB-INF/classes/confluence-init.properties
# 在文件中加入 confluence.home=/your-home-path/
## mysql的驅(qū)動(dòng)Jar去官網(wǎng)下載一個(gè)適合5.7的即可
cp mysql-connector-java-5.1.45.jar /your-path/atlassian-confluence-6.9.0/confluence/WEB-INF/lib
## 啟動(dòng)
/your-path/atlassian-confluence-6.9.0/bin/start-confluence.sh
# 默認(rèn)是8090端口默伍,在瀏覽器打開http://localhost:8090
2.Docker安裝啟動(dòng)方式
需要準(zhǔn)備
- Docker
由于官方已經(jīng)有鏡像欢嘿,我們?cè)诠俜界R像上面加入自定義的內(nèi)容即可,官方的6.9.0的Dockerfile的Repo地址也糊,我們需要的是紅框的2個(gè)文件炼蹦,如下:
我在本地Mac上面建立了一個(gè)Docker Build目錄,包含下面幾個(gè)文件
- Dockerfile(上面的官方repo下載)
- atlassian-confluence-6.9.0.tar.gz(官方二進(jìn)制包狸剃,主要是Dockerfile里面的Curl自動(dòng)下載的速度實(shí)在是慢的可以掐隐,我在提前下載好,COPY進(jìn)去钞馁,這塊不是非必須用這個(gè)包虑省,可以依賴Dockerfile的Curl到官方下載安裝包)
- docker-entrypoint.sh(上面的官方repo下載)
修改Dockerfile
FROM openjdk:8-alpine
# Setup useful environment variables
ENV CONF_HOME /var/atlassian/confluence
ENV CONF_INSTALL /opt/atlassian/confluence
ENV CONF_VERSION 6.9.0
ENV JAVA_CACERTS $JAVA_HOME/jre/lib/security/cacerts
ENV CERTIFICATE $CONF_HOME/certificate
# [新增] 把build目錄的必要文件復(fù)制到鏡像內(nèi)
COPY atlassian-confluence-${CONF_VERSION}.tar.gz /tmp/atlassian-confluence-${CONF_VERSION}.tar.gz
# [新增] 創(chuàng)建Install目錄,解壓安裝包指攒,替換工具Jar包慷妙,刪除安裝包壓縮文件
RUN mkdir -p ${CONF_INSTALL}
RUN tar -xzvf /tmp/atlassian-confluence-${CONF_VERSION}.tar.gz -C ${CONF_INSTALL} --strip-components=1 --no-same-owner \
&& rm -rf /tmp/atlassian-confluence-${CONF_VERSION}.tar.gz
# Install Atlassian Confluence and helper tools and setup initial home
# directory structure.
RUN set -x \
&& apk --no-cache add curl xmlstarlet bash ttf-dejavu libc6-compat gcompat \
&& mkdir -p "${CONF_HOME}" \
&& chmod -R 700 "${CONF_HOME}" \
&& chown daemon:daemon "${CONF_HOME}" \
&& mkdir -p "${CONF_INSTALL}/conf" \
&& curl -Ls "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.44.tar.gz" | tar -xz --directory "${CONF_INSTALL}/confluence/WEB-INF/lib" --strip-components=1 --no-same-owner "mysql-connector-java-5.1.44/mysql-connector-java-5.1.44-bin.jar" \
&& chmod -R 700 "${CONF_INSTALL}/conf" \
&& chmod -R 700 "${CONF_INSTALL}/temp" \
&& chmod -R 700 "${CONF_INSTALL}/logs" \
&& chmod -R 700 "${CONF_INSTALL}/work" \
&& chown -R daemon:daemon "${CONF_INSTALL}/conf" \
&& chown -R daemon:daemon "${CONF_INSTALL}/temp" \
&& chown -R daemon:daemon "${CONF_INSTALL}/logs" \
&& chown -R daemon:daemon "${CONF_INSTALL}/work" \
&& echo -e "\nconfluence.home=$CONF_HOME" >> "${CONF_INSTALL}/confluence/WEB-INF/classes/confluence-init.properties" \
&& xmlstarlet ed --inplace \
--delete "Server/@debug" \
--delete "Server/Service/Connector/@debug" \
--delete "Server/Service/Connector/@useURIValidationHack" \
--delete "Server/Service/Connector/@minProcessors" \
--delete "Server/Service/Connector/@maxProcessors" \
--delete "Server/Service/Engine/@debug" \
--delete "Server/Service/Engine/Host/@debug" \
--delete "Server/Service/Engine/Host/Context/@debug" \
"${CONF_INSTALL}/conf/server.xml" \
&& touch -d "@0" "${CONF_INSTALL}/conf/server.xml" \
&& chown daemon:daemon "${JAVA_CACERTS}"
# Use the default unprivileged account. This could be considered bad practice
# on systems where multiple processes end up being executed by 'daemon' but
# here we only ever run one process anyway.
USER daemon:daemon
# Expose default HTTP connector port.
EXPOSE 8090 8091
# Set volume mount points for installation and home directory. Changes to the
# home directory needs to be persisted as well as parts of the installation
# directory due to eg. logs.
VOLUME ["/var/atlassian/confluence", "/opt/atlassian/confluence/logs"]
# Set the default working directory as the Confluence home directory.
WORKDIR /var/atlassian/confluence
COPY docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]
# Run Atlassian Confluence as a foreground process by default.
CMD ["/opt/atlassian/confluence/bin/start-confluence.sh", "-fg"]
執(zhí)行build
cd /your-docker-build-path
docker build -t michael/atlassian-confluence:6.9.0 .
啟動(dòng)鏡像(配套如果使用MYSQL僻焚,建議Docker Compose啟動(dòng)Confluence + MYSQL)
docker run -d --rm --name=wiki -p 8090:8090 -p 8091:8091 \
-v /your-confluence-path/home:/var/atlassian/confluence \
-v /your-confluence-path/logs:/opt/atlassian/confluence/logs \
michael/atlassian-confluence:6.9.0
配置
-
選擇產(chǎn)品安裝
點(diǎn)擊下一步(省略了一步允悦,授權(quán)碼填寫)
- 選擇配置數(shù)據(jù)庫(kù)
- 配置數(shù)據(jù)庫(kù)并測(cè)試(我選擇的是MYSQL,這里需要修改MYSQL事務(wù)隔離級(jí)別虑啤,改成transaction-isolation = READ-COMMITTED隙弛,讀取已提交,Confluence要求的狞山,會(huì)檢查)
- 選擇紅框選項(xiàng)(Confluence有多種用戶管理方式全闷,為了單純介紹Confluence,暫時(shí)不展開萍启;剩余方式有:Jira數(shù)據(jù)庫(kù)总珠、Crowd數(shù)據(jù)庫(kù)、LDAP數(shù)據(jù)庫(kù)等等)