• CentOS6.X、7.X下Jenkins的安装及使用


    一、相关概念

    1.1 Jenkins概念:

    Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。

    1.2 Jenkins目的:

    1、持续、自动地构建/测试软件项目。
    2、监控软件开放流程,快速问题定位及处理,提示开放效率。

    1.3 特性:

    开源的java语言开发持续集成工具,支持CI,CD。
    易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
    消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
    分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
    文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
    丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

    1.4 产品发布流程:

    产品设计成型 —> 开发人员开发代码 —> 测试人员测试功能 —> 运维人员发布上线
    持续集成 (Continuous integration,简称CI)
    持续交付(Continuous delivery)
    持续部署(continuous deployment)

    前置条件

    1. 安装jdk1.7或以上版本
    2. 安装Git
    3. 安装Maven

    安装

    添加 Jenkins 库到yum库,Jenkins将从这里下载安装。

    1. 添加 Jenkins 源

    wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

    rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

     

    yum clean all

    yum makecache

    2. yum下载 Jenkins

    yum install -y jenkins

     

    3. 设置访问 Jenkins 的端口

    vim /etc/sysconfig/jenkins  (56行)

     

     

    4. 添加防火墙,允许9000端口访问

    CentOS7.X下 firewall 防火墙的配置

    firewall-cmd --state   # 查看防火墙状态,启动状态才能添加规则,centos7中默认防火墙就是firewalld,一般不需要额外设置。

    firewall-cmd --add-service=jenkins --permanent       # 添加 Jenkins 服务到 firewalld 防火墙中。

    firewall-cmd --reload     # 让配置的防火墙策略立即生效

    firewall-cmd --list-services       # 列举区域中启用的服务

     

    CentOS6.X下 iptables 防火墙的配置

    iptables -I INPUT –p tcp –dport 9000 –j ACCEPT

    service iptables save

    service iptables restart

     

    5. 修改用户权限 (可选)
    Jenkins安装的时候,默认添加了一个jenkins用户,这个在后续持续集成过程中,会出现权限问题。因此需要进行修改。

    进入 /etc/sysconfig/jenkins

    修改jenkins用户为root  (29行)

    #JENKINS_USER="jenkins"

    JENKINS_USER="root"

     

    修改对应目录权限

    sudo chown -R root /var/log/jenkins

    sudo chgrp -R root /var/log/jenkins

    sudo chown -R root /var/lib/jenkins

    sudo chgrp -R root /var/lib/jenkins

    6. 启动Jenkins

    systemctl start jenkins  (如果启动报错,一般是java路径配置问题)

    备注:如果启动的时候出现下图,CentOS 6.5应该会出现这个错误提示:Starting Jenkins -bash: /usr/bin/java: No such file or directory

    对 Jenkins 配置文件进行修改

    添加自己的 jdk 路径

    查询 jdk 路径:

    which java

     进入 Jenkins 配置文件:vim /etc/init.d/jenkins

     把 jdk 安装路径添加进去,格式如下图,保存退出,再次重启 Jenkins 就好啦!

    如果重启时出现下图:

    就运行以下命令后,再次重启

    systemctl daemon-reload

    安装成功后Jenkins将作为一个守护进程随系统启动,系统会创建一个 "jenkins" 用户来允许这个服务,如果改变服务所有者,同时需要修改/var/log/jenkins, /var/lib/jenkins, 和/var/cache/jenkins的所有者

    启动的时候将从 /etc/sysconfig/jenkins 获取配置参数,默认情况下,Jenkins运行在8080端口,在浏览器中直接访问该端口进行服务配置

    Jenkins的RPM仓库配置被加到 /etc/yum.repos.d/jenkins.repo 文件里

    7. 通过IP地址加端口,就可以成功访问到 Jenkins 了

    http://your ip address:9000

    8. 密码默认在 /var/lib/jenkins/secrets/下的 initialAdminPassword 文件中

    vim /var/lib/jenkins/secrets/initialAdminPassword 

    把这行密码复制,粘贴到上面的 Jenkins 输入框就可以正常使用了

     

    选择 "Install suggested plugins" 安装默认的插件,下面 Jenkins 就会自己去下载相关的插件进行安装。 

     创建超级管理员账号 

    配置

    1、Java配置

    在服务器上执行 echo $JAVA_HOME 便可看到 JAVA_HOME 的路径

    在系统管理 —> 全局工具配置(Global Tool Configuration)下配置JDK,Name可以自定义,取消自动安装

    JAVA_HOME:填写 JDK 的具体安装路径

    2、Git安装

    源码安装

    检测当前 Git 版本是否是2.7.4以上

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker wget autoconf –y

    mkdir /tmp/git && cd /tmp/git

    wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

    tar xf git-2.9.5.tar.gz

    cd git-2.9.5

    make configure

    ./configure --prefix=/usr/local/git

    make profix=/usr/local/git

    make install

    echo "export PATH=$PATH:/usr/local/git/bin" > /etc/profile.d/git.sh

    source /etc/profile.d/git.sh

    查看git安装到什么地方

    which git

    可以看到 Git 安装在如下目录

     

    Git配置

    在系统管理 —> 全局工具配置(Global Tool Configuration)下配置Git,Name可以自定义,取消自动安装

    Path to Git executable:填写 Git 的具体安装路径

    3、Maven安装

    cd /usr/local/ && wget -c http://mirror.bit.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

    tar -zxf apache-maven-3.3.9-bin.tar.gz

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

    source /etc/profile.d/maven.sh

     

    mvn -v    # 查看Maven版本

    在系统管理 —> 全局工具配置(Global Tool Configuration)下配置Maven,Name可以自定义,取消自动安装

    MAVEN_HOME:填写 Maven 的具体安装路径

     

    4、Email配置

    配置邮箱,在构建失败的时候会向指定邮箱发送告知邮件

    系统管理 —> 系统设置下配置邮件功能

     5、配置GitHub,和Jenkins连接

    sercret text

    注:此处需要一个对项目有写权限的账户

    进入GitHub —> Settings —> Developer settings —> Personal access tokens —> Generate new token

    注意:自己先复制保存下这个token,下面会用到,如果丢失,之后再也无法找到这个token,只能再新建一个。

    进到Jenkins页面,选择,系统管理 —> 系统设置 —> GitHub

     

     

     

     

     GitHub的连接信息

    配置Jenkins在Hook URL中监听Github的Post请求,然后进行自动构建,所以接下来配置Hook URL,点击 "添加GitHub服务器" 处的 Advanced按钮,启用Hook URL,并将Hook URL复制出来,并保存刚才的设置

    配置Github项目仓库

    还需要配置GitHub项目仓库,因为GitHub经常有代码处理动作,需要配置Github项目仓库在处理这些动作的同时会发送信号至Jenkins,才使用Jenkins自动构建。

    在GitHub上新建一个项目,点击Settings

    在"Webhooks"选项卡中,点击"Add webhook"

     将在Jenkins生成的Hook URL填入至Payload URL中,另外,选择自主事件

    以Push为例,并保存,即当GitHub收到了客户端有Push动作时,会触发一个Hook

    保存webhook之后

    使用 Jenkins 构建部署Web项目 

    新建一个名为xiong-cxxt的项目,这里选择自由风格 

     

    源码管理

    Repository URL 填写具体GitHub上的仓库的url,如果为私有,需要继续添加Credentials,如果为公有直接填写url即可,Credentials为none

    构建触发器

    Poll SCM:可以配置定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。

    构建环境

    构建

    构建方式选择调用顶层 Maven 目标

    Goals是 Maven 命令,Setting file 是 Maven 的配置路径 

    clean install 的意思是删除以前编译过的target,然后重新编译生成war

    构建后操作


    这里需要Jenkins安装 "Deploy to container" 和 "Publish Over SSH" 两个插件,

    系统管理 —> 管理插件 —> Available(可选插件),找到它并安装

    安装好两个插件后,点击 “系统管理” –> “系统设置”

    在key内填写Jenkins服务器的私钥,如果没有需要先在 Jenkins 服务器生成私钥与公钥。ssh-keygen -t rsa 回车后会在登录用户的家目录下生成一个.ssh 的目录,此目录下存在 id_rsa 私钥与 id_rsa.pub 公钥。用下面的命令将公钥发布至代码发布的目标服务器上

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@目标服务器IP地址

    SSH配置
    Name:需要将Web程序发布到目标服务器的名称,可自定义
    Hostname:填写目录服务器的IP地址
    Username:使用那个用户进行发布,此处为进行密钥互信的用户
    Remote Directory:此处为发布到目标服务器的相对根路径,建议填写/,防止后续填写路径异常。

    注:如果为多台目标服务器,可以继续添加,如果目标服务器存在代理,也可设置proxy

    构建后操作

    1、选择 Send build artifacts over SSH

    Name:目标服务器的名称
    Source files:从GitHub上拉去下来的原始文件
    Remote directory:发布到目标服务器的制定目录
    Exec command:制定后续的操作

    2、配置邮件服务 (每次构建完后会往指定的邮箱发一份邮件)

    3、Tomcat配置

    vim /usr/local/apache-tomcat-7.0.91/conf/tomcat-users.xml

    在 /tomcat-users.xml 配置文件<tomcat-users>......</tomcat-users>中添加tomcat的manager访问用户,用于发布war包。

    <role rolename="manager-script"/>
    <user username="test" password="123456" roles="manager-script"/>


    webapps下只保留manager,删除其他文件夹。 
    cd /usr/local/apache-tomcat-7.0.91/conf/Catalina/localhost

    新建manager.xml文件,配置如下。 

    <Context privileged="true" antiResourceLocking="false" 
    docBase="${catalina.home}/webapps/manager"> 
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> 
    </Context>

    保存退出

    发布到Tomcat
    选择 Deploy war/ear to a container
    配置 tomcat 服务 

     tomcat的连接信息,用户名和密码(来自tomcat-users.xml)。 

    到这里就可以进行构建了,左边菜单有个立刻构建按钮,点击便可以构建,还可以点击 console output 查看日志 。

    第一次构建会有点慢,Maven会去下很多插件和jar包。

    在构建的时候,构建成功同时会把构建的war包部署到对应tomcat下,同时可以指定多个tomcat,集群化部署的时候很方便。

    中间部分省略

    此时到目标服务器上查看程序是否已经部署,也可以查看邮件是否收到。

     

  • 相关阅读:
    POJ3687拓扑排序+贪心
    POJ3687拓扑排序+贪心
    POJ3614奶牛晒阳光DINIC或者贪心
    POJ3614奶牛晒阳光DINIC或者贪心
    POJ3070矩阵快速幂简单题
    POJ3070矩阵快速幂简单题
    POJ3040给奶牛发工资
    POJ3040给奶牛发工资
    #Leetcode# 78. Subsets
    #Leetcode# 89. Gray Code
  • 原文地址:https://www.cnblogs.com/opsprobe/p/9912245.html
Copyright © 2020-2023  润新知