Linux操作系统下部署Jenkins环境,数据迁移(备机部署)以及主从节点的配置

版权声明: https://blog.csdn.net/Scirhh/article/details/82380058

    

    本文所阐述的,均是在Linux操作系统下部署Jenkins环境,采用的解决方案是,使用TomcatJenkins.war包和maven,以及利用Nginx做Tomcat的反向代理来实现Jenkins的CI/CD。


目录

Jenkins环境部署

数据迁移(备机部署)

Jenkins主从节点配置


  附环境部署所需要的包:

    Jenkins.war包
        链接: https://pan.baidu.com/s/1K0m4at9Iti-WHkUC9ZguYQ 密码: nbmp

    Tomcat zip包
        链接: https://pan.baidu.com/s/1a4AQPc9cKNhipgvPiL5FLA 密码: kqv2

    Maven tar包
        链接: https://pan.baidu.com/s/1hFytUGAPEiZ_p5CotnhZDg 密码: iep5
    
    Nginx tar包
        链接: https://pan.baidu.com/s/1ISToevWLFYBC_gpb-2cGEA 密码: 3yqm

Jenkins环境部署

      编者将/data作为Jenkins的部署目录,目录可因个人使用习惯进行更改。另将所有的需要使用到的包放置在部署目录下。

      1、部署Tomcat环境

       (1) 解压Tomcat安装包

[-> ~#] cd /data
[-> ~# data] unzip apache-tomcat-8.5.32.zip 

       (2) 启动Tomcat服务

[-> ~# data]  cd  unzip apache-tomcat-8.5.32
[-> ~# apache-tomcat-8.5.32] chmod +x ./bin/*.sh     # 针对脚本无权限的用户,如有忽略
[-> ~# apache-tomcat-8.5.32] ./bin/startup.sh        # 启动Tomcat
[-> ~# ] ss -antulp | grep java                      # 如果8080,8009,8005端口都启动了,说明Tomcat环境部署成功

     2、部署Maven

     (1) 解压maven tar包

[-> ~#] cd /data
[-> ~#] tar -xf apache-maven-3.5.4-bin.tar.gz

     (2) 部署Maven环境变量

[-> ~#] vim /etc/profile 

   # 将下列的文字添加至文件末:
        export MAVEN_HOME=/data/apache-maven-3.5.4

[-> ~#] source /etc/profile     # 使得配置文件立即生效
[-> ~#] mvn -v                  # 如果出现maven版本号,说明maven环境部署成功

      3、部署Jenkins

        为确保后续的操作,建议将Tomcat停止,

[-> ~#] cd /data/apache-tomcat-8.5.32
[-> ~# apache-tomcat-8.5.32] ./bin/shutdown.sh               # 停止Tomcat

[-> ~# data] cp jenkins.war apache-tomcat-8.5.32/webapps    # 将jenkins.war包放到tomcat的webapps目录下
[-> ~# data] mv apache-tomcat-8.5.32/webapps/jenkins.war apawche-tomcat-8.5.32/webapps/ROOT.war        # 将jenkins.war更名为ROOT.war

[-> ~# apache-tomcat-8.5.32] ./bin/startup.sh               # 启动Tomcat,如果8005端口没有启动则无法访问

      4、部署Nginx环境

    在这里说明下为什么要部署Nginx环境,因为一般在生产环境中,8080端口是不对外开放。既然如此,那我们只能通过Nginx的反向代理方式,来实现8080端口的访问。

[-> ~#] cd /data
[-> ~# data] tar -xvf nginx-1.12.2.tar
[-> ~# data] cd nginx-1.12.2
[-> ~# nginx-1.12.2] ./configure --prefix=/usr/local/nginx --with-http_ssl_modules  --with-stream && make && make install            # 源码编译安装Nginx
[-> ~# nginx-1.12.2] ln -s /usr/local/nginx/bin/nginx /sbin/nginx    # 创建nginx链接
[-> ~# nginx-1.12.2] vim /usr/local/nginx/conf/nginx.conf 

    # 增加以下内容 :
        http{    
            ... ...
            upstream jenkins{                # 反向代理配置
                server 127.0.0.1:8080;
            }
        }
        server{
            ... ...
            location / {
                proxy_pass http://jenkins;   # 反向代理的调用
            }
        }
[-> ~# nginx-1.12.2] nginx -t     # 检查nginx配置文件是否为ok
[-> ~# nginx-1.12.2] nginx        # 如果之前有启动过nginx,那么需要使用"nginx -s reload"

     使用"ss -antulp" 查看 80,8080,8009,8005端口是否开启,如果都已经开启,则可以继续往下操作,

访问 "http://host_ip",即可跳转到jenkins页面。

     根据提示,在命令行获取登陆jenkins的密码,密码可在进入jenkins后进行修改

         选择安装插件方式:

   

        不用创建用户,直接使用admin用户进行登录即可

   

       部署完成


数据迁移(备机部署)

    准备一台新的主机,将Jenkins主服务器上 /data目录,以及jenkins的主目录所有数据同步备份到备机上

[-> ~#] rsync -az --delete /data root@host_ip:/data    # 需要做主机互信,才能免密,如果非22端口,需要使用'ssh -p 端口号'进行同步
[-> ~#] rsync -az --delete /root/.jenkins root@host_ip:/root/.jenkins

    除此之外,在做Jenkins备机的时候,先将jenkins退出(http://host_ip/exit),然后将Tomcat停止。

    做完备份之后,我们还要设置Jenkins的环境变量

[-> ~#] vim /etc/profile
    # 文末添加如下内容:
        export JENKINS_HOME=/root/.jenkins    

[-> ~#] source /etc/profile

[-> ~#] vim /data/apache-tomcat-8.5.32/bin/catalina.sh
    # 在配置文件的“# OS specific support.  $var _must_ be set to either true or false.”的上面添加:
        export JENKINS_HOME=/root/.jenkins

    注意:如果没有设置环境变量,有可能会造成Jenkins数据同步失败、用户同步失败或者用户权限同步失败等问题。

  上述步骤完成后,启动Tomcat,以及启动Jenkins,如果无误的话,备机服务器上,是和主机上的一致。如图

   数据实时备份可以采用 "rsync+cron" 进行实现,附脚本:

[-> ~# data] vim rsync.sh
    #!/bin/bash
    rsync -az --delete /data root@host_ip:/data  
    rsync -az --delete /root/.jenkins root@host_ip:/root/.jenkins

[-> ~# data] crontab -e -u root
    0 0 * * * bash /data/rsync.sh

Jenkins主从节点配置

    因网上有许多Jenkins主从节点配置的文章,就不在这里详细阐述了,编者择选了一篇较为详细的附上链接:https://blog.csdn.net/ruangong1203/article/details/78687450


 本文旨在提供参考,如有错误,欢迎大家指正。帮助编者不断的改进!

猜你喜欢

转载自blog.csdn.net/Scirhh/article/details/82380058