centos7+jenkins使用笔记

采用宿主机Docker

如果采用docker安装jenkins,可以通过启动容器时增加docker相关路径来使用本机的docker
设置docker相关的路径。

 -v /var/run/docker.sock:/var/run/docker.sock 
 -v /usr/bin/docker:/usr/bin/docker 
 -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7

v /var/run/docker.sock:/var/run/docker.sock 映射宿主机的docker
-v /usr/bin/docker:/usr/bin/docker 映射宿主机的docker
-v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 在centos7 系统下会出现个别的包丢失,对应的引下宿主机的包就可以。

docker在容器内构建的时候,如果出现权限不够。可以在宿主机中使用以下两种方式:

  $ sudo chmod 777 /var/run/docker.sock

或者

  $ usermod -a -G docker jenkin

通过构建参数执行不同的step

根据不同的module执行不同的build命令

node {
    properties([parameters([
        string(defaultValue: 'www.baidu.com', description: '请输入访问地址', name: 'url'),
        choice(choices: 'All\ndd\nguest\nflow', description: '请选择对应的项目', name: 'module')
        ]), pipelineTriggers([])])

        stage('Build') { 
                echo 'Build' 
                echo "${params.module}"
                echo "${params.url}"
                if(params.module == 'All' || params.module == 'dd'){
                    echo 'build dd'
                }
                if(params.module == 'All' || params.module == 'guest'){
                    echo 'build guest'
                }
        }
        stage('Test'){
                echo 'Test'
        }
        stage('Deploy') {
                echo 'Deploy'
        }
}

通过SSH Agent Plugin执行远程命令

sshagent (credentials: ['credential']) {
            sh '''ssh -o StrictHostKeyChecking=no -l root xxx.xxx.xxx.xxx << remotessh 
            echo 1
            '''
        }

通过SSH Pipeline Steps 插件执行远程命令

方法一: 通过明文账号,密码登录访问

stage('Remote SSH') {
        def remote = [:]
        remote.name = 'ssh'
        remote.host = 'xxx.xxx.xxx.xxx'
        remote.user = 'root'
        remote.password = 'xxxxxx'
        remote.allowAnyHosts = true
        sshCommand remote: remote, command:
        '''
        docker ps
        export TAG=1.0.9
        echo \$TAG
        '''
    }

方法二: 通过私钥证书访问

stage('Remote SSH') {
        def remote = [:]
        remote.name = "ssh"
        remote.host = "192.168.3.122"
        remote.allowAnyHosts = true

        withCredentials([sshUserPrivateKey(credentialsId: 'credential', keyFileVariable: 'identity', passphraseVariable: '', usernameVariable: 'userName')]) {
            remote.user = userName
            remote.identityFile = identity
            sshCommand remote: remote, command:
            '''
            docker ps
            export TAG=1.0.9
            echo \$TAG
            '''
        }
    }

Jenkins 镜像

jenkins->插件管理->高级->升级站点
修改URL:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/stable/update-center.json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值