zoukankan      html  css  js  c++  java
  • expect的使用

    expect的使用

    需要实现的功能:

    1. Jenkins发布时需要远程执行。没有搭建ansible的时候,可以利用expect。
    2. Jenkins能同时发布多个项目

    操作步骤

    在Jenkins服务器上安装expect

    yum install expect -y
    

    编写expect脚本

    同步文件的脚本scp-vbass.sh

    #!/usr/bin/expect
    #不需要在send语句中调用变量,则直接利用shell的方式定义变量
    host=$1
    name=$2
    expect -c "
    set timeout -1
    #spawn scp B_username@B_IP:B_path  A_path
    spawn scp -r /data/.jenkins/workspace/vbaas-sit_test/${name}/${name}-biz/target /data/.jenkins/workspace/vbaas-sit_test/${name}/${name}-biz/Dockerfile  /data/.jenkins/workspace/vbaas-sit_test/docker/docker-compose-${name#*-}.yml root@10.10.3.131:/data/vbaas/test/${name}
    expect {
                 "*assword" { send "密码
    " }
                 "yes/no" { send "yes
    "; exp_continue }
                 };
                send "exit
    "
                expect eof 
            "  
    

    更新服务 update-vbaas.sh

    #!/usr/bin/expect
    ###想在send语句里面调用变量则需要这样定义变量
    set host [lindex $argv 0]
    set name [lindex $argv 1]
    expect -c "
        set timeout 5;
        spawn ssh root@${host};
            expect {
                 "*assword" { send "密码
    " }
                 "yes/no" { send "yes
    "; exp_continue }
                 } ;
                expect "#"
                send "sh /data/vbaas/test/shell/update.sh $name
    "
                expect "#"
                send "exit
    "
                expect eof 
            "  
    

    jenkins 配置


    脚本:

    projectlist=`echo ${projects} | sed -r 's/,/ /g'| sed -r 's/"/ /g'`
    for NAME in ${projectlist};
    do
    echo "更新${NAME}..."
    echo "=============="
    sh /data/.jenkins/shell/scp-vbass.sh 需要发布的ip ${NAME}
    sh /data/.jenkins/shell/update-vbaas.sh 需要发布的ip ${NAME}
    done
    

    更新时,选择需要的项目:

  • 相关阅读:
    c++ qt安装配置教程
    PKi系统
    IKE协议
    Kerberos
    RADIUS和Diameter
    RageFrame学习笔记:创建路由+导入layui
    TP6框架--EasyAdmin学习笔记:数据表添加新参数,如何强制清除缓存
    JS原生2048小游戏源码分享
    风场可视化学习笔记:openlayers
    vue3.0 demo代码记录
  • 原文地址:https://www.cnblogs.com/zoujiaojiao/p/13259559.html
Copyright © 2011-2022 走看看