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
    

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

  • 相关阅读:
    QML学习笔记之一
    使用 DLL 的优点
    制作Windows的ico图标
    CentOS安装JDK
    CentOS 7中安装和配置Promethues
    查看和指定SpringBoot内嵌Tomcat的版本
    CentOS中安装Azkaban 2.5
    Centos7 安装Nodejs
    SpringBoot实用技巧札记
    SQL实用札记【SQL Sever篇】
  • 原文地址:https://www.cnblogs.com/zoujiaojiao/p/13259559.html
Copyright © 2011-2022 走看看