开发协作运维辅助平台汇总与搭建

开发人员内部使用的一些可以方便协作和运维的瓶平台工具汇总和搭建

用到的工具与平台

  • Cockpit web端的机器管理,除了监控机器运行状态还可以管理docker镜像,最重要是带有web终端工具
  • dzzoffice 一个开源的办公平台,带有网盘功能和其他各类可安装的插件、支持在线文档编辑和预览,支持任务版(类似trello)
  • sonarqube 代码质量管理平台

cockpit 安装

官网:https://cockpit-project.org

使用默认配置安装非常简单,以centos为例:https://cockpit-project.org/running.html#centos
安装后访问地址:https://ip-address-of-machine:9090

1
2
3
4
5
6
7
#安装
sudo yum install cockpit
# 启用
sudo systemctl enable --now cockpit.socket
# 如果启用了防火墙,则放行改服务
sudo firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload

详细配置:https://cockpit-project.org/guide/latest/

dzzoffice安装

官网:http://www.dzzoffice.com

dzzoffice是一个php的web项目,使用mysql存储。php的环境部署较为麻烦,这里我制作了docker版的
参考:https://github.com/othorizon/Dockerfiles/blob/master/dzzoffice/install.md
安装步骤

1
2
3
4
5
6
7
8
9
10
11
12
#安装mysql
## 端口可以暴露出来也可以做成封闭环境,看情况
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

#安装dzz
## 这里使用了link的方式连接mysql服务,其实更推荐使用network的方式好扩展管理,这里就使用link从简了
docker run --name dzzoffice --link mysql:mysql -d -p 8080:80 -v /workspacec/dzz/dzz_data/:/var/www/html/data/attachment/dzz itrizon/dzzoffice

## php的docker镜像的默认用户为www-data,因此如果挂载了外部目录需要进入容器重新授权一下
docker exec -i dzzoffice chown -R www-data:www-data /var/www/html/config /var/www/html/data

# 打开网页后按照安装步骤安装就好了

支持office在线预览与编辑
dzzoffice支持多种office的预览与编辑方式,可以在dzz的应用商店安装,如果你的服务器是内部的无法被外网的office预览api访问你的文件,那么就只能安装自己的office预览服务了。
文档预览服务也有很多选择,这里以dzz支持的onlyoffice为例,使用docker安装
docker run --name onlyoffice -itd -p 9011:80 dzzoffice/onlyoffice
然后在dzz中的onlyoffice应用中配置serverUrl地址就好了:http://[可访问的外部ip]:9011/web-apps/apps/api/documents/api.js
要注意的就是这里的ip地址必须是你的本地浏览器客户端可以访问到的ip,而不是服务器内部地址

sonarqube安装

官网:https://www.sonarqube.org
官网-文档:https://docs.sonarqube.org/latest
官网-插件文档:https://docs.sonarqube.org/display/PLUG

sonar有很多版本,也提供了免费的社区办(Community Edition),官方提供了下载版的安装和docker般的,以docker为例
docker版官网:https://hub.docker.com/_/sonarqube/

1
2
3
4
5
6
7
8
9
10
11
#sonar可以选择使用mysql数据库,如果不配置数据库则会使用内置的H2数据库
$ docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
## 登录mysql创建sonar的数据库 "sonar"
## mysql数据库连接sonar要求加上的"useUnicode=true\&characterEncoding=utf8"
$ docker run -d --name sonarqube \
--link mysql:mysql \
-p 9000:9000 \
-e sonar.jdbc.username=root \
-e sonar.jdbc.password=root \
-e sonar.jdbc.url=jdbc:mysql://mysql/sonar?useUnicode=true\&characterEncoding=utf8\&useSSL=false \
sonarqube

soanr的使用

登录后创建一个项目,会提示如何操作。
示例

1
2
3
4
5
6
mvn sonar:sonar \
-Dsonar.links.homepage=http://code-home-page.com \
-Dsonar.links.scm=http://code-git.com/project.git \
-Dsonar.projectKey=sonar_project_name \
-Dsonar.host.url=http://192.168.1.1:9000 \
-Dsonar.login=[token]

支持单元测试覆盖率
采用jacoco的插件,参考:https://docs.sonarqube.org/display/PLUG/Usage+of+JaCoCo+with+SonarJava
在执行分析之前,先执行jacoco的插件
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=false
然后在执行分析就好了

其他工具