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

Posted Sicc1107

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins部署设置,权限管理,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 ./
            """
            
        
    

以上是关于jenkins部署设置,权限管理,pipeline语法自动构建,必备插件等的主要内容,如果未能解决你的问题,请参考以下文章

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

jenkins集群使用k8s部署,pipeline中文乱码的问题解决记录

Jenkins之Pipeline代码流水线

基于 Jenkins Pipeline 自动化部署

Jenkins之Pipeline代码流水线配置

jenkins的Pipeline代码流水线管理