自动化部署脚本详解

 当有多台机器要做相同的部署工作时,为了避免重复劳作,就需要用到自动化部署。自动化部署——简单来说就是批量的在目标机器上安装程序。下面我们以安装JDK来看一下自动化部署是怎么执行的。

        准备:sdk的安装包我们放在一个httpd的服务器下面,提供sdk的下载服务。

  1. 首先要做的就是机器间的ssh免密通信的操作。
  2. 上传执行脚本到目标机器
  3. 在执行脚本中先安装wget
  4. 通过wget下载安装包
  5. 安装、配置环境变量
下面看具体的操作:

#!/bin/bash

SERVERS="node-1.cn node-2.cn"   #目标机器 需要部署sdk的机器
PASSWORD=123456#在集群机器系统安装的时候root用户的密码统一为123456,

auto_ssh_copy_id() {#模拟人机交互
    expect -c "set timeout -1;#
        spawn ssh-copy-id $1;#spawn  开始执行命令  $1:函数调用的时候传递的第一个参数
        expect {
            *(yes/no)* {send -- yes\r;exp_continue;}#当系统提示含有yes/no的时候 输入yes 并回车,继续执行
            *password:* {send -- $2\r;exp_continue;}#当系统提示中含有password时 输入参数2即$PASSWORD 并回车 继续执行
            eof        {exit 0;}#没有提示  退出 
        }";
}

ssh_copy_id_to_all() {
    for SERVER in $SERVERS#循环遍历所有机器
    do
        auto_ssh_copy_id $SERVER $PASSWORD#函数调用
    done
}

ssh_copy_id_to_all#函数调用


for SERVER in $SERVERS
do
    scp install.sh root@$SERVER:/root   #拷贝install.sh文件到目标机器的root目录下
    ssh root@$SERVER /root/install.sh#登陆到目标机器并执行安装脚本
done

下面我们看一下 install.sh 文件

#!/bin/bash

BASE_SERVER=node-3#提供sdk下载的机器
yum install -y wget#安装wget
wget $BASE_SERVER/soft/jdk-7u45-linux-x64.tar.gz#通过wget下载sdk安装包
tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local#解压安装包到/usr/local 目录
cat >> /etc/profile << EOF#使用cat 将export..这两行输入到/etc/profile 文件
export JAVA_HOME=/usr/local/jdk1.7.0_45
export PATH=\$PATH:\$JAVA_HOME/bin
EOF


这样sdk就自动安装到了node-1、mode-2这两台机器上了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值