miwaiwai

导航

统计

devops

1.支持devops的工具

  git

  spinnaker

  docker

  kubernetes

  Jenkins

  国外:Azure DevOps

  国内:CODING devops

2.DevOps:开发&运维

  development&Operations

 整体的软件开发流程包括:

  1.PLAN :开发团队根据客户的目标制定开发计划

  2.CODE:根据plan开始编码过程,需要将不同版本的代码存储在一个库中

  3.BUILD:编码完成后,需要讲代码构建并且运行

  4.TEST:成功构建项目后,需要测试代码是否存在BUG或者错误

  5.DEPLOY:代码经过手动测试和自动化测试后,认定代码已经准备部署交给运维团队

  6.OPERATE:运维团队讲代码部署到生产环境中

  7.MONITOR:项目部署上线后,需要持续的监控产品

  8.INTEGRATE:然后讲监控阶段收到的 反馈发送回PLAN阶段,整体反复的流程就是DevOps的核心,即持续集成,持续部署

 为了保证整体流程可以高效完成,各个阶段都有比较常见的工具如下:

 

3.Devops定义:强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快,更频繁地交付更稳定的软件

 

4.安装流程

  

  操作系统在安装的时候,选在开发工作站,选在3个包,

  兼容包

  ftp

  系统管理工具

 5.安装

    

   用docker安装:

    先更新操作系统的yum源为阿里云

  

1
2
3
4
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  yum clean all
  yum makecache

  更新yum

yum update

 

  1>必须有docker  

  下载Docker依赖组件

     

1
yum -y install yum-utils device-mapper-persistent-data lvm2

  

            

    设置下载Docker的镜像源为阿里云

     

1
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  

    查看docker的可用版本:

              yum list docker-ce --showduplicates | sort -r

 

     安装Docker服务

     

 yum -y install docker-ce

 

         yum -y install docker-ce-26.1.4-1.el7  注意和上图的版本号,就是红色框的字符用中划线连接起来

     设置Docker开机自启

 

1
2
3
systemctl start docker
 
systemctl enable docker

  

     检查是否安装成功

      docker version

      

1
2
3
4
5
6
7
8
9
10
11
[root@test1 ~]# docker version
Client: Docker Engine - Community
 Version:           26.1.4
 API version:       1.45
 Go version:        go1.21.11
 Git commit:        5650f9b
 Built:             Wed Jun  5 11:32:04 2024
 OS/Arch:           linux/amd64
 Context:           default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@test1 ~]#

  

  卸载:yum remove docker  docker-common docker-selinux docker-engine

    2》必须有docker-compose

    https://www.bilibili.com/video/BV1rx4y1D7wR/?p=6&spm_id_from=pageDriver&vd_source=e9350dcb8f8ce540f675f37bddfce935

     在github上搜索https://github.com/

     https://github.com/docker/compose/releases/tag/v2.29.7

      放到/usr/bin下面

1
2
[root@192 home]# mv docker-compose-linux-x86_64 docker-compose
[root@192 home]# mv docker-compose /usr/bin

  

      检查是否安装完成

1
2
3
[root@192 home]# docker-compose version
Docker Compose version v2.29.7
[root@192 home]#

  

    3》安装Jenkins

    CI/CD可以理解为:

    CI过程既是通过jenkins将代码拉取,构建,制作镜像交给测试人员测试

      持续集成:让软件代码可以持续的集成到主干上兵自动构建和测试

    CD过程既是通过Jenkins将打好标签的发行版本代码拉取,构建,制作镜像交给运维人员部署

      持续交付:让经过持续集成的代码可以进行手动部署

      持续部署:让可以持续交付的代码随时随地的自动化部署

    

 5.2Jenkins安装

  1》首先配置国内的dock镜像源

复制代码
[root@test1 jenkins_docker]# cat /etc/docker/daemon.json   
{
    "registry-mirrors": [
        "https://<changme>.mirror.aliyuncs.com",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://registry.docker-cn.com",
        "http://hub-mirror.c.163.com",
        "https://reg-mirror.qiniu.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com",
        "https://dockerhub.azk8s.cn",
        "https://mirror.ccs.tencentyun.com",
        "https://registry.cn-hangzhou.aliyuncs.com",
        "https://mirror.baidubce.com"
    ]
}
复制代码

  2》重新加载镜像源文件以及重启docker

1
2
systemctl daemon-reload
systemctl restart docker

   3》 检查镜像源是否加载成功

复制代码
docker info
出现一下表示镜像源配置成功
 Registry Mirrors:
  https://<changme>.mirror.aliyuncs.com/
  https://dockerproxy.com/
  https://mirror.baidubce.com/
  https://docker.m.daocloud.io/
  https://docker.nju.edu.cn/
  https://docker.mirrors.sjtug.sjtu.edu.cn/
  https://registry.docker-cn.com/
  http://hub-mirror.c.163.com/
  https://reg-mirror.qiniu.com/
  https://docker.mirrors.ustc.edu.cn/
  https://dockerhub.azk8s.cn/
  https://mirror.ccs.tencentyun.com/
  https://registry.cn-hangzhou.aliyuncs.com/
 Live Restore Enabled: false
复制代码

 

  4》为方便后期管理虚拟机

 

1
2
cd /usr/local
mkdir docker<br> mkdir jenkins_docker

  

  5》创建docker-compose.yml文件

1
cd /usr/local/docker/jenkins_docker

  6》拉取jenkins镜像

复制代码
docker pull jenkins/jenkins


[root@test1 ~]# docker pull jenkins/jenkins
Using default tag: latest
latest: Pulling from jenkins/jenkins
Digest: sha256:078194d3c9a9255a78eb6ee016c7e2f4b087eb152d3ac778e4d9e128ee934fac
Status: Image is up to date for jenkins/jenkins:latest
docker.io/jenkins/jenkins:latest
[root@test1 ~]#

复制代码

 

  7》制作jenkins的ymp文件

1
2
3
4
5
6
7
8
9
10
11
12
[root@test1 jenkins_docker]# more docker-compose.yml
#version: “3.1"
services:
  jenkins:
    image: jenkins/jenkins
    container_name: jenkins
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - ./data/:/var/jenkins_home/
[root@test1 jenkins_docker]#

 

[root@test1 jenkins_docker]# docker-compose up -d
WARN[0000] /usr/local/docker/jenkins_docker/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 1/1
✔ Container jenkins Started

如果有这样的错误请将第七步的版本号一行注释掉

 8》第一次执行会有报错

1
2
3
4
5
6
7
8
9
10
11
[root@test1 jenkins_docker]# docker-compose up      或者docker-compose up -d
WARN[0000] /usr/local/docker/jenkins_docker/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 2/1
 ✔ Network jenkins_docker_default  Created                                                                                               0.2s
 ✔ Container jenkins               Created                                                                                               0.0s
Attaching to jenkins
jenkins  | INSTALL WARNING: User:  missing rw permissions on JENKINS_HOME: /var/jenkins_home
jenkins  | touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
jenkins  | Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
jenkins exited with code 1
[root@test1 jenkins_docker]#

退出一个容器 docker stop jenkins(容器名称)

9》 查看docker的jenkins日志

1
2
3
4
5
6
7
8
[root@test1 jenkins_docker]# docker logs -f jenkins
INSTALL WARNING: User:  missing rw permissions on JENKINS_HOME: /var/jenkins_home
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
INSTALL WARNING: User:  missing rw permissions on JENKINS_HOME: /var/jenkins_home
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
[root@test1 jenkins_docker]#

 为了解决上述报错问题,需要增加data的目录权限

 chmod -R 777 data

 

 第一次安装,密码会出现在日志里面

b4345e577f4644808663867b52db346f

 

10.通过页面访问一下jenkins

 11.输入密码后,可能需要几分钟,jenkins在初始化

 12.选择并安装最合适的插件,什么都不需要选择,默认,点击安装

 13.安装进行中。。。。

 14.如果下载慢,可以修改jenkins镜像源的地址

  进入data目录

  

复制代码
[root@test1 data]# pwd
/usr/local/docker/jenkins_docker/data
[root@test1 data]# ll
总用量 48
-rw-r--r--.  1 roo roo 1661 9月  26 11:41 config.xml
-rw-r--r--.  1 roo roo  324 9月  26 11:40 copy_reference_file.log
-rw-r--r--.  1 roo roo  156 9月  26 11:40 hudson.model.UpdateCenter.xml   这个就是jenkins的镜像源
-rw-r--r--.  1 roo roo  370 9月  26 12:02 hudson.plugins.git.GitTool.xml
-rw-------.  1 roo roo 1680 9月  26 12:02 identity.key.enc
-rw-r--r--.  1 roo roo  171 9月  26 11:27 jenkins.telemetry.Correlator.xml
drwxr-xr-x.  2 roo roo    6 9月  26 11:27 jobs
drwxr-xr-x.  3 roo roo   45 9月  26 12:03 logs
-rw-r--r--.  1 roo roo 1037 9月  26 11:40 nodeMonitors.xml
drwxr-xr-x. 93 roo roo 8192 9月  26 12:02 plugins
-rw-r--r--.  1 roo roo  258 9月  26 11:40 queue.xml.bak
-rw-r--r--.  1 roo roo   64 9月  26 11:27 secret.key
-rw-r--r--.  1 roo roo    0 9月  26 11:27 secret.key.not-so-secret
drwx------.  2 roo roo  164 9月  26 12:02 secrets
drwxr-xr-x.  2 roo roo  149 9月  26 12:02 updates
drwxr-xr-x.  2 roo roo   24 9月  26 11:27 userContent
drwxr-xr-x.  3 roo roo   55 9月  26 11:27 users
drwxr-xr-x. 10 roo roo  247 9月  26 11:27 war
[root@test1 data]# 
下面是默认的下载地址,默认是国外的

[root@test1 data]# cat hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://updates.jenkins.io/update-center.json</url>
</site>
</sites>[root@test1 data]#

 
复制代码

 

 

  

安装完成如下:

 15.创建一个账户

 

 16.自动会填写上jenkins的路径,保存并完成

 17.点击开始使用jenkins

 19.点击左侧的mange jenkins按钮,找到plagins,安装git Parameter,Publish Over SSH,然后点击安装

如果下载失败,可以根据14步骤提供的方法,修改jenkiins镜像源

 

 

  20.需要jdk和maven放入到data目录里面

  将这个jdk-8u161-linux-x64.tar.gz上传到服务器的data目录,并解压

  21.进入容器内部查看jdk

  

docker exec -it jenkins bash

 

   22.进入jenkins页面manage jenkins---》tools配置jdk和maven,然后点击应用和保存

  如果配置路径错误,会有报错

   同样的方法安装maven

   23.找到这Publish Over ssh插件,进行配置目标服务器

  

  

       配置目标服务器:

    进入system,将滚动条拉到最下边,就会看到publish over ssh

  

         点击图片下面的新增

      

     采用用户名和密码方式(比较简单)

      同时在服务器上创建目录/usr/local/test

      mkdir -p /usr/local/test

      然后应用,save


    

       

     24.用ideal创建一个工程

      

     25.创建一个springboot项目,如果找不到1.8的jdk,那么修改红色框为https://start.aliyun.com

    

 

    26选择web

  

       然后,直接下一步,下一步,import change(这个也会自动完成)

    27.创建一个TestControler,然后运行这个工程,保证能在本地开发环境下运行

     28.搭建giitlab(在另外一个服务器上安装)

    清华开源gitlab库  https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

    安装这个gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm  

    在虚拟机直接用命令下载:wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

    28.1安装前置依赖

yum install -y curl policycoreutils-python openssh-server

 

    28.2,rpm -ivh 进行安装

   安装成功

 

 

    ,28.3  修改配置文件  

    

复制代码
[root@test3 ~]# cat /etc/gitlab/gitlab.rb |grep -v '^#'|grep -v '^$'
external_url 'http://192.168.192.133:8080'
 gitlab_rails['time_zone'] = 'Asia/Shanghai'
 git_data_dirs({
   "default" => {
     "path" => "/mnt/nfs-01/git-data"
    },
   "alternative"=>{
  
     "path" => "/mnt/nfs-01/backup"
  }
 })
 puma['worker_processes'] = 2
 sidekiq['max_concurrency'] = 8
 postgresql['shared_buffers'] = "128MB"
 nginx['listen_port'] = 8080
 prometheus_monitoring['enable'] = false
[root@test3 ~]# 
复制代码

 

  28.4更新配置并重启   

  

gitlab-ctl reconfigure 初始化
gitlab-ctl restart 开启服务

 

   

其他命令
  gitlab-ctl stop 关闭服务
  gitlab-ctl retart 重启所有服务
  gitlab-ctl status查看所有服务状态
  gitlab-ctl reconfigure 修改配置文件之后,重新加载
  gitlab-ctl show-config 查看所有服务配置文件信息
  gitlab-ctl tail 查看日志

 

  重新初始化以后密码为:

1
2
3
4
5
6
7
8
9
10
[root@test3 ~]# cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
 
Password: Is7NEzP1Q7LDKTggHWflf7XzIU6TyYcXY2963gIYnL4=
 
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

  

 

posted on   米歪歪  阅读(45)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示