Vagrant实战
1.Vagrant是什么?
-
Vagrant是一个虚拟机管理软件,可以使用命令直接从云端下载虚拟机的镜像然后进行创建和管理,Vagarnt集成了主流的虚拟机管理工具。vmvare 和 virtualbox,默认使用virtualbox
-
Vagrant的精髓在一个Vagrantfile里面,和docker的Dockfile功能上一样。我们只需要把需要安装部署的步骤写在Vagrantfile里面,便可以轻松部署。
ps:利用代码进行来进行想要的操作 -
Vagrant还支持把当前系统做成一个.box后缀命名的镜像,类似docker的image,可轻松实现环境的移植。
-
Vagrant可以把配置好的环境打包成一个box,分享给其他人直接使用。
2.安装Virtualbox
VirtualBox是一个免费开源的虚拟机,相对VMware来说更加小巧。
ps:由于Vagrant没有图形界面,如果想对虚拟机来进行操作的话
本次我们选择Virtualbox来进行操作
下载地址
https://www.virtualbox.org/wiki/Downloads
1.安装
2.配置
ps:这个配置中的储存路径一定要有充足的空间。用来作为虚拟机的“硬盘”,储存日志等
3.安装Vagrant
1.下载
https://www.vagrantup.com/downloads
2.配置
-
ps:这个环境地址是储存vagrant中的box文件
-
通过vagrant box add 这个命令来将本地box文件添加到vagrant中
-
vagrant的box默认下载用户的宿主目录\vagrant_box
4.从云端下载box
http://www.vagrantbox.es/
5.Vagrantfile
1.初始化配置文件
创建目录
E:\java\virtual\s13
ps:创个目录(一个对虚拟机操作的目录)
来进行对box文件和其他文件进行操作为后续虚拟机创建进行铺路
2.在目录中执行
vagrant init centos
#产生配置文件
3.修改配置文件如下
(1)Vagrantfile文件参考如下
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
(1..3).each do |i|
config.vm.define vm_name = "s#{i}" do |config|
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--name", vm_name]
v.customize ["modifyvm", :id, "--memory", "8192"]
v.customize ["modifyvm", :id, "--cpus", "2"]
end
config.vm.box = "centos_v1"
config.vm.hostname =vm_name
config.ssh.username = "root"
config.ssh.password = "vagrant"
# config.ssh.shell = "powershell"
#config.ssh.shell = "bash -l"
config.vm.network :private_network, ip: "192.168.56.7#{i}" config.vm.provision :shell, :path => "bootstrap.sh"
end end end
(2)bootstrap.sh
#!/usr/bin/env bash
# The output of all these installation steps is noisy. With this utility
# the progress report is nice and concise.
echo "Update /etc/hosts"
cat > /etc/hosts <<EOF
127.0.0.1 localhost
192.168.56.71 s1
192.168.56.72 s2
192.168.56.73 s2
EOF
echo "Disable iptables"
setenforce 0 >/dev/null 2>&1 && iptables -F
### Set env ###
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
6.添加box
ps:这里以我下载的box为例!!!
我下载的是这个centos_v1.box
此处把本地box或者从云端下载下来的box添加到vagrant中
F:\java\virtual\s13>vagrant box add centos_v1 ./centos_v1.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos_v1' (v0) for provider:
box: Unpacking necessary files from: file://F:/java/virtual/s13/vagrant-centos-7.2.box
box:
==> box: Successfully added box 'centos_v1' (v0) for 'virtualbox'!
1. 列表本地box
F:\java\virtual\s13>vagrant box list
centos_v1 (virtualbox, 0)
2.删除box
F:\java\virtual\s13>vagrant box remove centos-travel
Removing box 'centos-travel' (v0) with provider 'virtualbox'..
7.安装虚拟机
1.安装
#必须在vagrantfile所在的目录安装
vagrant up
成功案例
8.连接虚拟机
成功展示