如何完美克隆模板虚拟机

本文详细描述了如何通过创建新用户名、配置网络、编写xsync脚本实现克隆虚拟机模板并创建集群的过程,包括SSH免密登录的设置。
摘要由CSDN通过智能技术生成

如何完美的克隆虚拟机模板机创建集群

问题

​ 当我们在学习中想要搭建集群时,克隆一台虚拟机模板无疑是最快的方式,那么,该如何完美的克隆呢?下面给出详细步骤

本文章中克隆的虚拟机都另外创建新的用户名:lyxiho

步骤1:创建自己的用户名(如果不想创建自己的用户名,可跳转到步骤2)

  • 打开模板虚拟机,创建用户

    [root@hadoop100 ~]$ useradd lyxiho (用户名)
    [root@hadoop100 ~]$ passwd lyxiho  (为该用户创建密码) 
    
  • 为创建的用户赋予root权限

    修改配置文件

    [root@hadoop100 ~]$ vi /etc/sudoers
    

    在%wheel这行下面添加一行,如下所示

    ## Allow root to run any commands anywhere
    root    ALL=(ALL)     ALL
    
    ## Allows people in group wheel to run all commands
    %wheel  ALL=(ALL)       ALL
    lyxiho   ALL=(ALL)     NOPASSWD:ALL
    
    

    注:有些教程是添加到root的下一行,但是所有用户都属于wheel组,你先配置了lyxiho具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以lyxiho要放到%wheel这行下面。

  • 克隆的虚拟机中已经创建好/opt/software和/opt/module这两个文件夹,但我们创建自己的用户名需要修改这两个文件夹的所属

    [root@hadoop100 ~]$ sudo chown lyxiho:lyxiho /opt/software/
    [root@hadoop100 ~]$ sudo chown lyxiho:lyxiho /opt/module/
    

到这里就已经完成了创建自己的用户名。

步骤2:克隆所需要的虚拟机(这里以克隆三台演示)

  • 克隆三台虚拟机,分别命名hadoop102、hadoop103、hadoop104,注意克隆时关闭模板机
    在这里插入图片描述

步骤3:完成虚拟机的网络配置

  • 克隆完成后打开三台虚拟机,修改网络配置

    修改克隆机IP,以下以hadoop102举例说明,后续两台依次修改为103,104即可

    (1)修改克隆虚拟机的静态IP

    [lyxiho@hadoop100 ~]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
    

    改成

    DEVICE=ens33
    
    TYPE=Ethernet
    
    ONBOOT=yes
    
    BOOTPROTO=static
    
    NAME="ens33"
    
    IPADDR=192.168.10.102
    
    PREFIX=24
    
    GATEWAY=192.168.10.2
    
    DNS1=192.168.10.2
    

    (2)保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。(一般无需操作)

  • 修改虚拟机主机名

    [lyxiho@hadoop100 ~]$ sudo vim /etc/hostname
    hadoop102
    
  • 配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts

    [lyxiho@hadoop100 ~]$ sudo vim /etc/hosts
    

    添加如下内容

    192.168.10.102 hadoop102
    192.168.10.103 hadoop103
    192.168.10.104 hadoop104
    
  • 重启克隆机hadoop102

    [lyxiho@hadoop100 ~]$ sudo reboot
    
  • 修改windows的主机映射文件(hosts文件)

    ①进入C:\Windows\System32\drivers\etc路径

    ②打开hosts文件并添加如下内容,然后保存

    192.168.10.102 hadoop102
    192.168.10.103 hadoop103
    192.168.10.104 hadoop104
    

步骤4:编写集群分发脚本xsync

  • 在用的家目录/home/lyxiho下创建bin文件夹

    [lyxiho@hadoop102 ~]$ mkdir bin
    
  • /home/lyxiho/bin目录下创建xsync文件,以便全局调用

    [lyxiho@hadoop102 ~]$ cd /home/lyxiho/bin
    [lyxiho@hadoop102 ~]$ vim xsync
    

    添加如下内容:(注意遍历机器时要修改机器名称与自己的主机名称相同)

    #!/bin/bash
    
    #1. 判断参数个数
    if [ $# -lt 1 ]
    then
      echo Not Enough Arguement!
      exit;
    fi
    
    #2. 遍历集群所有机器
    for host in hadoop102 hadoop103 hadoop104
    do
      echo ====================  $host  ====================
      #3. 遍历所有目录,挨个发送
      for file in $@
      do
        #4 判断文件是否存在
        if [ -e $file ]
        then
          #5. 获取父目录
          pdir=$(cd -P $(dirname $file); pwd)
          #6. 获取当前文件的名称
          fname=$(basename $file)
          ssh $host "mkdir -p $pdir"
          rsync -av $pdir/$fname $host:$pdir
        else
          echo $file does not exists!
        fi
      done
    done
    
  • 赋予脚本执行权限

    [lyxiho@hadoop102 bin]$ chmod 777 xsync
    
  • 测试脚本,将该脚本分发到另外两台机器

    [lyxiho@hadoop102 bin]$ xsync xsync
    

步骤5:配置SSH免密登录

  • hadoop102上生成公钥和私钥:

    [lyxiho@hadoop102 .ssh]$ cd .ssh
    [lyxiho@hadoop102 .ssh]$ ssh-keygen -t rsa
    

    然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

  • 将hadoop102公钥拷贝到要免密登录的目标机器上

    [lyxiho@hadoop102 .ssh]$ ssh-copy-id hadoop102
    [lyxiho@hadoop102 .ssh]$ ssh-copy-id hadoop103
    [lyxiho@hadoop102 .ssh]$ ssh-copy-id hadoop104
    

​ 其余两个机器相同操作即可

结语

完成以上操作,即可完成对模板虚拟机的完美克隆,本人正在学习B站尚硅谷的大数据教程,根究自己克隆配置虚拟机时出现的问题,将尚硅谷的文档整合了起来,大概分为这些步骤。如有错误以及不妥的地方,欢迎大家指正

  • 17
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值