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
    

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

  • 相关阅读:
    从VS转MyEclipse的15天使用体验
    JSP标签
    cookie实现自动登录
    js中substring和substr的用法
    用原生sql查询返回实体对象的方法
    @Column
    event.keyCode用法及列表
    jQuery的选择器中的通配符[id^='code']
    struts2中<s:radio>标签设置默认选中项
    在Struts2中实现登陆后跳转到登录前页面
  • 原文地址:https://www.cnblogs.com/zoujiaojiao/p/13259559.html
Copyright © 2011-2022 走看看