软件自动化部署脚本

简介: 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

目录
相关文章
|
13天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
119 61
|
2月前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
2月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
8天前
|
Web App开发 数据采集 JavaScript
Chrome浏览器实例的TypeScript自动化脚本
Chrome浏览器实例的TypeScript自动化脚本
|
29天前
|
缓存 监控 安全
公司电脑监控软件的 Gradle 构建自动化优势
在数字化办公环境中,公司电脑监控软件面临代码更新频繁、依赖管理和构建复杂等挑战。Gradle 构建自动化工具以其强大的依赖管理、灵活的构建脚本定制及高效的构建缓存与增量构建特性,显著提升了软件开发效率和质量,支持软件的持续更新与优化,满足企业对员工电脑使用情况的监控与管理需求。
37 3
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
59 7
|
1月前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
45 5
|
1月前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
2月前
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
|
2月前
|
运维 Devops
自动化运维:从脚本到DevOps的进化之旅
在数字化时代,自动化运维不仅是提高生产效率的关键,更是企业竞争力的象征。本文将带领读者穿越自动化运维的发展历程,从最初的脚本编写到现代DevOps文化的形成,揭示这一演变如何重塑IT行业的工作模式。通过具体案例,我们将展示自动化工具和实践如何简化复杂任务,优化流程,并促进团队协作。你将发现,自动化运维不仅关乎技术的进步,更体现了人、流程和技术三者之间协同增效的深层逻辑。