zoukankan      html  css  js  c++  java
  • 搭建jenkins实现自动化部署

    一、安装jenkins

    1、添加yum repos,然后安装

    1
    2
    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

     注:如果上边的执行成功就不用再执行这两行了

    1
    2
    sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/RedHat/jenkins.repo
    sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

     注:如果网络不好需要重试几次

    1
    sudo yum install jenkins

    2、如果未安装java还需安装java

    1
    sudo yum install java

    3、启动和停止

    1
    2
    3
    sudo service jenkins start
    sudo service jenkins stop
    sudo service jenkins restart<br><br>
    1
    sudo chkconfig jenkins on

    如果启动失败,可以运行如下命令查看错误信息

    1
    systemctl status jenkins.service

    如上错误是java配置错误,需要修改jenkins配置文件

    1
    vi /etc/rc.d/init.d/jenkins

    类似如下修改:

    1
    2
    3
    4
    5
    candidates="
    ************
    ************
    /usr/local/jdk1.8/bin/java
    "

    4、jenkins的默认设置

      Jenkins会随系统启动而启动。详情参照/etc/init.d/jenkins
      Jenkins会创建一个用户叫做jenkins, 如果你修改了user,则要修修改所属者:/var/log/jenkins,/var/lib/jenkins,/var/cache/jenkins
      如果遇到问题,查看日志/var/log/jenkins/jenkins.log
      配置文件/etc/sysconfig/jenkins
      默认启用8080

     5、打开和关闭防火墙

      开启非80端口需要打开防火墙,参考:http://www.cnblogs.com/rslai/p/7954080.html

    6、关于centos上的java
      Jenkins不支持在centos的默认的jdk上工作。如果如下所示,则需要remove:

      java -version
      java version "1.5.0"
      gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)
      为了正确使用Jenkins:

      yum remove java
      然后可以安装openjdk

      yum install java-1.7.0-openjdk
      正确如下:

      java -version
      java version "1.7.0_79"
      OpenJDK Runtime Environment (rhel-2.5.5.1.el6_6-x86_64 u79-b14)
      OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

    7、配置java路径
    直接启动:

    sudo service jenkins start
    但是发现启动失败,于是需要配置java位置:

    vi /etc/init.d/jenkins
    在启动加入本机的java:

    [root@iZ94xvn71eeZ ~]# vim /etc/init.d/jenkins


    # Set up environment accordingly to the configuration settings
    [ -n "$JENKINS_HOME" ] || { echo "JENKINS_HOME not configured in $JENKINS_CONFIG";
    if [ "$1" = "stop" ]; then exit 0;
    else exit 6; fi; }
    [ -d "$JENKINS_HOME" ] || { echo "JENKINS_HOME directory does not exist: $JENKINS_HOME";
    if [ "$1" = "stop" ]; then exit 0;
    else exit 1; fi; }

    # Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.
    # see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
    candidates="
    /etc/alternatives/java
    /usr/lib/jvm/java-1.8.0/bin/java
    /usr/lib/jvm/jre-1.8.0/bin/java
    /usr/lib/jvm/java-1.7.0/bin/java
    /usr/lib/jvm/jre-1.7.0/bin/java
    /usr/bin/java
    /usr/java/jdk1.7.0_80/bin/java

     8、配置端口

      修改

    1
    vi /etc/sysconfig/jenkins

      内容改为需要的端口

    1
    JENKINS_PORT="8080"

    9、yum安装Jenkins默认路径为

      /var/lib/jenkins

    二、进入jenkins

    1、打开

    1
    http://192.168.3.231:8080

    2、查看密码,将内容填写到密码处点击继续

    1
    cat /var/lib/jenkins/secrets/initialAdminPassword

    3、选择默认插件即可  

    4、设置管理员

     三、安装和Git,GitLab插件

    1、安装git客户端

      Linux安装配置git参见,只需要安装客户端不需要产生sshkey,如果你又想再jenkins上用git又想直接再linux上用再生成key

      http://www.cnblogs.com/rslai/p/8175864.html

    2、安装git插件

    3、在这里将安装和Git,GitLab插件,注意使用ctrl+f查找

    4、配置gitLab连接

    5、找到Gitlab配置,如下图

      name:可以随便写一个

      host URL:host地址注意只填写host不要库地址写http地址即可

      credentials:选择一个证书

       新建一个证书,选择add->Jenkins添加一个证书

      kind:选择GitLab API token

      API token:输入token,如何找到token参见下面 

      查找token,token需要在gitLab中查找,不同版本的gitLab方式不同

        a)在Access Tokens中就显示了api token直接copy即可

        b)在如下页面填入名字和过期时间后自动生成token,生成后一定要使用记事本记下来,之后无法查看该token

       回到Jenkins设置token后Test Connection,如果测试成功

    四、新建item

    1、生成ssh key 

    由于jenkins执行脚本的使用使用的是jenkins这个账号,所以公钥私钥需要放在此用户的目录里。

    a)由于此账号是一个不允许登录且修改了home目录的账号,所以需要先执行 vi /etc/passwd 查看一下jenkins账号的home目录,在里边找到jenkins这个账号其中红框部分为他的home目录

    b)生成root(不是root其它账号也可)账号的sshkey

    1
    2
    3
    4
    ssh-keygen -t rsa -C "root@192.168.3.231" -b 4096 # 生成公钥私钥,注意双引号内是个助记符根据需要修改
    cd /root/.ssh # 进入ssh目录
    git ls-remote -h ssh://git@118.188.3.87:1022/html/tamH5.git HEAD # 连一下git服务器,生成known_hosts文件
    ll # 查看文件

    如果没有 known_hosts 文件之后Jenkins发布时会有如下错误 “Host key verification failed.”

    c)进入jenkins目录将刚才创建的sshkey复制过来并将所有者指到jenkins账号

    1
    2
    3
    4
    5
    6
    cd /var/lib/jenkins # 进入jenkins的home目录
    mkdir .ssh # 创建ssh目录存放sshkey文件,如果存在会报错
    cd .ssh
    cp /root/.ssh/* . # 将root账号下的sshkey文件复制过来,此时如果执行ll看一下这两个文件所有这应该是root
    chgrp jenkins * # 将key文件的组改为jenkins
    chown jenkins * # 将key文件的所有者改为jenkins

    d)此时pwd再ll应该看到如下内容  

    2、打开 id_rsa.pub 将其中内容复制到记事本中,然后再copy到git服务器上

    3、访问gitlab将刚才生成的公钥添加到ssh keys中

     

    4、创建证书

      a)Jenkins -> Credentials

     

      b)global -> Add credentials新建一个证书

      c)填写证书信息

        kind:选择 SSH Username with private key

        Username:随便输入,之后在创建item是记得住选择那个即可

        Priveate key:选择“Enter directly”后输入私钥,记住一定是私钥 (按照上步骤在linux上生成密钥后,会是一对其中带pub后缀的是公钥。id_rsa私钥、id_rsa.pub公钥)。在linux执行cat id_rsa将所有内容copy填入key中

        Passphrase:不填,如果填了每次都需要输入密码

        填好后点击“ok”保存

    2、新建item

      a)新建Item

      b)输入任务名称,选择“构建一个自由风格软件项目”后单击“确定”

      

       c)在GitLab connection处选择刚才创建的连接(输入git host时创建的连接)

        选择git并Credentials处选择刚才输入私钥的证书

        Repository URL输入git项目地址(注意输入时需添加ssh注意如果修改端口应填写ssh://git@host:port/xxxxxx/xxxxx.git)

        之后单击“保存”即可。

     

    3、构建job 

      a)进入demo job

     

      b)点击“立即构建”

        由于item只配置了git所以只会clone git,clone后在如下目录中,以job名称为目录保存

         /var/lib/jenkins/workspace

    构建后目录

    1
    ./var/lib/jenkins/workspace/

    根据job名字放到相应目录

    安装插件 

    参考文档:

      http://blog.csdn.net/achuo/article/details/51086599

      http://blog.csdn.net/wangfei0904306/article/details/56011877

  • 相关阅读:
    复杂json后端解析出现第二层无数据的问题
    idea启动springboot项目报Error running 'ServiceStarter': Command line is too long. Shorten command line for ServiceStarter or also for Application
    docker强制关闭命令
    scala下实现actor多线程基础
    orcale数据库分配用户
    多线程实现互相通信
    从一份配置清单详解 Nginx 服务器配置
    PostgreSQL CentOS 7 安装配置
    .net core session部分浏览器或移动客户端不可用
    VS2019 远程调试
  • 原文地址:https://www.cnblogs.com/klb561/p/10123621.html
Copyright © 2011-2022 走看看