• 代码构建发布系统-jenkins实战


    代码构建发布系统-jenkins实战

    实验环境准备:

    1. 准备3台机器(centos7及以上)
    2. 硬件:

    Jenkins >=1G(联网)(目的是为了下载插件)

    Gitlab >=1G(联网)(目的是为了下载插件)

    Tomcat >=1G

    1. 主机配置信息

    172.16.20.10 node1.xkops.com node1 #role: jenkins

    172.16.20.20 node2.xkops.com node2 #role: gitlab

    172.16.20.30 node3.xkops.com node3 #role: tomcat

    1. 关闭firewalld和selinux

    systemctl stop firewalld

    systemctl disable firewalld

    setenforce 0

    sed -i 's;Enforcing;diabled;g' /etc/selinux/config

    一、 传统代码构建发布流程

    1. 研发获取软件包(test.war)
    2. 部署jdk/tomcat

    [root@node3 ~]# rpm -ivh jdk-8u65-linux-x64.rpm

    [root@node3 ~]# tar xf apache-tomcat-8.0.45.tar.gz -C /usr/local/

    [root@node3 ~]# cd /usr/local/apache-tomcat-8.0.45/

    [root@node3 apache-tomcat-8.0.45]# rm -rf webapps/*

     

    1. 部署war包,启动服务

    [root@node3 apache-tomcat-8.0.45]# cp /root/test.war webapps/

    [root@node3 apache-tomcat-8.0.45]# bin/startup.sh

    1. 浏览器访问

    二、 互联网代码构建发布流程

    •通过docker部署代码托管系统(gitlab)

    1. node2上安装docker相关软件

    [root@node2 ~]# yum -y install docker

    1. 启动docker服务

    [root@node2 ~]# systemctl start docker

    1. docker基本操作

    •查看镜像信息

    [root@node2 ~]# docker images

    •下载镜像

    [root@node2 ~]# docker pull centos

    1. 导入镜像

    •导入镜像

    [root@node2 ~]# docker load < gitlab-ce.tar

    •更改镜像标签

    [root@node2 ~]# docker images

    [root@node2 ~]# docker tag ab61 gitlab

    1. 修改ssh服务端口(22 –> 10086)
    2. 启动gitlab容器

    docker run --detach

    --hostname node2.xkops.com

    --publish 443:443 --publish 80:80 --publish 22:22

    --name gitlab

    --restart always

    --volume /srv/gitlab/config:/etc/gitlab

    --volume /srv/gitlab/logs:/var/log/gitlab

    --volume /srv/gitlab/data:/var/opt/gitlab

    gitlab

    •gitlab/git操作

    1. 浏览器访问gitlab,修改root密码

     

    用户名:root 密码设置:admin888

    1. 创建用户(tivens)
    2. 创建组(test)
    3. 创建组项目
    4. node1上克隆test项目,并上传程序代码。

        [root@node1 ~]# yum -y install git.x86_64   ##自己添加

    [root@node1 ~]# git config --global user.name "运维人员01"

    [root@node1 ~]# git config --global user.email "tivens@xkops.com"

    [root@node1 ~]# git clone git@172.16.20.20:test/test.git

    克隆前,需要将密钥设置好

    设置密钥: cat ~/.ssh/id_rsa.pub

    将内容复制到

     

    [root@node1 ~]# cd test/

    [root@node1 test]# cp /tmp/test/* -r .

    [root@node1 test]# git add .

    参考图

    [root@node1 test]# git commit -m 'add program files'
                         将创建的文件保存到本地仓库

    [root@node1 test]# git push -u origin master

                        将文件上传至gitlab上

    1. 浏览器访问172.16.20.20,查看项目代码。

    •如何手动构建代码

    1. node1上克隆代码

    [root@node1 ~]# cd /opt

    [root@node1 opt]# git clone git@172.16.20.20:test/test.git

    1. 安装jdk

    [root@node1 ~]# rpm -ivh jdk-8u65-linux-x64.rpm

    1. 安装maven工具(这个工具的作用?)

    [root@node1 ~]# tar -xf apache-maven-3.5.0-bin.tar.gz -C /usr/local/

        创建mvn.sh 文件,目的设置环境变量文件

       [root@node1 ~]# cat /etc/profile.d/mvn.sh

    export PATH=/usr/local/apache-maven-3.5.0/bin:$PATH

    echo "export PATH=/usr/local/apache-maven-3.5.0/bin:$PATH" > /etc/profile.d/mvn.sh

    [root@node1 ~]# source /etc/profile.d/mvn.sh

    1. 使用maven构建代码

    [root@node1 ~]# cd /opt/test/

    [root@node1 test]# mvn clean package  //目的作用看下文  卡了!

    执行顺序:

    1、使用清理插件:maven-clean-plugin:2.5执行清理删除已有target目录(版本2.5);

    2、使用资源插件:maven-resources-plugin:2.6执行资源文件的处理(版本2.6);

    3、使用编译插件:maven-compiler-plugin:3.1编译所有源文件生成class文件至targetclasses目录下(版本3.1);

    4、使用资源插件:maven-resources-plugin:2.6执行测试资源文件的处理(版本2.6);

    5、使用编译插件:maven-compiler-plugin:3.1编译测试目录下的所有源代码(版本3.1);

    6、使用插件:maven-surefire-plugin:2.12运行测试用例(版本2.12);

    7、使用插件:maven-jar-plugin:2.4对编译后生成的文件进行打包,包名称默认为:artifactId-version,比如本例生成的jar文件:rtp-front-1.0-SNAPSHOT,包文件保存在target目录下(这个生成的包不能在命令行中直接执行,因为我们还没有入口类配置到Manifest资源配置文件中去,后续会阐述)。

    备注:

    不管是compile、package还是install等前三个步骤都是必不可少的。

     

    1. 构建后的代码产物

    [root@node1 test]# ls target/test.war

    •CI/CD工具部署使用(jenkins)

    1. node1上进行操作,安装tomcat

    [root@node1 ~]# tar xf apache-tomcat-8.0.45.tar.gz -C /usr/local/

    [root@node1 ~]# cd /usr/local/apache-tomcat-8.0.45/

    [root@node1 apache-tomcat-8.0.45]# rm -rf webapps/*

    1. 安装部署jenkins,启动tomcat服务

    [root@node1 apache-tomcat-8.0.45]# cp /root/jenkins.war ./webapps/

    [root@node1 apache-tomcat-8.0.45]# bin/startup.sh

    1. 浏览器访问

    http://172.16.20.10:8080/jenkins/

    1. 安装完成后的界面

    cat /root/.jenkins/secrets/initialAdminPassword  查询首次登录密码

    进入后,修改admin用户密码

     

    1. 安装插件

    点击系统管理-> 管理插件 –> 可选插件

    问题1:无法安装插件

    问题2:把原来的tomcat删除后,重启tomcat,以及重启虚拟机,jenkins一直无法启动;是因为删除后,原来的端口还在使用着,致使无法再次启动,此错误是由于8080端口被占用, 

    改变端口再次执行,

    java -jar jenkins.war --httpPort=$HTTP_PORT, 例如java -jar jenkins.war --httpPort=1080

    启动成功;

    后打开浏览器,输入http:/localhost:1080,即可看到jenkins的页面

     

    Maven Integration plugin  MVN集成插件)

    Publish Over SSH   

    1. Global Tool Configuration

     

    1. 系统设置

     

    1. 添加git用户密码

     

    1. 新建一个maven项目,并配置构建,发布参数。

     

     

     

     

    1. 浏览器访问

     

    记录点滴
  • 相关阅读:
    第五周的学习进度情况
    周末经历之小体会
    构建之法阅读笔记5
    第四周的学习进度情况
    hashMap中如何形成循环链表的?
    代理模式
    sharing-jdbc实现读写分离及分库分表
    分库分表
    读写分离实现方式
    MySQL主从复制
  • 原文地址:https://www.cnblogs.com/fuzhongfaya/p/8948076.html
Copyright © 2020-2023  润新知