Vagrant基础使用方法

目录

  • 一、Vagrant简介
  • 二、安装Virtualbox
    • 1. 安装目录
    • 2.配置
  • 三、安装Vagrant
    • 1.下载
    • 2.安装
    • 3.配置
  • 四、安装centos7虚拟机
    • 1.下载box
    • 2.Vagrantfile文件
      • 2.1 初始化配置文件
      • 2.2 修改Vagrantfile配置文件
      • 2.3 准备好boortstrap.sh脚本文件
    • 3.准备box
      • 3.1 列表本地box
      • 3.2 添加box
      • 3.3 查看本地box列表是否添加成功
    • 4.安装虚拟机
      • 4.1 安装
      • 4.2 测试
    • 5.常用指令
      • 5.1 启动
      • 5.2 关闭
    • 6.自定义box
      • 6.1 安装vim
      • 6.2 关闭虚拟机
      • 6.3 打包虚拟机
      • 6.4 删除现有的虚拟机
      • 6.5 把centos_v2添加到vagrant中
      • 6.6 修改Vagrantfile文件,设置box使用centos_v2![在这里插入图片描述](https://img-blog.csdnimg.cn/5accd22ad98f4007bd95bad4e8dc5cdd.png)
      • 6.7 使用已经安装vim的box安装新的虚拟机
    • 7.命令和配置文件

一、Vagrant简介

Vagrant是一个比较流行的虚拟机管理软件,使用Vagrant 可以让我们用命令直接从云上下载虚拟机的镜像,然后进行创建和管理等,vagrant集成了主流的虚拟机管理工具vmvare 和 virtualbox,默认使用virtualbox
vagrant 的精髓在一个 Vagrantfile 里面,和 docker 的 Dockerfile 功能上一样。我们只需要把需要安装部署的步骤写在 Vagrantfile 里面,便可以实现轻松部署。vagrant 还支持把当前系统做成一个.box 后缀命名的镜像,类似 docker 的 image,可轻松实现环境的移植。
vagrant 可以把配置好的环境打包成一个box,分享给其他人直接使用。
在容器流行之前,Vagrant 就是用来编排虚机和自动部署开发环境的,有了 Docker/Kubernetes 之后,直接用容器来编排应用确实更简单。但是还有一些工作,例如容器平台自身的安装,多节点集群的部署测试等,更方便用虚拟机解决。
Vagrant基础使用方法_第1张图片

二、安装Virtualbox

1. 安装目录

推荐安装到 D:\java…

2.配置

Vagrant基础使用方法_第2张图片

三、安装Vagrant

1.下载

下载链接: Vagrant
注意Vagrant没有图形界面,所以安装后也没有桌面快捷方式。

2.安装

推荐安装目录d:\java…

3.配置

Vagrant基础使用方法_第3张图片

四、安装centos7虚拟机

1.下载box

可以在 http://www.vagrantbox.es/这里下载更多不同系统甚至是已经配置好环境直接可以用的box,虽然可以直接在Vagrant直接使用网址,由Vagrant自动下载安装,但是考虑到网络情况,还是建议自行先下载好。
centos 7.2网盘地址:链接:https://pan.baidu.com/s/1ETvLampUodgfkNtK8fX2WQ
提取码:p5hg

2.Vagrantfile文件

2.1 初始化配置文件

创建目录 D:\java\virtual\v1\

在目录中执行

vagrant init centos

产生配置文件

2.2 修改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..1).each do |i|
    config.vm.define vm_name = "v#{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.8#{i}"
	config.vm.provision :shell, :path => "bootstrap.sh"
    end
  end
end

Vagrant基础使用方法_第4张图片

2.3 准备好boortstrap.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.81 v1

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

Vagrant基础使用方法_第5张图片

3.准备box

3.1 列表本地box

d:\Java\virtual\v1>vagrant box list
There are no installed boxes! Use `vagrant box add` to add some.

3.2 添加box

d:\Java\virtual\v1>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://d:/Java/virtual/v1/centos_v1.box
    box:
==> box: Successfully added box 'centos_v1' (v0) for 'virtualbox'!

3.3 查看本地box列表是否添加成功

d:\Java\virtual\v1>vagrant box list
centos_v1 (virtualbox, 0)

4.安装虚拟机

4.1 安装

#必须在vagrantfile所在的目录安装
vagrant up

4.2 测试

使用MobaXterm连接刚才安装的1个服务器192.168.56.81

ip addr #查看ip地址
hostname #服务器名

5.常用指令

5.1 启动

#启动Vagrantfile(s1,s2,s3)配置所有虚拟
vagrant up

#启动具体一个虚拟机
vagrant up s1

5.2 关闭

vagrant halt #关闭所有

vagrant halt s1

6.自定义box

安装了java开发环境
● JDK
● Mysql
● redis
● Elasticsearch
● RocketMQ
● mion
● …
能不能把已安装的虚拟机打包成一个自定义的box,分我们分享管理我们的虚拟机?

6.1 安装vim

标准的虚拟机box没有vim

yum install vim -y

6.2 关闭虚拟机

打包当前虚拟机,产生一个自定制的box

#关闭当前虚拟机
vagrant halt

6.3 打包虚拟机

#打包当前虚拟机
d:\Java\virtual\v1>vagrant package --base v1 --output centos_v2.box
==> v1: Exporting VM...
==> v1: Compressing package to: d:/Java/virtual/v1/centos_v2.box

6.4 删除现有的虚拟机

vagrant halt
vagrant destroy # 删除所有的虚拟机
vagrant destroy v1 #删除s1

d:\Java\virtual\v1>vagrant destroy
    v1: Are you sure you want to destroy the 'v1' VM? [y/N] y
==> v1: Destroying VM and associated drives...

6.5 把centos_v2添加到vagrant中

#列表
d:\Java\virtual\v1>vagrant box list
centos_v1 (virtualbox, 0)

#添加
d:\Java\virtual\v1>vagrant box add centos_v2 ./centos_v2.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos_v2' (v0) for provider:
    box: Unpacking necessary files from: file://d:/Java/virtual/v1/centos_v2.box
    box:
==> box: Successfully added box 'centos_v2' (v0) for 'virtualbox'!

#列表
d:\Java\virtual\v1>vagrant box list
centos_v1 (virtualbox, 0)
centos_v2 (virtualbox, 0)

6.6 修改Vagrantfile文件,设置box使用centos_v2Vagrant基础使用方法_第6张图片

6.7 使用已经安装vim的box安装新的虚拟机

vagrant up 

进入虚拟机查看vim,已经安装好了

7.命令和配置文件

详细的命令文档参考官网

https://developer.hashicorp.com/vagrant/docs/cli/package

你可能感兴趣的:(vagrant,ruby,运维)