自动化脚本部署

1、自动化脚本部署概述及准备

(1)当有多台机器要做相同的部署工作时,为了避免重复劳作,就需要用到自动化部署。
自动化部署:简单来说就是批量的在目标机器上安装程序
(2)以安装jdk为例:准备工作

  • 首先要做的就是机器间的ssh免密通信的操作
  • 上传执行脚本到目标机器
  • 在执行脚本中先安装wget
  • 通过wget下载安装包
  • 安装、配置环境变量

注意:
(1)如果是迷你版的话,可能没有scp命令,安装scp命令

yum install openssh-clients

(2)先安装httpd服务,具体请参考我的安装http服务步骤

(3)将jdk复制到/var/www/html/soft下(soft为新建目录)

cp /root/jdk-7u45-linux-x64.tar.gz ./soft/

(4)安装expect

yum install -y expect 

(5)生成秘钥(ssh)
请参考生成秘钥

2、脚本代码

这里写图片描述

(1)boot.sh代码

#!/bin/bash
#SERVERS:需要安装jdk的主机名,前提要把主机名与IP映射,(最好用ip)
SERVERS="192.168.253.22 192.168.253.23"
#PASSWORD:主机的密码
PASSWORD=hadoop
#BASE_SERVER:提供jdk下载安装的主机的IP地址(或者主机名:cent01)
BASE_SERVER=192.168.253.11

#auto_ssh_copy_id():模拟人工输入的函数
#*(yes/no)*:当提示输入yes/no时,自动输入yes
#*assword:*:当提示输入密码时,自动输入密码
#eof:其他情况,退出
auto_ssh_copy_id() {
    expect -c "set timeout -1;
        spawn ssh-copy-id $1;
        expect {
            *(yes/no)* {send -- yes\r;exp_continue;}
            *assword:* {send -- $2\r;exp_continue;}
            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
    #复制install.sh到对应主机
    scp install.sh root@$SERVER:/root
    #登录到对应主机
    ssh root@$SERVER /root/install.sh
done

(2)install_everyone.sh代码

#!/bin/bash
#提供下载的ip(最好用ip,别用主机名)
BASE_SERVER=192.168.253.21
#安装wget命令
yum install -y wget
#下载jdk
wget $BASE_SERVER/soft/jdk-7u45-linux-x64.tar.gz
#解压jdk到指定目录
tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local
cat >> /etc/profile << EOF
#添加jdk的配置信息
export JAVA_HOME=/usr/local/jdk1.7.0_45
export PATH=\$PATH:\$JAVA_HOME/bin
EOF

3、执行脚本

(1)给文件添加可执行权限

chmod +x install_everyone.sh boot.sh 

(2)执行脚本

./boot.sh
阅读更多
个人分类: Shell
想对作者说点什么? 我来说一句

weblogic自动化管理脚本

2015年04月09日 79KB 下载

没有更多推荐了,返回首页

不良信息举报

自动化脚本部署

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭