使用vagrant基于官方的box制作自己的基础box

156 阅读1分钟

使用vagrant启动虚拟机

mkdir base && cd base
cat >Vagrantfile<<EOF
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  # centos-7.4-docker-17为你想使用的基础box
  config.vm.box = "centos-7.4-docker-17"
  config.ssh.insert_key = false
  config.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--name", "will"]
  end
  config.vm.synced_folder ".", "/vagrant", disabled: true
end
EOF

# 启动
vagrant up

登录配置安装相关软件

# 使用xshell等ssh工具登录
# 配置源
# 安装配置所需要的软件

# 安装完成关机前做如下清理操作

# 删除网卡mac信息
rm -f /etc/udev/rules.d/70-persistent-net.rules

# 删除临时文件
yum clean all
apt-get clean
rm -rf /tmp/*
rm -f /var/log/wtmp /var/log/btmp

# 清除命令历史记录
history -c
> .bash_history
sudo su - vagrant
history -c
> .bash_history

# 关机
vagrant halt

制作基础box

cat >Vagrantfile.base<<EOF
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
    # Disable synced folders
    config.vm.synced_folder ".", "/vagrant", disabled: true
end
EOF

# will为之前启动时设置的vm名
vagrant package --base will --vagrantfile Vagrantfile.base --output will-base.box

测试

# 添加制作完成的box
vagrant box add base will-base.box

# 初始化
vagrant init base

# 启动
vagrant up

# 登录
# 如果能ssh连接成功,表示基础box配置正确
vagrant ssh-config
vagrant ssh

参考文档

  • https://thornelabs.net/2013/11/11/create-a-centos-6-vagrant-base-box-from-scratch-using-virtualbox.html
  • https://www.dravetech.com/blog/2016/01/14/vagrant_box_ios_xr.html
  • http://blog.pangyanhan.com/posts/2015-11-10-creating-a-vagrant-base-box.html