制作vagrant镜像

1.下载你需要的镜像,以ubuntu为例
wget http://d16r8ew072anqo.cloudfront.net/ubuntu-16.04.6-server-amd64.iso

2.安装virtual box

3.把镜像放到vbox盘片中,启动
(请选择英文版,中文版有个busybox-initramfs可能会报错)
狂点下一步,默认安装即可,主机名最好vagrant,有个选项不要选LVM安装

4.装好后进入 虚拟机
5.

mkdir ~/.ssh
cd ~/.ssh
wget https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant
wget https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub
mv vagrant.pub authorized_keys

6.安装vbox虚拟机增强工具,用于共享目录
vbox菜单,Devices -> Insert Guest Additions
插入光盘
7.sudo mount /dev/sr0 /media/cdrom
8.sudo /media/cdrom/VBoxLinuxAdditions.run (Linux用户执行这个,windows用户执行xxx.exe)
9.sudo apt install make gcc perl -y
9.1

不好意思这里漏了一步,需要刚给vagrant配置用户,组,免密登录
sudo groupadd admin
sudo usermod -G admin vagrant
sudo chmod +w /etc/sudoers
sudoers文件把admin的那一句代码修改成如下:
%admin ALL=NOPASSWD: ALL
sudo chmod -w /etc/sudoers
sudo apt-get install puppet puppetmaster
sudo apt-get install openssh-server

10.关闭虚拟机
11.进入宿主机(实体机)的虚拟机磁盘目录
在这里插入图片描述
12.
vagrant package --output ubuntu16.box --base ubuntu16
在这里插入图片描述
13.等
在这里插入图片描述
14.
把ubuntu16.box移动到一个干净的目录,并且在目录下创建Vagrantfile文件,内容如下

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.ssh.username = "vagrant"
  config.ssh.password = "vagrant"
  config.vm.box = "ubuntu16.box"
  config.vm.network "forwarded_port", guest: 2222, host: 2222
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.network "private_network", ip: "10.0.0.8"

  config.vm.synced_folder "~/zys/code", "/home/vagrant/code", id: "v-root", mount_options: ["rw", "tcp", "nolock", "noacl", "async"], type: "nfs", nfs_udp: false

  config.vm.provision "shell", inline: <<-SHELL
  chown vagrant:vagrant /home/vagrant/.ssh -R
  SHELL
end

共享目录根据你的实际情况去改
15.在目录下执行

vagrant box list
vagrant box remove 原来的box(如果有)
vagrant box up

制作vagrant镜像_第1张图片
16.
vagrant ssh -> vagrant
17.enjoy!
制作vagrant镜像_第2张图片

注意事项:
1.如果vagrant up发现卡主了,那么十有八九是你的虚拟增强组件没装,导致目录非法共享
2.vagrant ssh可以连接虚拟机,ssh [email protected]也可以连接,你懂的,咱们在配置文件里写死了一个私有ip地址


有任何问题请给我留言

你可能感兴趣的:(开发工具,运维)