• 使用Vagrant创建CentOS虚拟机


    使用Vagrant创建CentOS虚拟机

    Vagrant是一款由HashiCorp公司提供的,用于快速构建虚拟机环境的软件。本节我们将使用Vagrant结合Oracle VM VirtualBox快速地在win10环境下构建CentOS7虚拟机。在此之前需要先安装好 VagrantVirtualBox

    构建CentOS7虚拟机

    1. https://app.vagrantup.com/boxes/search下搜索centos:

    1. 在win10任意盘符下创建 vagrant_vm 目录(注意目录最好不要有中文和空格),然后在该目录下使用cmd执行命令:
    vagrant init centos/7
    

    1. 执行 vagrant up 启动(这时候最好提前打开VirtualBox),然后会出现以下界面,一直等待完成后即可,在完成后,会在 VirtualBox 的列表里会出现一台正在运行的虚拟机:

    1. 在上面的安装过程中我们会发现,过程非常的缓慢,我们可以用以下的方式加速:

    在上面的日志中可以找到这么一行:

    Downloading: https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box
    

    后面这个URL就是下载地址了,将它黏贴到迅雷等下载工具下载即可。然后将下载好后的xxx.box文件复制到 vagrant_vm 目录下,并且重命名为 centos7.box(删除centos7.box之外的文件和目录,只保留centos7.box一个文件)

    接着在vagrant_vm下运行命令,导入已存在的镜像(box文件):

    vagrant box add centos/7 centos7.box
    

    初始化box,接着执行命令:

    // 注意此处的名称和上方保持一致
    vagrant init centos/7
    

    初始化成功后执行命令启动:

    vagrant up
    

    构建成功,效果和一开始在线下载构建是一样的。

    常见的几个vagrant命令

    - vagrant status

    查看虚拟机状态信息

    - vagrant halt

    关闭已经启动的虚拟机

    - vagrant up

    启动虚拟机

    - vagrant suspend

    暂停虚拟机,会保存暂停之前的状态

    - vagrant resume

    恢复暂停之后的虚拟机

    - vagrant reload

    重新启动虚拟机

    - vagrant destroy

    销毁已经创建的虚拟机

    - vagrant ssh

    命令行的模式链接虚拟机

    远程工具连接虚拟机

    在使用 vagrant ssh 的实际操作中发现,可能会出现如下的错误:

    在 Google上找了很多方法,说是 private key 文件的权限问题,但是都没有解决,后面直接使用ssh连接工具连接成功,具体的操作如下图:

    1. 先普通用户登陆

    2. 配置root用户登陆

    使用 vagrant 用户登陆成功后,可以使用下方命令切换到root用户

    su root
    
    // 密码
    vagrant
    

    但是这样还是不能直接使用root用户登陆,需要以下的操作:

    首先以默认身份登录,切换到root用户后,并修改 sshd 配置文件:

    vim /etc/ssh/sshd_config
    
    

    做如下变动

    # PermitRootLogin prohibit-password
    PermitRootLogin yes             # 允许 root 身份登录
    # PasswordAuthentication on
    PasswordAuthentication yes      # 可以使用密码登录
    

    重启 sshd 服务

    systemctl restart sshd
    

    然后使用 vagrant reload 命令直接重启虚拟机,这时我们就可以直接使用 root/vagrant 登陆了。

    目录共享

    Vagrant的根目录(就是我们一开始创建的vagrant_vm)和虚拟机里的/vagrant目录是共享的。当我们在 vagrant_vm 新建一个文件时,在虚拟机/vagrant的目录也有同样的内容

    自定义共享

    • 共享目录配置
    config.vm.synced_folder   
       "your_folder"(必须)   //物理机目录,可以是绝对地址或相对地址,相对地址是指相对与vagrant配置文件所在目录
      ,"vm_folder(必须)"    // 挂载到虚拟机上的目录地址
      ,create(boolean)--可选     //默认为false,若配置为true,挂载到虚拟机上的目录若不存在则自动创建
      ,disabled(boolean):--可选   //默认为false,若为true,则禁用该项挂载
      ,owner(string):'www'--可选   //虚拟机系统下文件所有者(确保系统下有该用户,否则会报错),默认为vagrant
      ,group(string):'www'--可选   //虚拟机系统下文件所有组( (确保系统下有该用户组,否则会报错),默认为vagrant
      ,mount_options(array):["dmode=775","fmode=664"]--可选  //dmode配置目录权限,fmode配置文件权限  默认权限777
      ,type(string):--可选     //指定文件共享方式,例如:'nfs',vagrant默认根据系统环境选择最佳的文件共享方式
    
    • 安装vbguest插件

    为防止挂载失败,提示如下图 because the filesystem "vboxsf" is not available 的问题,提前执行该命令安装插件

    安装如下的插件即可解决:

    vagrant plugin install vagrant-vbguest
    

    关闭更新和下载

    config.vbguest.auto_update = false #防止重新安装更新
    
    config.vbguest.no_remote = true #不从远程web端下载
    
    • 挂载共享目录

    编辑vagrant_vm文件夹下的Vagrantfile文件:

    在这行下面添加如下配置:

    config.vm.synced_folder ".","/vagrant",disabled:true    # 禁用vagrant的默认共享目录,不然有可能挂载失败
    config.vm.synced_folder "./data", "/vagrant_data", create:true, owner: "root", group: "root"
    

    配置的意思是将当前路径下的data文件夹和虚拟机的/vagrant_data,拥有者为root,群组为root,如果路径不存在则创建。

    修改了Vagrantfile文件需要执行 vagrant reload 重启。重启后我们在data文件夹下新建一个 test.txt 文件,然后连接虚拟机看看是否共享成功

    然后再次重启,连接虚拟机去查看/vagrant_data目录下是否共享成功

    网络配置

    虚拟机私有网络

    在 Vagrantfile 中开启网络的配置信息:

    然后使用命令vagrant reload重启虚拟机,重启后我们使用ping命令看是否可以在windows上访问到这个ip:

    连接虚拟机,使用 ip addr 查看其IP:

    虚拟机公有网络

    编辑Vagrantfile,将我们刚刚开启的私有网络配置注释,然后开启下面这行配置:

    然后重启虚拟机,重启过程中会让你根据当前网络环境选择:

    此处显示我的网络适配器的选项是 2,所以此处我输入了 2,重启好后连接虚拟机,查看其IP:

    公有网络和私有网络的区别是,公有网络是无线路由器自动分配的IP地址,并且在同一个wifi网络下的其他设备也是可以访问这个IP地址的。

    多主机配置

  • 相关阅读:
    三数之和(排序+双指针)
    数值的整数次方(类快速幂)
    Z字形变换
    相交链表
    牛妹的蛋糕
    安置路灯
    迷路的牛牛
    Office 2003的卸载 与 Office 2013 的安装
    解决“飞鸽传书”无法显示局域网用户的方法
    bcd(Binary-Coded Decimal‎缩写)
  • 原文地址:https://www.cnblogs.com/reroyalup/p/14239633.html
Copyright © 2020-2023  润新知