基于centos7.7 使用VirtualBox制作Vagrant box

使用virtualbox制作符合自己需求vagrant box,之前在网上找了一些教程,有的很是有坑的。今天尝试了一下。用的是centos7.7的mini镜像

 

VirtualBox 先安装 5.2.20(之前安装docker-tool自带的)

Vagrant 再安装 2.2.7

windows 需开启VT-x / AMD-V硬件加速 BIOS 找到 Intel Virtual Technology

下载CentOS-7-x86_64-Minimal-1908.iso镜像

 

  1. 打开VirtualBox安装centos7.7的虚拟机,安装自己的需求选择内存和硬盘,这里我选择的内存为3G,硬盘为30G,开发足够了(名称vagrant-centos-77)
  2. 设置root密码为vagrant,非root用户为vagrant密码vagrant
  3. 以root账户登录,设置网络,在这之前应该ping不通外网
    1. vi /etc/sysconfig/network-scripts/ifcfg-enp0s3设置NOBOOT,改为yes
    2. 基于centos7.7 使用VirtualBox制作Vagrant box
    3. 最后重启网络   :service network restart 
    4. 如果ping不通外网把防火墙关闭
    5. systemctl stop firewalld.service #停止firewall  
    6. systemctl disable firewalld.service #禁止firewall开机启动
  4. 配置 vagrant 账号免密操作。在 root 下面增加一行 vagrant ALL=(ALL) NOPASSWD:ALL 保存退出。
    1. chmod 0777 /etc/sudoers
    2. vi /etc/sudoers
    3. 基于centos7.7 使用VirtualBox制作Vagrant box
    4. 执行 chmod 0440 /etc/sudoers 恢复默认权限。
  5. 配置ssh登录
    1. 默认centos7会安装openssh,如果没有安装执行:yum install openssh-server
    2. vi /etc/ssh/sshd_config 把一下内容取消注释
    3. 基于centos7.7 使用VirtualBox制作Vagrant box
  6. 下载 vagrant 官网公钥(这个我在做的过程中,发现公钥好像没用了,vagrant会自动生成公钥的),并修改.ssh为vagrant组
    1. cd /home/vagrant && mkdir .ssh
    2. wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
    3. mv vagrant.pub .ssh/authorized_keys
    4. chown vagrant:vagrant -R .ssh
  7. 设置共享目录。安装增强功能,在安装之前需要安装编码工具
    1. 方法一,手动安装工具
      • yum install -y gcc gcc-c++ make bzip2 kernel kernel-devel
    2. 方法二,官方推荐(不过我发现还是需要安装 kernel kernel-devel)
      • yum update
      • yum groupinstall "Development Tools"
      • yum install -y kernel kernel-devel
    3. 关机后设置存储,挂上增强包的iso
    4. 基于centos7.7 使用VirtualBox制作Vagrant box
    1. 用root登陆后执行安装 (查看lsscsi (适用于centos7) lsblk  (适用于ubuntu))
    1. cd / && mkdir cdrom && mount /dev/cdrom /cdrom
    2. cd  /cdrom && ./VBoxLinuxAdditions.run
    3. 在安装过程中会有一个错误,原因可以查看日志,好像是桌确实桌面环境的包,网上说要安装xorg-x11-server-Xorg,如果没有图形界面,我不建议装,这个不影响结果,安装包会自动跳过
  1. 配置网络设置,添加一个转到主机2222的端口,好像还要添加一个网卡
    1. 网卡一
    2. 基于centos7.7 使用VirtualBox制作Vagrant box
    3. 网卡二
    4. 基于centos7.7 使用VirtualBox制作Vagrant box
  2. 导出已经安装好的盒子
    1. vagrant package --base  虚机中的名字 --output  自己给盒子起的名字.box
    2. 基于centos7.7 使用VirtualBox制作Vagrant box
  3. 验证自己制作的盒子
    1. vagrant box add centos77 vagrant-centos-base77.box
    2. vagrant init centos77
    3. Vagrant up
    4. 基于centos7.7 使用VirtualBox制作Vagrant box
    5. 已经登陆上去了,贴一下我的vagrantfile
    6. 基于centos7.7 使用VirtualBox制作Vagrant box