zoukankan      html  css  js  c++  java
  • 持续集成环境Jenkins+git+maven+tomcat安装(20200915)

    1)安装JDK

    Jenkins需要依赖JDK,所以先安装JDK1.8

    yum install java-1.8.0-openjdk* -y

    安装目录为:/usr/lib/jvm

    2)获取jenkins安装包

    下载页面:https://jenkins.io/zh/download/

    安装文件:jenkins-2.190.3-1.1.noarch.rpm

    3)把安装包上传到192.168.66.101服务器,进行安装

    rpm -ivh jenkins-2.190.3-1.1.noarch.rpm

    4)修改Jenkins配置

    vi /etc/syscofifig/jenkins

    修改内容如下:

    JENKINS_USER="root"

    JENKINS_PORT="8888"

    5)启动Jenkins

    systemctl start jenkins</DI< div>

    6)打开浏览器访问

    http://192.168.66.101:8888</DI< div>

    注意:本服务器把防火墙关闭了,如果开启防火墙,需要在防火墙添加端口

    7)获取并输入admin账户密码

    cat /var/lib/jenkins/secrets/initialAdminPassword

    8)跳过插件安装

    因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安

    装</DI< div>

    image

    image


    9)添加一个管理员账户,并进入Jenkins后台</DI< div>

    image

    开始使用Jenkins</DI< div>

    image

    image

    持续集成环境(2)-Jenkins插件管理

    Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用

    Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件。</DI< div>

    修改Jenkins插件下载地址

    Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址:

    Jenkins->Manage Jenkins->Manage Plugins,点击Available </DI< div>

    image

    这样做是为了把Jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址 </DI< div>

    image

    image

    最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址</DI< div>

    https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</DI< div>

    image

    Sumbit后,在浏览器输入: http://192.168.66.101:8888/restart ,重启Jenkins。 </DI< div>

    下载中文汉化插件</DI< div>

    Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese" </DI< div>

    image

    持续集成环境(3)-Jenkins用户权限管理

    我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限

    安装Role-based Authorization Strategy插件 </DI< div>

    image

    开启权限全局安全配置 </DI< div>

    image

    授权策略切换为"Role-Based Strategy",保存</DI< div>

    image

    创建角色

    在系统管理页面进入 Manage and Assign Roles</DI< div>

    image

    点击"Manage Roles"</DI< div>

    image

    Global roles(全局角色):管理员等高级用户可以创建基于全局的角色 Project roles(项目角色):

    针对某个或者某些项目的角色 Slave roles(奴隶角色):节点相关的权限 </DI< div>

    我们添加以下三个角色:

    baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑

    定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 is

    missing the Overall/Read permission

    role1:该角色为项目角色。使用正则表达式绑定"itcast.*",意思是只能操作itcast开头的项目。

    role2:该角色也为项目角色。绑定"itheima.*",意思是只能操作itheima开头的项目。 </DI< div>

    image

    保存。</DI< div>

    创建用户

    在系统管理页面进入 Manage Users</DI< div>

    image

    分别创建两个用户:jack和eric</DI< div>

    image

    给用户分配角色

    系统管理页面进入Manage and Assign Roles,点击Assign Roles

    绑定规则如下:

    eric用户分别绑定baseRole和role1角色

    jack用户分别绑定baseRole和role2角色</DI< div>

    image

    保存。 </DI< div>

    创建项目测试权限

    以itcast管理员账户创建两个项目,分别为itcast01和itheima01 </DI< div>

    结果为:

    eric用户登录,只能看到itcast01项目

    jack用户登录,只能看到itheima01项目 </DI< div>

    持续集成环境(4)-Jenkins凭证管理

    凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便

    Jenkins可以和这些第三方的应用进行交互。</DI< div>

    安装Credentials Binding插件

    要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件</DI< div>

    image

    安装插件后,左边多了"凭证"菜单,在这里管理所有凭证</DI< div>

    image


    可以添加的凭证有5种:</DI< div>

    image


    常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH

    密钥) </DI< div>

    接下来以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证。 </DI< div>

    安装Git插件和Git工具

    为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。</DI< div>

    image

    CentOS7上安装Git工具:

    yum install git -y 安装

    git --version 安装后查看版本 </DI< div>

    用户密码类型

    1)创建凭证

    Jenkins->凭证->系统->全局凭证->添加凭证</DI< div>

    image

    image

    选择"Username with password",输入Gitlab的用户名和密码,点击"确定"。 </DI< div>

    image

    2)测试凭证是否可用

    创建一个FreeStyle项目:新建Item->FreeStyle Project->确定 </DI< div>

    image

    找到"源码管理"->"Git",在Repository URL复制Gitlab中的项目URL</DI< div>

    image

    这时会报错说无法连接仓库!在Credentials选择刚刚添加的凭证就不报错啦 </DI< div>

    image

    保存配置后,点击构建”Build Now“ 开始构建项目</DI< div>


    image

    image

    查看/var/lib/jenkins/workspace/目录,发现已经从Gitlab成功拉取了代码到Jenkins中。 </DI< div>

    image

    SSH密钥类型

    SSH免密登录示意图 </DI< div>

    image

    1)使用root用户生成公钥和私钥

    ssh-keygen -t rsa

    在/root/.ssh/目录保存了公钥和使用 </DI< div>

    image

    id_rsa:私钥文件

    id_rsa.pub:公钥文件</DI< div>

    2)把生成的公钥放在Gitlab中

    以root账户登录->点击头像->Settings->SSH Keys

    复制刚才id_rsa.pub文件的内容到这里,点击"Add Key" </DI< div>

    image


    3)在Jenkins中添加凭证,配置私钥

    在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复

    制过来 </DI< div>

    image

    image

    4)测试凭证是否可用

    新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证</DI< div>

    image

    image

    同样尝试构建项目,如果代码可以正常拉取,代表凭证配置成功!</DI< div>

    持续集成环境(5)-Maven安装和配置 </DI< div>

    在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目。

    安装Maven

    先上传Maven软件到192.168.66.101

    tar -xzf apache-maven-3.6.2-bin.tar.gz 解压

    mkdir -p /opt/maven 创建目录

    mv apache-maven-3.6.2/* /opt/maven 移动文件

    配置环境变量

    vi /etc/profifile

    source /etc/profifile 配置生效

    mvn -v 查找Maven版本

    全局工具配置关联JDK和Maven

    Jenkins->Global Tool Confifiguration->JDK->新增JDK,配置如下:</DI< div>

    image

    添加Jenkins全局变量

    Manage Jenkins->Confifigure System->Global Properties ,添加三个全局变量

    JAVA_HOME、M2_HOME、PATH+EXTRA</DI< div>

    image


    修改Maven的settings.xml

    mkdir /root/repo 创建本地仓库目录

    vi /opt/maven/conf/settings.xml </DI< div>

    本地仓库改为:/root/repo/

    添加阿里云私服地址:

    alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central</DI< div>


    测试Maven是否配置成功

    使用之前的gitlab密码测试项目,修改配置</DI< div>

    image

    构建->增加构建步骤->Execute Shell</DI< div>

    image

    输入

    mvn clean package </DI< div>

    image


    再次构建,如果可以把项目打成war包,代表maven环境配置成功啦!</DI< div>

    image


    持续集成环境(6)-Tomcat安装和配置

    安装Tomcat8.5 </DI< div>

    把Tomcat压缩包上传到192.168.66.102服务器

    yum install java-1.8.0-openjdk* -y 安装JDK(已完成)

    tar -xzf apache-tomcat-8.5.47.tar.gz 解压

    mkdir -p /opt/tomcat 创建目录</DI< div>

    mv /root/apache-tomcat-8.5.47/* /opt/tomcat 移动文件

    /opt/tomcat/bin/startup.sh 启动tomcat

    注意:服务器已经关闭了防火墙,所以可以直接访问Tomcat啦

    地址为:http://192.168.66.102/8080</DI< div>

    image

    配置Tomcat用户角色权限

    默认情况下Tomcat是没有配置用户角色权限的</DI< div>

    image


    image

    但是,后续Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置,

    添加用户及权限</DI< div>

    vi /opt/tomcat/conf/tomcat-users.xml </DI< div>

    内容如下:

    <tomcat-users>

    <role rolename="tomcat"/>

    <role rolename="role1"/>

    <role rolename="manager-script"/>

    <role rolename="manager-gui"/>

    <role rolename="manager-status"/>

    <role rolename="admin-gui"/>

    <role rolename="admin-script"/>

    <user username="tomcat" password="tomcat" roles="manager-gui,manager-

    script,tomcat,admin-gui,admin-script"/>

    </tomcat-users>

    用户和密码都是:tomcat

    注意:为了能够刚才配置的用户登录到Tomcat,还需要修改以下配置

    vi /opt/tomcat/webapps/manager/META-INF/context.xml

    <!--

    <Valve className="org.apache.catalina.valves.RemoteAddrValve"

    allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />

    --></DI< div>

    把上面这行注释掉即可!

    重启Tomcat,访问测试

    /opt/tomcat/bin/shutdown.sh 停止

    /opt/tomcat/bin/startup.sh 启动

    访问: http://192.168.66.102:8080/manager/html ,输入tomcat和tomcat,看到以下页面代表成功

    image

  • 相关阅读:
    Topcoder 11351 TheCowDivOne
    Topcoder 14531 Softmatch
    Topcoder 13503 ConnectingGame
    CS Academy Round#5 E.Binary Matching
    洛谷 P5896 [IOI2016]aliens
    P5020 [NOIP2018 提高组] 货币系统
    P1868 饥饿的奶牛
    P3131 [USACO16JAN]Subsequences Summing to Sevens S
    P3959 [NOIP2017 提高组] 宝藏
    2021 Grade 8 whk Final-Test.(Summer) 复**况 & 文明观猴
  • 原文地址:https://www.cnblogs.com/pengrj/p/13671765.html
Copyright © 2011-2022 走看看