zoukankan      html  css  js  c++  java
  • 软件自动化部署脚本

    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 << EOF
    export JAVA_HOME
    =/usr/local/jdk1.7.0_45 export PATH=$PATH:$JAVA_HOME/bin EOF

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

    #!/bin/bash

    #将要安装的机器的列表,方便下面循环遍历$SERVERS
    SERVERS="slaver1 slaver2 slaver3 slaver4 slaver5 slaver6"
    PASSWORD=hadoop
    BASE_SERVER=192.168.199.130

    #定义一个函数
    auto_ssh_copy_id() {
        #expect根据系统的提示,进行应答。set timeout -1;一直不超时等待。
        expect -c "set timeout -1;
            #spawn指行命令。$1第一个参数,$2第二个参数。*匹配任意字符。 回车。exp_continue表示继续操作。
            #eof代表没有提示。exit 0;代表退出。
            spawn ssh-copy-id $1;
            expect {
                *(yes/no)* {send -- yes ;exp_continue;}
                *assword:* {send -- $2 ;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 $SERVERS
    do
        #循环遍历发送安装脚本。发送到/root目录下面。
        scp install.sh root@$SERVER:/root
        #登陆到这台机器。然后执行这个操作脚本。
        ssh root@$SERVER /root/install.sh
    done

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

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

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

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

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

    给脚本添加执行权限:

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

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

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

    2017-11-16 22:28:48

  • 相关阅读:
    c++中的.hpp文件
    最近用vs使用的比较好的工具
    new内存分配失败
    "0x%08x" C语言
    python爬取智联招聘工作岗位信息
    GIS应用1000例01序
    lxml 中连续调用xpath出的问题
    arcgis JavaScript API总体结构
    PostgreSQL安装
    ES6转ES5的babel的使用
  • 原文地址:https://www.cnblogs.com/biehongli/p/7845743.html
Copyright © 2011-2022 走看看