创建设计公司网站,网站应用程序池,江油网站制作,产品开发流程管理任务把weijie主机jdk文件安装到weijie1中。 首先再各台主机中安装必要的命令#xff1a; expect、wget、httpd、ssh 执行命令 如#xff1a;expect提示命令不存在#xff0c;则分别安装命令
yum install expect
yum install wget
yum install httpd
yum install ssh
开…任务把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/目录下
[rootweijie ~]# 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/bashSERVERS192.168.1.113 #weijie1中的ip地址
PASSWORD123456 #weijie1登录密码
BASE_SERVER192.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脚本文件 打开文件
[rootweijie ~]# vi script/install.sh 写入下面代码
#!/bin/bashBASE_SERVERweijie
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文件。