- 持续监控和反馈:建立监控系统来实时监测应用程序和基础设施的运行状况,并采取预防性和响应性措施来处理问题。同时,收集用户反馈和性能指标,以不断改进产品。
- 持续改进:定期回顾和评估团队的工作流程和实践,寻找改进的机会并采取行动。通过不断迭代和优化,实现持续改进和提升交付效率。
在Devops实施过程中将Jenkins与GitLab结合使用是一种常见的做法,特别是在实现持续集成和持续交付(CI/CD)方面。
一、Devops基本环境部署
部署环境:centos7.6 服务两台:
jenkins 192.168.0.108 4核心8G
gitlab 192.168.0.109 4核心8G
(建议购买腾讯云2核8G轻量级服务)
1.1: 部署jenkins
官网地址:https://www.jenkins.io/download/
选择安装稳定长期支持版本(LTS)
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
yum install fontconfig java-17-openjdk
yum install jenkins
部署完成后启动jenkins,访问端口192.168.0.108:8080,选择安装基础软件。(jenkins启动需要一定时间)
部署问题:部署过程中如出现ca报错重新安装根证书的软件包
yum install -y ca-certificates
1.2:部署Gitlab
官网地址:https://about.gitlab.com/install/#centos-7
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
添加Gitlab源
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
因为安装的是社区版需要修改yum源
在/etc/yum.reop/gitlab_gitlab-ee.repo文件中的gitlab-ee修改为gitlab-ce
sed -i 's/\/gitlab-ee/\/gitlab-ce/g' /etc/yum.repos.d/gitlab_gitlab-ee.repo
安装gitlab
sudo EXTERNAL_URL="192.168.0.109" yum install -y gitlab-ce
随机密码存储在/etc/gitlab/initial_root_password
注:使用yum list gitlab-ce --showduplicates | sort -r可以查看多个版本的gitlab可自行选择安装。
二、流水线基础介绍
安装声名式插件Pipline: Declarative
@Library('jenkinslib') _
string workspace = "/opt/jenkins/workspace"
pipeline {
agent {node { label "master" //指定运行节点,any在任何节点上执行Pipline,none没指定的时候默认,label在指 定节点上运行。node可以指定额外多个选项
customWorkspace "${workspace}" //运行工作目录}}
options {
timestamps() //日志会有时间
skipDefaultCheckout() // 流水线定义中跳过默认的代码检出步骤
disableConcurrentBuilds() //禁止并行
timeout(time: 1, unit: 'HOURS') //流水线超时设置1小时 }
//stages(可添加多个阶段)此处添加GetCode、Build、CodeScan三个阶段
stages {
//下载代码
stage("GetCode"){ //阶段名称
steps{ //步骤
timeout(time:5, unit:"MINUTES"){ //步骤超市时间
script { //获取运行代码
println('获取代码')}}}}
stage("Build"){
steps{
timeout(time:20, unit:"MINUTES"){
script{
println('应用打包')}
}}}
//代码扫描
stage("CodeScan"){
steps{
timeout(time:30, unit:"MINUTES"){
script{
print("代码扫描")}
}}}
**深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
![img](https://img-blog.csdnimg.cn/img_convert/85309cd63b40dc4dde4e422f7413417c.png)
![img](https://img-blog.csdnimg.cn/img_convert/037380ab9bc47301c38b9957f01dc09e.png)
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK