项目简介
本项目围绕Gitlab及其自带的gitlab - runner搭建,借助Docker与Docker Compose工具部署完整的DevOps平台。该平台包含研发内网域名解析、反向代理、LDAP用户认证、JIRA与Confluence项目管理、Gitlab代码管理、SonarQube代码质量检测、Nexus仓库管理以及上网代理等组件,为研发团队提供一站式开发与管理环境。若想查看基于Gerrit和Jenkins的部署方式,可切换到v0.1分支。
项目的主要特性和功能
- 域名解析与反向代理:利用dnsmasq提供研发内网DNS服务,Nginx进行反向代理,便于用户用域名访问各组件服务。
- LDAP认证:使用OpenLDAP维护用户信息,搭配phpldapadmin管理界面,支持SSL加密,可与Gitlab等组件集成实现统一认证。
- 项目管理:集成JIRA与Confluence,为团队提供项目管理和协作平台,支持项目与文档的创建和管理。
- 代码管理:采用Gitlab进行代码托管和版本控制,支持与LDAP集成,方便团队协同开发。
- 代码质量检测:使用SonarQube对代码进行质量检测,可通过插件扩展检测功能。
- 仓库管理:利用Nexus搭建仓库,支持不同类型的包管理,提供Docker镜像仓库服务。
- 上网代理:提供SOCKS5代理服务,支持PAC模式和全局代理模式,方便研发人员访问外网资源。
安装使用步骤
准备工作
- 安装docker:执行命令
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
,并根据需要配置国内源。 - 下载docker - compose:参考文档,执行命令
sudo chmod +x /usr/local/bin/docker-compose
。 - 开启IPv4 IP forward(可选):编辑
/etc/sysctl.conf
,添加或修改net.ipv4.ip_forward = 1
,然后重启网络和docker:systemctl restart network systemctl restart docker
- 挂载目录的SELinux权限(可选):若开启SELinux且采用目录挂载方式,需配置权限,如挂载主机目录为
/srv/mysql
,执行chcon -Rt svirt_sandbox_file_t /srv/mysql
。 - 防火墙配置:
- iptables增加端口:配置
vi /etc/sysconfig/iptables
,添加规则如-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
。 - firewalld开通端口:执行
firewall-cmd --zone=public --add-port=80/tcp --permanent systemctl restart firewalld
- iptables增加端口:配置
部署节点
按照各组件的docker - compose.yml
文件依次启动服务:
1. 研发内网域名解析:使用docker - compose
启动dnsmasq容器。
2. 反向代理:使用docker - compose
启动Nginx容器。
3. LDAP:使用docker - compose
启动OpenLDAP和phpldapadmin容器。
4. JIRA & Confluence:使用docker - compose
启动MySQL和JIRA(Confluence)容器。
5. Gitlab:
- 修改主机的sshd端口为2222,并配置SELinux和防火墙。
- 使用docker - compose
启动Gitlab容器。
- 编辑gitlab - config
卷中的gitlab.rb
配置LDAP集成,然后执行docker exec -it gitlab gitlab - ctl reconfigure
使配置生效。
6. SonarQube:使用docker - compose
启动SonarQube相关容器,可从SonarQube插件库下载插件并放入sonar - extensions
卷的plugins
目录,重启生效。
7. Nexus:使用docker - compose
启动Nexus和registry容器。
8. 上网代理:使用docker - compose
启动代理相关容器,通过gen - pac.sh
命令生成PAC文件,可通过proxy.example.com/pac
访问。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】