jenkins(1)部署设置,权限管理,pipeline语法自动构建,必备插件等

jenkins docker安装

官网地址文档:https://www.jenkins.io/doc/book/installing/docker/

官网使用的是 在 Docker 服务器中启用 TLS。来管理docker,并且需要更新官方镜像

为了方便 可以直接使用挂在的形式使得jenkins使用docker命令

docker run -itd --name jenkins \
 -u root \
 -v /usr/bin/docker:/usr/bin/docker \
 -v /home/jenkins:/var/jenkins_home \
 -v /var/run/docker.sock:/var/run/docker.sock:rw \
 -p 8080:8080 -p 50000:50000 \
 jenkins/jenkins 

#/var/jenkins_home  jenkins工作目录
#/usr/bin/docker  docker命令放入其中
#/var/run/docker.sock 为了docker命令能执行
#8080服务访问端口  50000 agent连接端口
 
docker logs --tail=10 jenkins #查看初始密码

视图管理

新建视图

在这里插入图片描述

安装权限管理插件

Manage Jenkins -> Manage Plugins 选择安装Role-based Authorization Strategy插件
在这里插入图片描述

Manage Jenkins -> Configure Global Security 将授权策略设置为 Role-Based Strategy

在这里插入图片描述

设置完成后即可在security中看到Manage and Assign Roles

在这里插入图片描述

创建2个不同的账号及job视图

在这里插入图片描述

点击系统管理—管理用户—新建用户

在这里插入图片描述

创建Jenkins角色

Jenkins两种角色的说明:

Global roles:全局角色,主要用于配置用户的功能权限
Item roles:项目角色,主要管理项目的权限

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

将角色分配给用户

角色是用来决定用户有什么权限,因此需要和用户进行绑定

在这里插入图片描述

登陆用户验证

在这里插入图片描述

在这里插入图片描述

jenkins agent配置

在这里插入图片描述

设置master 为0

在这里插入图片描述

添加agent 固定节点

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

获取secret

在这里插入图片描述

在这里插入图片描述

启动agent容器 设置初始化参数

docker run -itd --name dev-agent \
 -u root \
 -v /var/run/docker.sock:/var/run/docker.sock:rw \
 -v /usr/bin/docker:/usr/bin/docker \
 -v /root/sichenhao/dev_agent:/var/jenkins_home \
 --init jenkins/inbound-agent \
 -workDir=/var/jenkins_home \
 -url http://10.10.1.1:8085 \
 ab40d8ca6f7da4bbf30046026fb476880a853fc9573ec24672efc8ba261eb7aa dev-agent

Git webhook 钩子插件

Generic Webhook Trigger

参数化构建插件

Git Parameter

蓝色海洋插件

Blue Ocean

docker插件

docker pipline

钉钉机器人通知插件

DingTalk

Pipeline流水线脚本插件

Pipeline

阶段视图 Pipeline Stage View

在这里插入图片描述

中文插件

Locale plugin

Chinese (Simplified)Version1.0.24

在这里插入图片描述

在这里插入图片描述

git代码拉取

1 配置全局git账号

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

新增项目git地址参数分支参数

在这里插入图片描述

去除前面的origin

在这里插入图片描述

在这里插入图片描述


pipeline {
    agent any 
    stages {
        stage('git') { 
            steps {
            git branch: '$BRANCH', credentialsId: '3482dd92-49ed-49e4-b7ba-01151e13f6c0', url: '$gitUrl'

            sh """
            pwd
            ls -la ./
            """
            }
        }
        stage('Build') { 
            steps {
            sh """
            pwd
            ls -la ./
            """
            }
        }
        stage('Test') { 
            steps {
            sh """
            pwd
            ls -la ./
            """
            }
        }
        stage('Deploy') { 
            steps {
            sh """
            pwd
            ls -la ./
            """
            }
        }
    }
}

点击构建

查看目录

在这里插入图片描述

参数化构建

def gitUrl = "https://gitee.com/si-chenhao/alert-webhook.git"
pipeline {
    agent any 
    parameters {gitParameter branchFilter: 'origin/(.*)', defaultValue: 'master', name: 'BRANCH', type: 'PT_BRANCH'}
    stages {
        stage('git') { 
            steps {
            echo "git clone"
            sh "pwd"
            git branch: "$BRANCH", credentialsId: '3482dd92-49ed-49e4-b7ba-01151e13f6c0', url: "$gitUrl"
            sh """
            pwd
            ls -la ./
            """
            }
        }
        stage('Build') { 
            steps {
                timeout(time: 10, unit: 'MINUTES') {
                script {
                    env.DEPLOY_ENV = input message: '选择部署节点环境', ok: 'deploy',parameters: [choice(name: 'DEPLOY_ENV', choices: ['hz', 'gd', 'sh', 'bj'], description: '选择部署环境')]
                        switch("${env.DEPLOY_ENV}"){
                 // 杭州环境发布
                            case 'hz':
                                println('deploy 杭州')
                                env.DEPLOY_HZIP = input message: '选择部署节点环境ip', ok: 'deploy',parameters: [choice(name: 'DEPLOY_HZIP', choices: ['10.10.10.1', '10.10.10.2'], description: '选择部署环境ip')]                    
                                echo "$DEPLOY_ENV"
                                echo "$DEPLOY_HZIP"
                                sh """
                                    echo "杭州"

                                """
                                break;
                // 广东环境发布
                            case 'gd':
                                println('deploy 广东')
                                env.DEPLOY_GDIP = input message: '选择部署节点环境ip', ok: 'deploy',parameters: [choice(name: 'DEPLOY_GGIP', choices: ['10.10.10.7', '10.10.10.8'], description: '选择部署环境ip')]                               
                                echo "$DEPLOY_ENV"
                                echo "$DEPLOY_GDIP"                               
                                sh """
                                    echo "广东"
                                
                                """                                
                                break;
                // 上海环境发布
                            case 'sh':
                                println('deploy sh prd')
                                env.DEPLOY_SHIP = input message: '选择部署节点环境ip', ok: 'deploy',parameters: [choice(name: 'DEPLOY_FFIP', choices: ['10.10.10.3', '10.10.10.4'], description: '选择部署环境ip')]
                                echo "$DEPLOY_ENV"
                                echo "$DEPLOY_SHIP"                               
                                sh """
                                    echo "上海"
                                """    
                                break;
                // 北京环境发布
                            case 'bj':
                                println('deploy bj prd')
                                env.DEPLOY_BJIP = input message: '选择部署节点环境ip', ok: 'deploy',parameters: [choice(name: 'DEPLOY_JPIP', choices: ['10.10.10.5', '10.10.1.6'], description: '选择部署环境ip')]
                                echo "$DEPLOY_ENV"
                                echo "$DEPLOY_BJIP"                               
                                sh """
                                    echo "北京"
                                """    
                                break;                           
                            default:
                                println('error 未选择节点环境信息')
                        }
                    }
                }
            }
        }
        stage('Test') { 
            steps {
                script {
                    sh """
                    pwd
                    cd ..
                    pwd
                    ls -la ./
                    """
                }
            }
        }
        stage('Deploy') { 
            steps {
            sh """
            pwd
            ls -la ./
            """
            }
        }
    }
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


版权声明:本文为weixin_43066697原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。