美文网首页程序员
VirtualBox + Vagrant + CentOS

VirtualBox + Vagrant + CentOS

作者: 黏着Leon的小尾巴 | 来源:发表于2019-03-20 11:09 被阅读0次

    准备工作

    1. VirtualBox
    2. Vagrant
    3. CentOS 镜像

    VirtualBox 下载地址

    image

    Vagrant 下载地址

    安装完成后,终端输入:vagrant -v

    image

    官方镜像

    image-20190319112851082

    Vagrant

    安装 CentOS

    # 新建 vagrant 目录
    mkdir ~/vagrant
    cd ~/vagrant
    
    # 官方镜像:在线安装
    vagrant init centos/7
    
    # 下载镜像:自定义镜像名、指定镜像路径(推荐)
    # 官方:https://vagrantcloud.com/centos/boxes/7/versions/1902.01/providers/virtualbox.box
    # vagrant box add <boxName> <boxFilePath>
    vagrant box add centos7 ~/Downloads/centos-7.0-x86_64.box
    

    备注:目录下会生成配置文件 —— Vagrantfile

    安装插件

    1. vagrant-hostmanage —— 用主机名访问(虚拟机之间访问、宿主机访问虚机)
    2. vagrant-vbguest —— 自定义共享目录(必须,解决异常:mount: unknown filesystem type 'vboxsf')
    vagrant plugin install vagrant-hostmanage
    vagrant plugin install vagrant-vbguest
    

    自定义配置

    修改 Vagrantfile(在 end 之前)

    config.vm.network "private_network", ip: "192.168.33.10"    # 虚拟机 IP
    config.vm.synced_folder "~/websvr", "/websvr"               # 共享目录
    
    # 可选
    config.vm.provision "shell", path: "bootstrap.sh"           # 启动时运行脚本
    

    Vagrantfile 参数说明

    config.vm.define 多台主机

    config.vm.define "node1" do |node1|
    end
    config.vm.define "node1" do |node2|
    end
    config.vm.define "node1" do |node3|
    end
    

    *.vm.network 虚拟机网络

    nat             # 默认方式
    forwarded_port  # 端口转发
    private network # 私有网络(仅主机模式)
    public network  # 公有网络(桥接模式)
    
    config.vm.network "forwarded_port", guest: 80, host: 8080
    config.vm.network "private_network", ip: "192.168.33.10"
    config.vm.network "public_network"
    

    *.vm.hostname 定义虚机主机名

    config.vm.define "node1" do |node1|
        node1.vm.network "private_network", ip: "192.168.33.11"
        node1.vm.network "public_network"
        node1.vm.hostname = "node1"
    end
    

    访问 CentOS

    # 新建共享目录
    mkdir ~/websvr
    
    vagrant up      # 启动虚拟机(默认用户:vagrant)
    vagrant ssh     # 访问虚拟机
    

    宿主机:ping 192.168.33.10

    备注:

    1. 每次更改 Vagrantfile 后,需要重启虚拟机 vagrant reload
    2. 提高安全性,root 账户建议通过密钥登录。

    如果出现一下报错:

    Permission denied - /Users/xxx/.vagrant.d/data/machine-index/index (Errno::EACCES)
    
    1. rm -rf ~/.vagrant.d
    2. 启动:vagrant up

    打包镜像

    1. 关闭虚拟机:vagrant halt
    2. mkdir -p backup/centos7
    3. 打包:vagrant package --output backup/centos7/centos7.box --vagrantfile Vagrantfile

    常用命令

    vagrant -v          # 查看版本
    vagrant status      # 查看状态
    vagrant up          # 启动虚拟机
    vagrant ssh         # 访问虚拟机
    vagrant reload      # 重启虚拟机
    vagrant suspend     # 挂起虚拟机(虚拟机内存都保存在硬盘上,启动可快速恢复)
    vagrant resume      # 恢复虚拟机(与挂起对应)
    vagrant halt        # 关闭虚拟机
    vagrant destroy     # 销毁虚拟机
    vagrant package     # 打包镜像(以后任何地方都能用)
    
    # box
    vagrant box list    # 镜像列表
    vagrant box add     # 添加镜像
    vagrant box remove  # 删除镜像
    

    相关文章

      网友评论

        本文标题:VirtualBox + Vagrant + CentOS

        本文链接:https://www.haomeiwen.com/subject/lxxamqtx.html