• 自动化部署脚本,给每一台主机装上JDK,且配好环境变量


    centos6.7

    当我们有很多台主机,想在每台机器上都安装一样的某些软件,当然,一台机器一台机器安装也是可以的,但是如果有一键安装所有机器上的软件那是不是很激动人心呢!

    首先我们需要制作一台服务器,并把软件包放在我们的服务器上

    首先进入 /var/www/html文件夹

    cd /var/www/html
    创建一个文件夹soft

    mkdir soft
    把事先下载好的软件包放在这个目录下(记住,这个过程所有机器需要访问80端口,所以最好先把防火墙关掉)

    关掉防火墙

    service iptables stop
    此时在主机浏览器上输入主机IP/soft应该就可以显示你上传的软件,如下图:


    这里我的主机IP是192.168.6.128,上传的文件是jdk,我的目的也是给每一台机器安装jdk

    配好服务器后,我们就可以写shell脚本了

    boot.sh

    1. #!/bin/bash
    2. SERVERS="192.168.6.129 192.168.6.130" #这是我需要安装软件的两台机器的ip
    3. PASSWORD=123456 #这是主机的密码,建议各主机密码设成一样的
    4. BASE_SERVER=192.168.6.128 #这是我主机的IP
    5. auto_ssh_copy_id() {
    6. expect -c "set timeout -1;
    7. spawn ssh-copy-id $1;
    8. expect {
    9. *(yes/no)* {send -- yes ;exp_continue;}
    10. *assword:* {send -- $2 ;exp_continue;}
    11. eof {exit 0;}
    12. }";
    13. }
    14. ssh_copy_id_to_all() {
    15. for SERVER in $SERVERS
    16. do
    17. auto_ssh_copy_id $SERVER $PASSWORD
    18. done
    19. }
    20. ssh_copy_id_to_all
    21. for SERVER in $SERVERS
    22. do
    23. scp install.sh root@$SERVER:/root
    24. ssh root@$SERVER /root/install.sh
    25. done
    install.sh

    1. #!/bin/bash
    2. BASE_SERVER=192.168.6.128
    3. yum install -y wget
    4. wget $BASE_SERVER/soft/jdk-7u45-linux-x64.tar.gz
    5. tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local
    6. cat >> /etc/profile << EOF
    7. export JAVA_HOME=/usr/local/jdk1.7.0_45
    8. export PATH=$PATH:$JAVA_HOME/bin
    9. EOF
    把这两个shell脚本拷到你的主机上,并赋予两个shell脚本执行权限

    chmod +x install.sh boot.sh
    接下来就可以执行脚本了

    ./boot.sh
    但可能会报错:一般有如下可能

    1、防火墙没关,因为要访问80端口

    2、机器没有scp,安装scp

    yum install -y openssh-clients
    3、机器没有expect 安装expect
    yum install -y expect
    再执行boot.sh文件,一般就能顺利完成安装
    安装成功后,在机器中输入java有如下界面表示已安装成功,其他软件可照这个办法自动安装部署
    1.   









  • 相关阅读:
    对pg_latch.c 的来源探索
    对PostgreSQL的执行计划的初步学习
    21个css和Ajax表格
    23种设计模式有趣诠释
    Spket IDE, Ext开发人员的紫色匕首~
    Sql Server 2008 Reporting Services系列(一)
    C#积累(二)——ASP.NET的Session会加锁
    在TSQL语句中访问远程数据库(openrowset/opendatasource/openquery)
    ASP.NET视图的保存与加载解析(一)——视图的保存
    C#积累(一)——扩展方法就近原则和匿名类型的成员探讨
  • 原文地址:https://www.cnblogs.com/jpfss/p/9716969.html
Copyright © 2020-2023  润新知