• Jenkins继续集成2


    节点管理
    删除之前的节点
    默认状态
    在这里插入图片描述
    在这里插入图片描述
    这个表示master除了做持续集成和持续交付外,本身也要做构建,如果在上面创建的项目越来越多的时候,如果只在一台机器上建,会负载不了,一般情况下,都会把构建任务从master分离出来
    重建创建vm5

    主机
    cd /var/lib/libvirt/images/
    rm -f vm5
    qemu-img create -f qcow2 -b small-new.qcow2 vm5
    
    • 1
    • 2
    • 3
    • 4
    server5
    yum install -y java-1.8.0-openjdk.x86_64
    
    • 1
    • 2

    在jenkins新建节点,专门做构建的
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    如果不让master不工作的话,只需要将数量改为0就可以了
    在这里插入图片描述

    问题:如果gitlab的密码不知道了

    cd /etc/gitlab
    gitlab-ctl uninstall
    gitlab-ctl cleanse
    //rm -f initial_root_password
    //gitlab-ctl reconfigure
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    find / -name *gitlab*
    
    • 1

    再重新部署gitlab

    server4
    cd /etc/yum.repos.d/
    ls
    scp docker.repo server5:/etc/yum.repos.d/
    cd /etc/sysctl.d/
    ls
    scp docker.conf server5:/etc/sysctl.d/
    cd /etc/docker/
    scp -r certs.d/ daemon.json server5:/etc/docker/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    server5
    yum install -y docker-ce
    sysctl --system
    systemctl enable --now docker
    vim /etc/hosts
    172.25.0.1 server1 reg.westos.org
    systemctl restart docker
    docker info
    docker pull nginx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述
    新建用户
    控制用户权限
    在这里插入图片描述
    在这里插入图片描述
    新建的用户就没有权限了。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    gitlab密码重新获得之后,新建项目
    在这里插入图片描述

    server2
    git push -u origin main
    
    • 1
    • 2

    之后刷新
    问题:如果jenkins出现以下情况
    在这里插入图片描述
    是因为server3的公钥没有复制

    server3
    cd .ssh/
    cat id_rsa.pub  #将其中的内容复制到gitlab  SSH中
    
    • 1
    • 2
    • 3

    先把docker_project_test 先禁用
    如果test的控制台输出也出错了
    可能是因为server5上没有安装git。

    yum install -y git
    
    • 1

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    把很多自由风格的项目串成流水线
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    构建主机时固定的,可以以下操作

    server5
    cd /tmp/workspace/
    cd devops
    ls
    ssh-keygen
    ssh-copy-id server4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    如果构建主机不是固定的,
    ssh-agent 帮你在这个里直接缓存你的凭据。
    构建凭据
    在这里插入图片描述
    在这里插入图片描述
    自动触发
    在这里插入图片描述
    在这里插入图片描述
    高级
    在这里插入图片描述
    在这里插入图片描述
    保存

    jenkins结合钉钉报警
    安装插件
    在这里插入图片描述
    创建一个报警群
    在这里插入图片描述
    在智能群助手中創建一個机器人,关键字jenkins,复制webhook地址,
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    测试上传失败
    在这里插入图片描述

    在这里插入图片描述
    通过gitlab做版本控制
    创建个项目
    在这里插入图片描述
    在这里插入图片描述

    server2
    vim Jenkinsfile #将之前的代码写到里面
    git addJenkinsfile
    git commit -m "add Jenkinsfile"
    git push -u origin main
    
    • 1
    • 2
    • 3
    • 4
    • 5

    做修改
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在master的设置中
    在这里插入图片描述
    集合ansible
    在jenkins这台主机上安装ansible

    rpm -ivh ansible-2.8.5-1.el7.noarch.rpm
    yum install -y ansible-2.8.5-1.el7.noarch.rpm
    
    
    有本地源则创建一个ansible源
    cd /etc/yum.repos.d/
    vim ansible.repo
    yum install ansible
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    把四个包访问一个目录里,yum install *

    ansible -v
    cd /etc/ansible/
    ls
    cat ansible.cfg #主配置文件
    cat hosts #对象
    
    • 1
    • 2
    • 3
    • 4
    • 5

    gitee
    在这里插入图片描述

    server2
    git clone git@172.25.254.0.2:root/ansible.git
    cd ansible/
    ls
    
    • 1
    • 2
    • 3
    • 4
    server4,5
    systemctl stop docker
    systemctl stop docker.socket
    netstat -antlp
    
    • 1
    • 2
    • 3
    • 4

    推ansible的play-book在server4,5
    server4作为测试环境,5作为生产环境
    jenkins会通过git方式从仓库中拉取下来,所有的信息都是放在仓库中,做任何变更都有版本控制的。

    server2
    vim ansible.cfg
    
    • 1
    • 2

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    mkdir inventory
    cd inventory/
    ls
    vim test 
    [test]
    172.25.0.4
    vim prod
    [prod]
    172.25.0.5
    cd ..
    vim playbook.yml
    ---
    - hosts:all
      tasks:
      - name: install httpd
        yum:
            name: httpd
            state:present
      - name: create index.html #创建模板
        template:
          src: index.html.j2
          dest: /var/www/html/index.html
      - name: start httpd
        service:
          name:httpd
          state:started
          enabled:yes
    vim index.html.j2
    {{ ansible_hostname }}
    ls
    git add .
    git status -s
    git commit -m "add playbook.yaml"
    git push -u origin main
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    在这里插入图片描述
    在jenkins拉取,新建项目
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    server3
    cd /var/lib/jenkins/
    cd workspace/
    ls
    
    • 1
    • 2
    • 3
    • 4

    如果是构建主机,比如是server5,构建的是/tmp/,那就在/tmp/下面
    在ansible的主配置文件中,连接远程是要通过ssh
    ssh devops@172.25.0.4 这个用户是在远程主机上创建的,然后通过sudo来运行,如果不做这个设置的话,会通过jenkins用户去访问,但这个是错的

    server4,5
    useradd devops
    visudo
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    server4
    passwd devops
    设置用户密码
    
    • 1
    • 2
    • 3
    server5
    echo westos | passwd --stdin devops
    
    • 1
    • 2
    server3
    su - jenkins
    cat /etc/passwd
    usermod -s /bin/bash jenkins
    su - jenkins
    ssh-keygen 
    ssh-copy-id devops@server4
    ssh-copy-id devops@server5
    ssh devops@server4 #测试
    ssh devops@server5
    ssh devops@172.25.0.4
    ssh devops@172.25.0.5
    然后退出来就行
    ansible- playbook -i inventory/test playbook.yml
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述

  • 相关阅读:
    R语言ggplot2可视化:使用ggpubr包的ggbarplot函数可视化柱状图、不同水平的柱状图中包含多个数据对象(每个横线代表一个数据对象)
    拓扑排序算法
    DJYOS开源往事二:DJYOS开源工作室时期
    2022年最新河北建筑八大员(机械员)模拟考试题库及答案
    高并发内存池
    肺部阴影识别检测 matlab算法技术
    广播的流程
    《Python+Kivy(App开发)从入门到实践》自学笔记:高级UX部件——知识点总览
    脑机接口002 | 上海与长三角地区脑科学发展与跨学科合作
    对于一个即将上线的网站,如何测试
  • 原文地址:https://blog.csdn.net/weixin_46754666/article/details/125139541