软件自动化部署脚本

简介: 2017-11-16 20:19:53 1:设计思路:   (1)软件自动化部署脚本,即在一台虚拟机运行脚本,就将其他虚拟机上面的软件安装好了;   (2)而前提是自己的机器搭建好了yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库),这样在一台机器上面运行脚本...

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第二个参数。*匹配任意字符。\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 $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

目录
相关文章
|
6天前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
3天前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
13 2
|
4天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
14 3
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
31 3
|
10天前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
12天前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
16天前
|
运维 Prometheus 监控
自动化运维之路:从脚本到DevOps
【10月更文挑战第25天】在数字化时代的浪潮中,运维不再是简单的服务器管理,而是成为了企业竞争力的核心。本文将带你走进自动化运维的世界,探索如何通过技术手段提升效率和稳定性,以及实现快速响应市场的能力。我们将一起学习如何从基础的脚本编写进化到全面的DevOps实践,包括工具的选择、流程的优化以及文化的建设。无论你是运维新手还是资深专家,这篇文章都将为你提供有价值的见解和实用的技巧。
16 3
|
20天前
|
敏捷开发 监控 jenkins
自动化测试之美:打造高效的软件质量保障体系
【10月更文挑战第20天】在软件开发的海洋中,自动化测试如同一艘精准的导航船,引领项目避开错误的礁石,驶向质量的彼岸。本文将扬帆起航,探索如何构建和实施一个高效的自动化测试体系,确保软件产品的稳定性和可靠性。我们将从测试策略的制定、工具的选择、脚本的编写,到持续集成的实施,一步步描绘出自动化测试的蓝图,让读者能够掌握这一技术的关键要素,并在自己的项目中加以应用。
27 5
|
17天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
22 1
|
20天前
|
Java 测试技术 持续交付
探索自动化测试的奥秘:提升软件质量的关键
【10月更文挑战第20天】 在当今快速发展的软件行业中,自动化测试已成为确保产品质量和加速开发周期的重要工具。本文将深入探讨自动化测试的核心概念、实施策略及其对软件开发生命周期的影响,旨在为读者提供一种全面理解自动化测试的视角,并展示如何有效地将其应用于实际项目中以提高软件质量和效率。
17 2