zoukankan      html  css  js  c++  java
  • 关于多台虚拟机进行自动化部署的问题汇总(小白做笔记记录之用,大神请绕路~)

    首先贴上shell脚本代码(代码的前提条件是

    1.首先已经在各台虚拟机上都配置了repo的本地yum软链接,源服务器起名min2

    2.通过yum 下载scp软件 (用于跨机器进行文件传输拷贝) yum -y install scp

    3.各台机器的/etc/hosts与/etc/sysconfig/network中的IP地址与主机名已配好(否则会出现找不到主机的错误)

    以下是 boot.sh文件

    #!/bin/bash
    
    SERVERS="min1 min3 min4"
    PASSWORD=hadoop
    BASE_SERVER=min2
    
    auto_ssh_copy_id() {
        expect -c "set timeout -1;
            spawn ssh-copy-id $1;
            expect {
                *(yes/no)* {send -- yes
    ;exp_continue;}
                *assword:* {send -- $2
    ;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
        ssh root@$SERVER /root/install.sh
    done
    

     以下是install.sh文件

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

    运行boot.sh文件  ./boot.sh

    我出现了两个问题:

    首先,expect(shell脚本中的嵌套命令)命令不存在,下载expect包  yum -y install expect(本地服务器下载即可,其他虚拟机无需下载)

    其次,出现

    ssh-copy-id:/usr/bin/ssh-copy-id: ERROR: No identities found

    这个问题,问题来源是boot.sh文件中的

    spawn ssh-copy-id $1;这句代码,查资料后是因为没有生成公钥与私钥

    解决办法:

     ssh-keygen

    #以上命令等价于 ssh-keygen -t rsa

    #-t:指定密钥的类型,默认为SSH-2 的rsa类型;      这个命令,会在/etc/.ssh文件夹下生成id_rsa.pub和id_rsa两个文件

    重新运行boot.sh,问题解决!!

     

    小白做笔记记录之用,大神请绕路~

     

     

  • 相关阅读:
    [LeetCode]Sliding Window Maximum
    判断两根线段是否相交
    求幂,我居然又没做出来
    C++集合运算函数总结 & 需要有序集合的操作
    effective stl读书笔记 & stl里面提供的算法 & emplace & ostream_iterator
    利用位操作的几道题目
    C++的new_handler
    TCP的可靠性 窗口滑动 拥塞控制
    关于高性能网络编程的一些知识
    三种连接 & DOS & SYNFLOOD & 防御
  • 原文地址:https://www.cnblogs.com/fjlcoding/p/9957976.html
Copyright © 2011-2022 走看看