zoukankan      html  css  js  c++  java
  • 3--Jenkins详解 、用户权限、构建maven、参数化构建

    一、Jenkins

    https://pkg.jenkins.io/redhat-stable/

    Jenkins是一个自动化部署的工具。依赖于Java开发的,由各种组件组成的一个自动化部署工具

    1.安装Jenkins

    #1.安装Java
    [root@jenkins jenkins]# yum install java-1.8.0-openjdk* -y
     
    #2.安装Jenkins
    方式一
    # 安装Jenkins(推荐,因为yum默认为新版本,不建议安装太新的版本)
    [root@jenkins jenkins]]# mkdir packages && cd packages
    [root@jenkins jenkins]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.249.1-1.1.noarch.rpm
    [root@jenkins jenkins]# yum localinstall -y jenkins-2.249.1-1.1.noarch.rpm
    [root@jenkins jenkins]# systemctl restart jenkins
    
    方式二
    # yum方式安装需要安装认证 Key
    [root@jenkins jenkins]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    # 安装Jenkins
    [root@jenkins jenkins]# yum install jenkins
    [root@jenkins jenkins]# systemctl restart jenkins
    

    2.登录

    [root@jenkins jenkins]# cat /var/lib/jenkins/secrets/initialAdminPassword
    e59b14429016454f8ec2e5e7a34f6449
    

    3.安装插件

    #1.安装插件
    #添加插件
    [root@gitlab jenkins]# tar -xf /opt/plugins.tar.gz -C /var/lib/jenkins
    # 授权jenkins用户
    [root@gitlab ~]# chown -R jenkins.jenkins /var/lib/jenkins/
    #重启
    [root@gitlab jenkins]# systemctl restart jenkins.service 
    

    4.Jenkins中的凭证和远程连接机器

    # 系统管理  ->  Manage Credentials -> 全局 -> 添加凭据
    
    # Jenkins通过SSH下载代码
    1、将Jenkins服务器中的公钥放到GitLab上SSH秘钥
      #测试。可以下载  
    [root@k8s-m-03 ~]# git clone git@192.168.15.14:root/xiangmu1.git
    
    2、将Jenkins服务器私钥放到Jenkins凭证(Manage Credentials)之中
        
    # Jenkins连接远程机器
    	1、系统管理 -> 系统配置 -> SSH remote hosts
    	或者
    	2、系统管理 -> 系统配置 -> Publish over SSH
        [root@jenkins ~]# cat /root/.ssh/id_rsa 私钥
    
    

    配置凭证

    配置凭证

    Jenkins连接远程机器

    5.项目所存在的目录

    [root@jenkins ~]# cd /var/lib/jenkins/jobs/    #项目目录
    [root@jenkins jobs]# ll
    total 0
    drwxr-xr-x 3 jenkins jenkins 61 Aug 16 15:35 test-dep-01
    drwxr-xr-x 3 jenkins jenkins 61 Aug 16 15:13 test-dep-1
    [root@jenkins workspace]# pwd
    /var/lib/jenkins/workspace    #工程目录,下载代码的目录
    
    

    6.优化

    [root@gitlab updates]# cd /var/lib/jenkins/updates/
    [root@gitlab updates]# sed -i 's/https://updates.jenkins.io/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json
    [root@gitlab updates]# sed -i 's/http://www.google.com/https://www.baidu.com/g' default.json
    
    #最后,系统管理 --> 插件管理 --> 高级,把站点升级改为国内插件下载地址
    https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    

    二、解决jenkins忘记用户密码问题

    #1.找到存密码的文件
    [root@jenkins ~]# cd /var/lib/jenkins/users/
    [root@jenkins /var/lib/jenkins/users]# ll
    total 4
    drwx------ 2 jenkins jenkins  24 Aug 13 11:56 mm_7745824900363635554
    -rw-r--r-- 1 jenkins jenkins 294 Aug 13 11:55 users.xml
    
    [root@jenkins elainafang_4555949760451263805]# vim mm_7745824900363635554/config.xml 
     #2.将密码内容替换成123456的密码内容   #在网上查看jenkins密码
    <passwordHash>#jbcrypt:$2a$10$2LvNPMgFiYAyT/CeE5FwnOUkQz4SbTd9Myq/pWf5qAQtz0MWe6K86</passwordHash>
    替换成              <passwordHash>#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq</passwordHash>
      
    #3.重新加载内面用123456密码登录后在修改密码
    

    三、用户权限 (RBAC权限)

    1.授权策略

    2.创建用户和修改密码

    3.创建及管理权限组

    系统管理 —> Manage and Assign Roles —> Manage Roles —> 各个角色(权限组)

    Global roles(全局角色): # 管理员等高级用户可以创建基于全局的角色 
    Item roles(项目角色):   #  针对某个或者某些项目的角色 ,添加成组
    Node roles(节点角色):   # 节点相关的权限
    
    Base:   # 设置成所有的用户都有查看的权限
    Alvin:  # 设置以alvin开头的项目有超管权限
    Oldboy: # 设置以oldboy开头的项目有超管权限
    

    4.分配角色组权限

    系统管理 —> Manage and Assign Roles —> Assign Roles

    5.使用通配符分配权限

    .* : 匹配以什么开头的项目

    四、Jenkins构建maven

    1.配置maven环境

    # 下载
    [root@jenkins ~]# wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
    
    #2.解压
    [root@jenkins ~]# tar xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/
    [root@jenkins ~]# cd /usr/local/
    [root@jenkins local]# ll
    total 0
    drwxr-xr-x  6 root root 99 Aug 17 06:43 apache-maven-3.6.3
    
    #3.添加环境变量
    [root@jenkins local]# ln -s /usr/local/apache-maven-3.6.3 /usr/local/maven      #建软连接 
    [root@jenkins maven]# vim /etc/profile   #添加环境变量
    ... ...
    xport MAVEN_HOME=/usr/local/maven
    export PATH=$PATH:$MAVEN_HOME/bin
    [root@jenkins maven]# source /etc/profile   #重载环境变量
    
    [root@jenkins ~]# mvn --version   #测试
    Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
    Maven home: /usr/local/maven
    Java version: 1.8.0_302, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "5.4.138-1.el7.elrepo.x86_64", arch: "amd64", family: "unix"
    

    2.配置maven

    #配置JDK
    [root@jenkins java-1.8.0-openjdk]# pwd   #jdk目录的位置
    /usr/lib/jvm/java-1.8.0-openjdk
    
    [root@jenkins ~]# cd /usr/local/maven/   #maven路径
    [root@jenkins maven]# pwd
    /usr/local/maven
    
    

    3.安装maven插件

    3. 创建maven仓库

    使用jenkins用户在/data/software目录下新建一个repository文件夹,用来作为maven的仓库

    [root@jenkins ~]# mkdir -pv /data/software/repository
    mkdir: created directory ‘/data’
    mkdir: created directory ‘/data/software’
    mkdir: created directory ‘/data/software/repository’
    [root@jenkins ~]# chown jenkins.jenkins /data/software/repository/
    

    使用root账户修改Maven的settings.xml文件(指定仓库目录和阿里云镜像)

    [root@jenkins ~]# vim /usr/local/maven/conf/settings.xml
    添加
    <!--本地仓库-->          
      <localRepository>/data/software/repository</localRepository>
      
      <mirrors> #里面有这一行,不必再写
        <!--阿里云镜像-->
        <mirror>
          <id>aliyun-maven</id>
          <mirrorOf>central</mirrorOf>
          <name>aliyun maven mirror</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>
      </mirrors>
    

    五、参数化构建

    https://blog.csdn.net/mm970919/article/details/119711839

  • 相关阅读:
    vue vmodel input type=checkbox的问题
    springboot配置文件优先级
    原生js实现复制功能
    Long.valueOf和Long.parseLong的区别
    程序员学习参考
    国外开源项目
    .NET快速入门教程
    Microsoft Update Catalog 离线安装包下载
    php header示例代码
    CentOS下iptables设置
  • 原文地址:https://www.cnblogs.com/caodan01/p/15174322.html
Copyright © 2011-2022 走看看