首页 > 其他分享 >devops

devops

时间:2024-09-27 21:52:39浏览次数:5  
标签:roo com devops https jenkins docker root

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源为阿里云

  

    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依赖组件

     

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

  

            

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

     

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开机自启

 

      systemctl start docker

      systemctl enable docker

  

     检查是否安装成功

      docker version

      

[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下面

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

  

      检查是否安装完成

      [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

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》为方便后期管理虚拟机

 

  cd /usr/local
  mkdir docker
 mkdir jenkins_docker

  

  5》创建docker-compose.yml文件

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文件

[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》第一次执行会有报错

[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日志

[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 查看日志

 

  重新初始化以后密码为:

[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.

  

 

标签:roo,com,devops,https,jenkins,docker,root
From: https://www.cnblogs.com/miwaiwai/p/18428854

相关文章

  • 持续测试:确保 DevOps 管道的质量
    持续测试是现代软件开发中的关键实践,尤其是在DevOps框架中。它涉及在整个软件交付管道中自动执行测试,以确保对代码库所做的每项更改都得到彻底验证。通过将测试集成到开发过程的每个阶段,持续测试旨在尽早发现并解决缺陷,从而显着降低生产中失败的风险。什么是持续测试?持续测试是......
  • devops的道法术器
    devops的道法术器 道、法、术、器自上而下是系统思考的层次,自下而上是解决问题的层次 “道”是目标、价值观,对价值的定位。快速交付价值,灵活响应变化,这是从价值层面的追求,或者是从第一性原理的角度来讲,我们做这个事情最终目标是什么;“法”是实现价值观的战略、方法这个......
  • 华为云DevSecOps和DevOps
    目录1.华为云DevSecOps和DevOps1.1DevSecOps1.1.1核心功能1.1.2 优势1.2 DevOps1.2.1 核心功能1.2.2 优势1.3 DevOps和DevSecOps的区别1.3.1 安全性集成1.3.2 自动化的安全工具1.3.3 团队协作1.3.4 质量与合规性1.3.5 成本与风险管理1.3.5总结2.De......
  • 【devops】git-runner介绍与使用
     本站以分享各种运维经验和运维所需要的技能为主《python零基础入门》:python零基础入门学习《python运维脚本》: python运维脚本实践《shell》:shell学习《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战《k8》从问题中去学习k8s《docker学习》暂未更新......
  • DevOps转型
    DevOps转型延迟成本(如果不做这个需求,每周损失的成本)的优先级决策方式演进式架构:从交付业务所需的新功能开始(至少在初期是这样),新功能使用面向服务的设计不要重写已有的功能,除非能够使它持续简化通过不断拆分,更快的进行交付为可测试性和可部署性进行设计新的架构运行在PaaS平......
  • Python在DevOps中的应用 - 提高自动化和效率的利器
    引言在当今快速发展的IT世界中,DevOps已成为提高软件开发和运维效率的关键方法。Python,作为一种多功能且易于学习的编程语言,在DevOps实践中扮演着越来越重要的角色。本文将深入探讨Python如何在DevOps中发挥作用,以及一些常用的Python库和工具,帮助您提高自动化程度和工作效率。作者:ht......
  • 十六年所思所感,聊聊这些年我所经历的 DevOps 系统
    作者:子丑前不久,我因为运动时的姿势不对,导致右腿骨折,喜提三个月的居家修养。按照作家刘震云的说法,这叫做着正确的事情,却迈着不正确的步伐。于是乎,我的活动空间骤减,每日除了短暂地楼下放风,便是卧坐于方寸之间。周遭静下来,许多回忆便涌了上来。从2008年开始,我陆陆续续参与了多个Dev......
  • 十六年所思所感,聊聊这些年我所经历的 DevOps 系统
    作者:子丑前不久,我因为运动时的姿势不对,导致右腿骨折,喜提三个月的居家修养。按照作家刘震云的说法,这叫做着正确的事情,却迈着不正确的步伐。于是乎,我的活动空间骤减,每日除了短暂地楼下放风,便是卧坐于方寸之间。周遭静下来,许多回忆便涌了上来。从2008年开始,我陆陆续续参与了多个Dev......
  • 十六年所思所感,聊聊这些年我所经历的 DevOps 系统
    作者:子丑前不久,我因为运动时的姿势不对,导致右腿骨折,喜提三个月的居家修养。按照作家刘震云的说法,这叫做着正确的事情,却迈着不正确的步伐。于是乎,我的活动空间骤减,每日除了短暂地楼下放风,便是卧坐于方寸之间。周遭静下来,许多回忆便涌了上来。从2008年开始,我陆陆续续参与了多个......
  • 十六年所思所感,聊聊这些年我所经历的 DevOps 系统
    作者:子丑前不久,我因为运动时的姿势不对,导致右腿骨折,喜提三个月的居家修养。按照作家刘震云的说法,这叫做着正确的事情,却迈着不正确的步伐。于是乎,我的活动空间骤减,每日除了短暂地楼下放风,便是卧坐于方寸之间。周遭静下来,许多回忆便涌了上来。从2008年开始,我陆陆续续参与了多个......