Linux系列——自动化批量安装软件

简介: Linux系列——自动化批量安装软件

前言

使用脚本为集群自动化安装软件,能给开发者省很多时间。

准备工作:

带有安装包的服务器需要有httpd、scp命令(也可以写到脚本里面)

yum install -y httpd openssh-clients

被安装的服务器需要有wget命令

yum install -y openssh-clients wget


步骤

1. 编写脚本文件 boot.sh

#!/bin/bash
# 需要安装软件的服务器列表
SERVERS="192.168.137.112 192.168.137.113"
# 登陆服务器的root密码
PASSWORD=123456
# 带有安装包的服务器
BASE_SERVER=192.168.137.111
yum install -y httpd openssh-clients
auto_ssh_copy_id() {
  expect -c "set timeout -1; #设置不超时
    spawn ssh-copy-id $1; #启动新进程,用于执行shell命令
    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@$SERVER
  ssh root@$SERVER /root/install.sh
done

2.编写脚本文件 install.sh

#!/bin/bash
BASE_SERVER=192.168.137.111
yum install -y openssh-clients 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


3.给脚本加执行权限

chmod +x boot.sh install.sh

4.执行boot.sh

./boot.sh

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
1月前
|
Ubuntu Linux 网络安全
Linux服务器上安装软件
Linux服务器上安装软件
73 2
|
1月前
|
Ubuntu Linux 网络安全
在Linux上安装软件有多种方法
在Linux上安装软件有多种方法
107 64
|
3月前
|
Linux 开发工具
Linux查看已经安装软件的版本,安装软件的路径,以及dpkg、aptitude、apt-get、apt工具的使用
Linux查看已经安装软件的版本,安装软件的路径,以及dpkg、aptitude、apt-get、apt工具的使用
127 2
Linux查看已经安装软件的版本,安装软件的路径,以及dpkg、aptitude、apt-get、apt工具的使用
|
3月前
|
Web App开发 编解码 Linux
使用Selenium自动化测试解决报告生成失败问题及Linux部署指南
这篇文章介绍了使用Selenium自动化测试解决报告生成失败问题的方法,包括Linux环境下的部署指南和代码实现。
46 1
使用Selenium自动化测试解决报告生成失败问题及Linux部署指南
|
2月前
|
安全 Linux 测试技术
Kali Linux预装的自动化渗透测试工具
Kali Linux预装的自动化渗透测试工具
150 2
|
3月前
|
Ubuntu Linux 持续交付
在Linux中,如何在Linux中使用Ansible进行自动化部署?
在Linux中,如何在Linux中使用Ansible进行自动化部署?
|
3月前
|
运维 Linux 持续交付
在Linux中,如何进行配置管理和自动化部署?
在Linux中,如何进行配置管理和自动化部署?
|
3月前
|
存储 监控 Linux
|
3月前
|
存储 Linux 测试技术
在Linux中,如何使用expect进行自动化交互式应用程序测试?
在Linux中,如何使用expect进行自动化交互式应用程序测试?
|
3月前
|
Linux 程序员 Python
python-office支持Mac和Linux吗?自动化办公用这个就够了
大家好,我是程序员晚枫。今天解答关于`python-office`是否支持Mac和Linux的问题。起初因需调用Office功能,该项目不完全支持这两个系统。现已通过拆分子项目解决了这一限制,例如`poexcel`可在多平台上运行Excel相关功能。只需简单修改导入语句,如使用`import poexcel`替代`import office`,即可在Mac和Linux上顺利执行。学习或使用中有任何疑问,欢迎留言交流!