大数据教程(3.2):Linux系统软件安装之自动化脚本

    博主前面文章有介绍过软件的安装,能够帮助IT人员顺利的完成功能软件安装;可是,对于咱们运维人员或者须要管理软件安装的项目经理来讲,有些应用一次行须要搭建不少台相同的软件环境(如tomcat+java);那么,此时若是咱们再一台一台去安装,那就显得效率过低;因此此篇文章博主将详细讲解如何经过自动化脚原本实现服务器批量安装软件环境。java

    步骤:linux

(1)首先,须要检查要要安装软件环境的服务器上是否安装了ssh服务端和客户端,没有安装的须要安装上。tomcat

rpm -qa|grep ssh 检查服务器上已经安装了的ssh相关软件
yum list|grep ssh  检查yum仓库中可用的ssh相关的软件包
yum -y install openssh-server 安装服务端
yum -y install openssh-clinets 安装客户端

(2)检查root用户是否可以使用ssh链接:ssh root@192.168.29.135bash

         注意:若是此处没法实现登陆报远程登陆限制,则须要在192.168.29.135的ssh配置文件中开启运行root用户远程登陆。服务器

(3)上传jdk软件包到httpd服务器(用于执行自动化脚本的服务器)Alt+p上传运维

(4)访问httpd服务:http://192.168.29.133/softssh

(5)编写自动化脚本(而且赋予执行权限)oop

ssh远程登陆其余服务器的脚本(/root/boot.sh)spa

#!/bin/bash

SERVERS="192.168.29.135 192.168.29.136"
PASSWORD=hadoop
BASE_SERVER=192.168.29.133

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
    scp install.sh root@$SERVER:/root
    ssh root@$SERVER /root/install.sh
done

远程登陆后调用该脚本进行自动化软件安装(/root/install.sh)code

#!/bin/bash

BASE_SERVER=192.168.29.133
yum install -y wget
wget $BASE_SERVER/soft/jdk-7u45-linux-x64.tar.gz
tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local
cat >> /etc/profile << EOF
export JAVA_HOME=/usr/local/jdk1.7.0_45
export PATH=\$PATH:\$JAVA_HOME/bin
EOF

执行命令赋予权限:chmod 777 /root/install.sh  /root/boot.sh

(6)生成ssh秘钥对:ssh-kegen

(8)安装expect人机交互命令(此命令在自动化脚本中要使用)

(9)执行boot.sh进行自动化脚本安装软件:sh boot.sh

(10)安装完成后,去其余服务器source /etc/profile后验证jdk

至此,自动化脚本的安装运行整个过程完成。若是你们以为不错,请点赞博主的文章;若是您对其余服务器技术感兴趣,请关注博主博客,并随时欢迎同博主本人交流。

相关文章
相关标签/搜索