CICD Day1、Centos 7.9快速部署 Gitlab habar jenkins
1、环境准备
- 1、系统
[root@cicd-82 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@cicd-82 ~]# uname -r
3.10.0-1160.119.1.el7.x86_64
[root@cicd-82 ~]# rpm -qa|grep docker
docker-buildx-plugin-0.14.1-1.el7.x86_64
docker-ce-24.0.0-1.el7.x86_64
docker-compose-plugin-2.27.1-1.el7.x86_64
docker-ce-rootless-extras-26.1.4-1.el7.x86_64
cri-dockerd-0.3.2-3.el7.x86_64
docker-ce-cli-26.1.4-1.el7.x86_64
- 关闭防火墙和selinux
echo -e "
export HISTFILESIZE=100000
export HISTTIMEFORMAT=\"\`whoami\` %F %T \"
PROMPT_COMMAND='history -a'
" >> /etc/profile
echo "export TIME_STYLE='+%Y/%m/%d %H:%M:%S'" >> /etc/profile
source /etc/profile
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
hostnamectl set-hostname cicd
reboot
2、部署Gitlab
2.1 使用Docker创建Gitlab容器
docker run -d \
--name gitlab \
--hostname 172.16.99.82 \
-p 443:443 \
-p 88:80 \
-p 2222:22 \
--restart always \
-v /opt/gitlab/config:/etc/gitlab \
-v /opt/gitlab/logs:/var/log/gitlab \
-v /opt/gitlab/data:/var/opt/gitlab \
uhub.service.ucloud.cn/librarys/gitlab-ce:latest
通过以上命令,创建一个Gitlab CE容器,将宿主机端口映射到容器端口,同事将宿主机目录挂载到容器中,以持久化形式存储Gitlab的配置文件、日志和数据
容器启动后,在浏览器中访问 http://172.16.99.82:88 ,将看到Gitlab登录页面。
默认用户名为root,密码又系统随机生成,密码可以通过 docker exec gitlab cat /etc/gitlab/initial_root_password 命令获取。
2.2 修改为中文
Gitlab默认为英文,但是为了方便使用,可以设置为中文。
单击左上角用户头像-》Preferences-》Language-》选择“简体中文”-》保存
注意:随机生成的密码存在安全风险,请在第一时间修改
3、部署harbor
3.1、 下载Harbar安装包
Harbar项目的GitHub Release地址 https://github.com/goharbor/harbor/releases/tag/v2.8.3
安装包名称中带有offline表示离线安装包,它包含了Harbar安装所需的镜像,适合在没有网络的情况下进行部署。安装包名称中带有online表示在线安装包,需要联网下载。这里使用离线安装包进行部署,将下载后的压缩包进行解压
mkdir -p /data/harbor
cd /data/harbor
wget -c https://github.com/goharbor/harbor/releases/download/v2.8.3/harbor-offline-installer-v2.8.3.tgz
tar xf harbor-offline-installer-v2.8.3.tgz
3.2 配置并启动
cd /data/harbor/harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
head -20 harbor.yml
# Configuration file of Harbor
# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 192.168.7.82
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80
# https related config
#https:
# # https port for harbor, default is 443
# port: 443
# # The path of cert and key files for nginx
# certificate: /your/certificate/path
# private_key: /your/private/key/path
- harbor.yml配置文件修改如下
- 设置hostname字段为访问Harbor的IP地址或域名,这里设置的是服务器IP的地址
- 注释https相关配置,表示不器用https访问
# 执行prepare脚本生成Harbor所需的文件
./prepare
# 执行install.sh 脚本,将预先打包好的镜像导入本地,并使用Docker Compose创建相关容器
./install.sh
# 查看Harbor相关容器
[root@cicd-82 harbor]# docker compose ps
WARN[0000] /data/harbor/harbor/docker-compose.yml: `version` is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
harbor-core goharbor/harbor-core:v2.8.3 "/harbor/entrypoint.…" core About a minute ago Up About a minute (healthy)
harbor-db goharbor/harbor-db:v2.8.3 "/docker-entrypoint.…" postgresql About a minute ago Up About a minute (healthy)
harbor-jobservice goharbor/harbor-jobservice:v2.8.3 "/harbor/entrypoint.…" jobservice About a minute ago Up 58 seconds (healthy)
harbor-log goharbor/harbor-log:v2.8.3 "/bin/sh -c /usr/loc…" log About a minute ago Up About a minute (healthy) 127.0.0.1:1514->10514/tcp
harbor-portal goharbor/harbor-portal:v2.8.3 "nginx -g 'daemon of…" portal About a minute ago Up About a minute (healthy)
nginx goharbor/nginx-photon:v2.8.3 "nginx -g 'daemon of…" proxy About a minute ago Up About a minute (healthy) 0.0.0.0:80->8080/tcp, :::80->8080/tcp
redis goharbor/redis-photon:v2.8.3 "redis-server /etc/r…" redis About a minute ago Up About a minute (healthy)
registry goharbor/registry-photon:v2.8.3 "/home/harbor/entryp…" registry About a minute ago Up About a minute (healthy)
registryctl goharbor/harbor-registryctl:v2.8.3 "/home/harbor/start.…" registryctl About a minute ago Up About a minute (healthy)
# 所有容器running,表示Harbor工作正常
- 在浏览器中访问 http://172.16.99.82
- 默认用户名为admin,密码为Harbor12345
- 默认密码存在安全风险,请第一时间修改它
4、部署jenkins
-
4.1 使用Docker创建jenkins容器
mkdir /opt/jenkins
chown -R 1000:1000 /opt/jenkins
docker run -d \
--name jenkins \
-p 8080:8080 \
-p 50000:50000 \
--restart always \
-v /opt/jenkins:/var/jenkins_home \
jenkins/jenkins:2.491
以上命令创建了一个jenkins容器,并将宿主机端口映射到了容器端口,同时将宿主机上的目录挂载到了容器中,以持久性存储jenkins数据
在浏览器中访问http://172.16.99.82:8080,将看到解锁jenkins页面
这里需要输入管理员密码,密码通过 下面的命令获取
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
输入密码后点击继续按钮,进入插件安装方式选择页面
这里选择 "选择插件来安装"选项,点击继续,进入插件安装叶敏。
点击无,取消默认选中的插件,既不安装任何插件。单机安装按钮,进入创建管理员用户页面
这里保持默认,点击保存并完成,初始化配置完成,进入jenkins首页
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2023-01-03 Centos 6.5 iptables 端口白名单设置