下载安装包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm
安装
rpm -i gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm
编辑 /etc/gitlab/gitlab.rb 文件
修改 external_url 访问路径 http://:
其他配置修改如下
gitlab_rails['time_zone'] = 'Asia/Shanghai'
puma['worker_processes'] = 2
sidekiq['max_concurrency'] = 8
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 4
prometheus_monitoring['enable'] = false
更新配置并重启
gitlab-ctl reconfigure
gitlab-ctl restart
查看默认密码
cat /etc/gitlab/initial_root_password
登录后修改默认密码 > 右上角头像 > Perferences > Password
修改系统配置:点击左上角三横 > Admin
Settings > General > Account and limit > 取消 Gravatar enabled > Save changes
关闭用户注册功能
Settings > General > Sign-up restrictions > 取消 Sign-up enabled > Save changes
开启 webhook 外部访问
Settings > Network > Outbound requests > Allow requests to the local network from web hooks and services 勾选
设置语言为中文(全局)
Settings > Preferences > Localization > Default language > 选择简体中文 > Save changes
设置当前用户语言为中文
右上角用户头像 > Preferences > Localization > Language > 选择简体中文 > Save changes
创建 gitlab 默认用户名密码 secret
echo root > ./username
echo wolfcode > password
kubectl create secret generic git-user-pass --from-file=./username --from-file=./password -n kube-devops
进入项目点击侧边栏设置 > Webhooks 进入配置即可
URL:在 jenkins 创建 pipeline 项目后
添加成功后,可以在下方点击测试按钮查看 jenkins 是否成功触发构建操作
停止服务
gitlab-ctl stop
卸载 rpm 软件(注意安装的软件版本是 ce 还是 ee)
rpm -e gitlab-ce
查看进程
ps -ef|grep gitlab
干掉第一个 runsvdir -P /opt/gitlab/service log 进程
删除 gitlab 残余文件
find / -name *gitlab* | xargs rm -rf
find / -name gitlab | xargs rm -rf
创建 harbor 访问账号密码(需要将下访问的配置信息改成你自己的)
kubectl create secret docker-registry harbor-secret --docker-server=192.168.113.122:8858 --docker-username=admin --docker-password=wolfcode -n kube-devops
需要添加信任
kubectl apply -f sonarqube/
Name:wolfcode-jenkins
URL:http://<sonar ip>:<sonar port>/sonarqube-webhook/
SonarQube 顶部菜单栏 Projects > Create new project > 配置基础信息并保存 > Provide a token > Generate 生成 token > Continue
分别选择 Java / Maven 后,按照脚本配置 Jenkinsfile 中的 sonar 配置信息
mvn sonar:sonar -Dsonar.projectKey=k8s-cicd-demo
构建带 maven 环境的 jenkins 镜像
docker build -t 192.168.113.122:8858/library/jenkins-maven:jdk-11 .
登录 harbor
docker login -uadmin 192.168.113.122:8858
推送镜像到 harbor
docker push 192.168.113.122:8858/library/jenkins-maven:jdk-11
进入 jenkins 目录,安装 jenkins
kubectl apply -f manifests/
查看是否运行成功
kubectl get po -n kube-devops
查看 service 端口,通过浏览器访问
kubectl get svc -n kube-devops
查看容器日志,获取默认密码
kubectl logs -f pod名称 -n kube-devops
代码质量审查工具
在 Dashboard > 系统管理 > Configure System 下面配置 SonarQube servers
Name:sonarqube # 注意这个名字要在 Jenkinsfile 中用到
Server URL:http://sonarqube:9000
Server authentication token:创建 credentials 配置为从 sonarqube 中得到的 token
进入系统管理 > 全局工具配置 > SonarQube Scanner > Add SonarQube Scanner Name:sonarqube-scanner
自动安装:取消勾选 SONAR_RUNNER_HOME:/usr/local/sonar-scanner-cli
jenkins + k8s 环境配置
进入 Dashboard > 系统管理 > 节点管理 > Configure Clouds 页面
配置 k8s 集群
名称:kubernetes
点击 Kubernetes Cloud details 继续配置
Kubernetes 地址:
Jenkins 地址:
配置完成后保存即可
系统管理 > 安全 > Manage Credentials > System > 全局凭据(unrestricted) > Add Credentials
范围:全局
用户名:root
密码:wolfcode
ID:gitlab-user-pass
系统管理 > 节点管理 > 列表中 master 节点最右侧的齿轮按钮
修改标签的值与项目中 Jenkinsfile 中 agent > kubernetes > label 的值相匹配
----------- Jenkins 流水线项目 Webhook 配置 -----------
在 Jenkins 项目配置下找到构建触发器栏目
勾选 Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.113.121:31216/project/k8s-cicd-demo
上方的 URL 就是用于配置到 gitlab 项目 webhook 的地址
启用 Gitlab 构建触发器: Push Events:勾选,表示有任意推送到 git 仓库的操作都会触发构建 Opend Merge Request Events:勾选,表示有请求合并时触发构建
点击高级 > Secret Token > Generate 按钮,生成 token
保存以上配置
----------- GitLab 项目 Webhook 配置 -----------
进入 GitLab 项目设置界面 > Webhooks
将上方 Jenkins 中的 URL 配置到 URL 处
将上方生成的 Secret Token 配置到 Secret 令牌
按照需求勾选触发来源,这里我依然勾选 推送事件、合并请求事件
取消 SSL 验证
点击添加 webhook 按钮,添加后可以点击测试确认链接是否可以访问
通过系统管理 > Manage Credentials > 凭据 > System > 全局凭证 > Add Credentials 添加 Username with password 类型凭证
填写好用户名密码后,需要注意凭证 id 要与 Jenkinsfile 中的 DOCKER_CREDENTIAL_ID 一致
通过系统管理 > Manage Credentials > 凭据 > System > 全局凭证 > Add Credentials 添加 Username with password 类型凭证
填写好用户名密码后,需要注意凭证 id 要与 Jenkinsfile 中的 GIT_CREDENTIAL_ID 一致
方式一:在 Jenkins 管理后台,进入项目中点击立即构建进行项目构建
方式二:在开发工具中修改代码,并将代码提交到远程仓库自动触发构建
本文作者:GYC
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!