任务把weijie主机jdk文件安装到weijie1中。
首先再各台主机中安装必要的命令:
expect、wget、httpd、ssh
执行命令 如:expect提示命令不存在,则分别安装命令

yum install expect
yum install wget
yum install httpd
yum install ssh

开启httpd,方便通过http请求来访问虚拟机linux系统中的文件

service httpd start

第一步:
分别在两台主机关闭防火墙:
service iptables stop
把要部署的文件拷贝到www的目录下
cp 拷贝的文件路径 cd /var/www/html/目录下

[root@weijie ~]# cp jdk-8u161-linux-x64.tar.gz /var/www/html/soft/

再确认y即可。如果拷贝成功后,可以通过本机访问虚拟机www中的资源
会出现

第二步:
再配置自动化部署脚本
习惯在根目录下创建script文件夹,里面分别创建boot.sh(实现免密登录)和install.sh()两个脚本文件

mkdir script
touch boot.sh
touch install.sh

第三步:
写入脚本代码操作
打开boot.sh

vi boot.sh/boot.sh

写入代码:
注解:
spawn是进入expect环境后才可以执行的expect内部命令。
expect是一种脚本语言,它能够代替我们实现与终端的交互,我们不必再守候在电脑旁边输入密码,或是根据系统的输出再运行相应的命令。
ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。
send()是一个计算机函数,功能是向一个已经连接的socket发送数据

#!/bin/bash

SERVERS="192.168.1.113"   #weijie1中的ip地址
PASSWORD=123456   #weijie1登录密码
BASE_SERVER=192.168.1.112   #weijieip地址auto_ssh_copy_id(){expect -c "set timeout -1;spawn ssh-copy-id $1;   expect {*(yes/no)* {send -- yes\r;exp_continue;} #* *通配含有"*"内的字符串*assword:* {send -- $2\r;exp_continue;} #$2表示下面代码中的PASSWORD,引用密码eof        {exit 0;}}";
}ssh_copy_id_to_all(){for SERVER in $SERVERS #遍历要发送到各个主机的ipdoauto_ssh_copy_id $SERVER $PASSWORDdone
}
ssh_copy_id_to_allfor SERVER in $SERVERS
doscp install.sh  root@$SERVER:/rootssh root@$SERVER /root/install.shdone

配置install.sh脚本文件
打开文件

[root@weijie ~]# vi script/install.sh

写入下面代码

#!/bin/bash

BASE_SERVER=weijie
wget $BASE_SERVER/soft/jdk-8u161-linux-x64.tar.gz #待发送的文件
tar -zxcf jdk-8u161-linux-x64.tar.gz -C /usr/local #解压到对应的local文件夹目录下
cat >> /etc/profile << EOF #将EOF中的内容追加到profile内容中
export JAVA_HOME=/usr/local/jdk1.8.0_161 #配置环境变量
export PATH=\$PATH:\$JAVA_HOME/bin
~                                        

第四步:
执行脚本文件

sh boot.sh

如果出现如下,说明部署成功

然后在wiejie1 root目录中可以看见jdk文件。

linux如何自动化部署脚本实现免密登录并访问资源相关推荐

  1. linux搭建sftp服务器并设置免密登录

    参考资料:linux环境快速搭建sftp服务以及设置免密 - 渐逝的星光 - 博客园 (cnblogs.com) 网上很多搭建sftp的文章,最后免密登录设置都有点问题,研究了一下终于通了,做个记录 ...

  2. Linux操作之多台服务器配置免密登录

    在进行多台服务器的使用时,如果每个都去进行输密码的话很麻烦,为了简单一点,我们可以配置多台服务器之间的免密登录,这个免密登录是多台服务器之间相互登录是免密的. 概述 我这里配置的是三态服务器(虚拟服务 ...

  3. 通过ssh远程登录linux的原理过程和配置免密登录

    1.总结通过ssh远程登录linux的原理过程 基于口令的认证 客户端和服务端建立TCP连接 协商阶段 双方进行ssh版本协商 密钥协商阶段 在服务器端生成一对密钥,将公钥传递给客户端,客户端将密钥C ...

  4. linux使用同一密钥对实现互相免密登录

    准备两台主机 192.168.191.133   192.168.191.121 先在133主机上生成密钥信息 [root@zabbix ~]# ssh-keygen -t rsa -P '' -f ...

  5. [linux] redhat 7 ssh 安装配置免密登录

    安装ssh yum install openssh 查看端口 netstat -ntpl netstat -ntpl | grep :22 启动和关闭 service sshd restart/sta ...

  6. gitlab ci 自动化部署_前端gitLab加jenkins自动化构建和部署,以及服务器常用的linux命令行操作,免密登录...

    常用的linux命令行操作 将项目部署到服务器后,需要查看文件是否已经部署成功,已经对文件进行增删改查操作,就需要用到命令行操作,常用操作如下: ll 罗列出当前文件或目录的详细信息,含有时间.读写权 ...

  7. Linux运维:Shell脚本实现ssh免密登录远程服务器

    LInux系统日常运维过程中,经常需要在本地运行脚本执行对远程主机的命令,正常情况下,ssh登录远程服务器时会提示输入密码,这会影响到脚本的自动执行(因为shell脚本中没有自动填充密码的命令).有三 ...

  8. linux100台服务器免密,多台Linux服务器之间互相免密登陆,脚本同步免密

    多台Linux服务器之间互相免密登陆,脚本同步免密 环境: 三台Linux 服务器 IP                          Release                        ...

  9. shell脚本部署免密登录

    shell脚本部署免密登录 创建一个目录,用来存放脚本 [root@localhost scripts]# tree . ├── host └── ssh.sh0 directories, 2 fil ...

最新文章

  1. 阿里云风险识别决策引擎发布
  2. Python 3.5.2建立与DB2的连接
  3. Angular和SAP C4C的事件处理队列 1
  4. spring+struts2+mybatis
  5. Multimodal —— 看图说话(Image Caption)任务的论文笔记(二)引入attention机制
  6. 调整Word中英文与汉字之间的空隙
  7. C++结构体字节对齐
  8. Android UI设计中一些不错的示例及第三方控件
  9. 自动化运维脚本模块-stmplib,emai模块
  10. 前沿 | 社区问答系统及相关技术
  11. ibm3400服务器改win7系统,dell3578win10改win7系统bios如何设置_戴尔win10改win7系统bios设置步骤...
  12. 国内外IoT系统介绍
  13. 在VC中用GDI+绘制角度可变的颜色渐变效果-.NET教程,VB.Net语言[转]
  14. Factorization Machines 因式分解机 论文学习笔记
  15. MATLAB能进行拉氏变换吗,matlab拉氏反变换
  16. 【美图 - 计算机视觉岗】2018 年在线笔试考点:选择 + 编程(顺时针旋转数组90°)
  17. 科研快报 | 三代测序技术-海水微生物态,助力海水微生态及微生物基因组研究
  18. 表格标签初学者,制作一个个人简历
  19. 计算机应用程序没声音,详细教您win7没有声音怎么办
  20. 易语言开发免费版的快手去视频水印软件!超简单

热门文章

  1. XMPP扩展协议详解
  2. JAVA进阶教学之(泛型)
  3. java jmeter_使用Jmeter中的Java Request进行性能测试
  4. python deepcopy报错_python 字典对象赋值之deepcopy遭遇的问题及解决过程(lxml惹的祸)...
  5. curl shell 失败_linux – curl命令不在bash中通过shell脚本执行
  6. 电脑机器人_【头条】厚积薄发!卡达电脑智能机器人之纸箱码垛机赋能智能工厂...
  7. java mongodb gridfs_查询MongoDB GridFS元数据(Java)
  8. mysql集群fuzhi_MySQL集群 和MySQL主从复制的不同
  9. python 类方法 函数_Python OOP类中的几种函数或方法总结
  10. 计算机主机接线视频教程,电脑主板跳线怎么接?电脑机箱与主板跳线接法图解教程...