软件自动化部署脚本

2017-11-16 20:19:53

1:设计思路:

  (1)软件自动化部署脚本,即在一台虚拟机运行脚本,就将其他虚拟机上面的软件安装好了;

  (2)而前提是自己的机器搭建好了yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库),这样在一台机器上面运行脚本,其他机器可以从这台机器上下载【先安装wget命令】,安装【即解压缩的操作】,配置环境变量等等【前提是脚本也实现了免密登陆操作实现】;

  (3)而这些操作可以分成两个过程,如果配置好免密登陆ssh登录,然后使用boot.sh发送一个install.sh脚本到各个机器上面,从而实现软件自动化部署操作;

2:自动化下载,安装,配置环境变量的脚本(甚至刷新一下配置文件的命令):

#!/bin/bash

#首先指定自己的yum仓库即可以下载软件的服务器名称,方便引用。
BASE_SERVER=master
#安装wget软件
yum install -y wget
#下载yum仓库上面的软件
wget $BASE_SERVER/soft/jdk-7u45-linux-x64.tar.gz
#安装,即解压缩安装自己的软件
tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local
#cat一个东西到这个文件下面。#配置环境变量。<<重定向输出,>>重定向输入。#cat  >>之间有一个字符的空格。cat >> /etc/profile << EOFexport JAVA_HOME=/usr/local/jdk1.7.0_45 export PATH=\$PATH:\$JAVA_HOME/bin EOF

3:免密登陆和发送脚本的脚本。

#!/bin/bash#将要安装的机器的列表,方便下面循环遍历$SERVERSSERVERS="slaver1 slaver2 slaver3 slaver4 slaver5 slaver6"PASSWORD=hadoopBASE_SERVER=192.168.199.130#定义一个函数auto_ssh_copy_id() {    #expect根据系统的提示,进行应答。set timeout -1;一直不超时等待。    expect -c "set timeout -1;        #spawn指行命令。$1第一个参数,$2第二个参数。*匹配任意字符。\r回车。exp_continue表示继续操作。        #eof代表没有提示。exit 0;代表退出。        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循环,进行遍历每台机器。for SERVER in $SERVERSdo    #循环遍历发送安装脚本。发送到/root目录下面。    scp install.sh root@$SERVER:/root    #登陆到这台机器。然后执行这个操作脚本。    ssh root@$SERVER /root/install.shdone

4:下面开始操作,看看是否可以跑起来。(切记,自己的每台机器都有scp命令,并且可以正常执行,你的本地yum仓库以及搭建好了。):

  首先,如果之前安装了jdk,配置了环境变量,现在可以先删除了。然后呢,找一个主机器,启动你的web服务器。然后呢,将你的jdk传到这个web服务器上面。

现在可以将httpd服务启动起来,在浏览器访问一下:

然后呢,浏览器访问一下:

然后呢,记得将脚本上传到这个有服务器的主机上面,上传过程省略:

给脚本添加执行权限:

 [root@master hadoop]# chmod +x boot.sh install.sh

5:我自动化安装的时候绵密登陆出现一点错误,让我手动输入密码。原因还需要分析一下:

 免密登陆出现一点错误。还没解决,以后有机会好好研究一下。

2017-11-16 22:28:48

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏酷玩时刻

JDK开发环境搭建及环境变量配置

根据系统版本下载tar.gz文件,服务器一般是64位的 jdk-8u121-linux-x64.tar.gz 、jdk-8u121-linux-i586.ta...

573
来自专栏指路者

Python开发环境搭建之Windows评论(0)

备注:用同样方法安装python2.7,安装目录改为Python27。安装后,python2.7与python3.6共存

692
来自专栏流柯技术学院

windows下命令行打jar包方法

         事先必须编译好需要打jar的class。(eclipse一般在bin,maven构建的在target/classes)

571
来自专栏蓝天

eclipse的thrift插件

插件网址为:http://thrift4eclipse.sourceforge.net/en/install.html,经测试对Eclipse 4.4.2也有...

983
来自专栏漫漫全栈路

Oracle 11g 安装教程

最近学习Oracle,所以在Vm中配置一个win10的虚拟机来安装Oracle 11g,平时实验报告使用在虚拟机中使用SqlPlus,日常开发使用NaviCa...

2994
来自专栏程序员互动联盟

【编程基础】聊聊如何学习Java—Java开发环境配置

之前两篇文章介绍了为什么学习Java和Java语言的特性,很多网友询问如何配置Java开发环境,这一篇我就给大家聊聊如何配置Java环境。 1、下载J...

3539
来自专栏前端儿

Node.js爬虫数据抓取乱码问题总结

所有这里主要说的是 Windows-1251(cp1251)编码与utf-8编码的问题,其他的如 gbk就先不考虑在内了~

741
来自专栏行者常至

(Java)请求方式之GET、POST 浅析

·不同的请求方式不仅仅在数据传输时会有所不同,在表单提交及服务器端处理时也会采用不同的方式。而区分不同种类的请求方式也会使得浏览器采用不同的缓存方式处理后续请求...

702
来自专栏Java编程技术

Dubbo剖析-管理控制台的搭建与使用

开源的Dubbo的服务管理控制台是阿里巴巴内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。

573
来自专栏GreenLeaves

微信小程序环境搭建

第一步  IDE下载 Win版链接: https://pan.baidu.com/s/1gfAy18n 第二步 破解 最新下载链接: https://pan.b...

2145

扫码关注云+社区