vagrant搭建centos

什么是vagrant

Vagrant 是一个简单易用的部署工具,用英文说应该是 Orchestration Tool 。它能帮助开发人员迅速的构建一个开发环境,帮助测试人员构建测试环境,Vagrant 基于 Ruby 开发,使用开源 VirtualBox 作为虚拟化支持,可以轻松的跨平台部署。

如何使用

1、构建本地的目录

 /Users/yj/vagrant/centos7

2、官方下载对应的镜像文件,官方下载地址

MacBook-Pro-3:centos7 yj$ wget https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box

3、导入刚刚下载的镜像(box文件)

MacBook-Pro-3:centos7 yj$ vagrant box add centos7.2 /Users/yj/vagrant/centos7/vagrant-centos-7.2.box
==> vagrant: A new version of Vagrant is available: 2.2.15 (installed version: 2.2.14)!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html ==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos7.2' (v0) for provider:
box: Unpacking necessary files from: file:///Users/yj/vagrant/centos7/vagrant-centos-7.2.box
==> box: Successfully added box 'centos7.2' (v0) for 'virtualbox'!

4、初始化

MacBook-Pro-3:centos7 yj$ vagrant init

这时候当前目录会生成一个Vagrantfile文件

5、修改Vagrantfile中的box名称

config.vm.box = "centos7-1"

6、启动

MacBook-Pro-3:centos7 yj$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos7-1'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos7_default_1619487768038_36727
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2200
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Remote connection disconnect. Retrying...
default: Warning: Connection reset. Retrying...
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 5.0.14
default: VirtualBox Version: 6.1
==> default: Mounting shared folders...
default: /vagrant => /Users/yj/vagrant/centos7

7、登入

可直接只用vagrant ssh登入

MacBook-Pro-3:centos7 yj$ vagrant ssh
Last failed login: Mon Apr 26 22:52:26 BRT 2021 from 10.0.2.2 on ssh:notty
There were 5 failed login attempts since the last successful login.
Last login: Mon Apr 26 22:50:07 2021 from 10.0.2.2
[vagrant@localhost ~]$

也可以使用ssh

$ ssh -p 2200 root@127.0.0.1

上面启动的时候已经告诉我们地址和端口了

账号:root
密码:vagrant

同时构建多台

修改Vagrantfile

修改之前产生的Vagrantfile文件为

Vagrant.configure("2") do |config|

  config.vm.define "centos7-1" do |vb|
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 1
end
vb.vm.host_name = "centos7-1"
vb.vm.network "private_network", ip: "192.168.56.111"
vb.vm.box = "centos7.2"
end config.vm.define "centos7-2" do |vb1|
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 1
end
vb1.vm.host_name = "centos7-2"
vb1.vm.network "private_network", ip: "192.168.56.112"
vb1.vm.box = "centos7.2"
end config.vm.define "centos7-3" do |vb2|
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 1
end
vb2.vm.host_name = "centos7-3"
vb2.vm.network "private_network", ip: "192.168.56.113"
vb2.vm.box = "centos7.2"
end
end

网络使用的是私有网络,私有网络和公有网络区别可以看下文

启动

MacBook-Pro-3:centos7 yj$ vagrant up

默认的账号还是root,密码还是vagrant

这里设置了静态的ip,我们就可以通过静态ip直接访问虚拟机了

$ ssh root@192.168.44.113

vagrant中的网络

私有网络

private_network

私有网络,对应于virtualboxhost-only网络模型,这种模型下,虚拟机之间和宿主机(的虚拟网卡)之间可以互相通信,但不在该网络内的设备无法访问虚拟机

如果私有网络的虚机不在一个网络,vagrant为这些private_network网络配置的IP地址并不在同一个网段。vagrant会自动为不同网段创建对应的host-only网络。

所以使用private_network如果没有外部机器(虚拟机宿主机之外的机器)连接,使用这种方式设置的静态ip,能够摆脱主机网络变换的限制。

PS:比如public_network如果更换了wefi连接,之前设置的静态ip可能就不可用了,因为网段不一样了。

vb1.vm.network "private_network", ip: "192.168.56.112"

公有网络

public_network

公有网络,对应于virtualbox的桥接模式,这种模式下,虚拟机的网络和宿主机的物理网卡是平等的,它们在同一个网络内,虚拟机可以访问外网,外界网络(特指能访问物理网卡的设备)也能访问虚拟机

vagrantvirtualbox配置的public_network,其本质是将虚拟机加入到了virtualbox的桥接网络内。

vagrant在将虚拟机的网卡加入桥接网络时,默认会交互式地询问用户要和哪个宿主机上的网卡进行桥接,一般来说,应该选择可以上外网的物理设备进行桥接。

由于需要非交互式选择或者需要先指定要桥接的设备名,而且不同用户的网络环境不一样,因此如非必要,一般不在vagrant中为虚拟机配置public_network

公有网络的iP网络要和主机的网段一致。

vb.vm.network "public_network", ip: "192.168.44.111",bridge: "en0: Wi-Fi (AirPort)"

常用的命令

子命令 功能说明
box 管理box镜像(box是创建虚拟机的模板)
init 初始化项目目录,将在当前目录下生成Vagrantfile文件
up 启动虚拟机,第一次执行将创建并初始化并启动虚拟机
reload 重启虚拟机
halt 将虚拟机关机
destroy 删除虚拟机(包括虚拟机文件)
suspend 暂停(休眠、挂起)虚拟机
resume 恢复已暂停(休眠、挂起)的虚拟机
snapshot 管理虚拟机快照(hyperv中叫检查点)
status 列出当前目录(Vagrantfile所在目录)下安装的虚拟机列表及它们的状态
global-status 列出全局已安装虚拟机列表及它们的状态
ssh 通过ssh连接虚拟机
ssh-config 输出ssh连接虚拟机时使用的配置项
port 查看各虚拟机映射的端口列表(hyperv不支持该功能)

参考

【熟练使用vagrant(11):vagrant配置虚拟机网络】https://www.junmajinlong.com/virtual/vagrant/vagrant_network/

vagrant构建centos虚拟环境的更多相关文章

  1. 使用 Vagrant + VirtualBox 快速构建 CentOS 下的 Docker 环境

    Vagrant - 基础概念: Vagrant 是什么? Vagrant是一款用于在单个工作流程中构建和管理虚拟机环境的工具.凭借易于使用的工作流程和专注于自动化,Vagrant降低了开发环境设置时间 ...

  2. 使用 Vagrant 构建开发环境

    使用 Vagrant 构建开发环境 摘要:本文描述了如使用 Vagrant 构建统一的开发环境. 问题 作为开发人员,我们通常面临的问题有: 开发环境需要手工安装配置,这包括操作系统(CentOS.U ...

  3. Vagrant 构建 Linux 开发环境

    Vagrant 是一个简单易用的部署工具,用英文说应该是 Orchestration Tool .它能帮助开发人员迅速的构建一个开发环境,帮助测试人员构建测试环境, Vagrant 基于 Ruby 开 ...

  4. vagrant的centos镜像,怎么用root用户登录?

    vagrant的centos镜像,默认用户和密码都是vagrant,如果要用root用户登录,应该怎么办呢? 百度了一下,有一篇博客是这样说的: 默认的登录用户是vagrant,如果想实现默认root ...

  5. Vagrant之CentOS

    Vagrant之CentOS Vagrant官网 https://www.vagrantup.com https://app.vagrantup.com/boxes/search https://ap ...

  6. 使用vagrant构建你们团队的开发环境

    vagrant可以让团队快速搭建统一的开发环境. 搭建vagrant你需要准备三个东西: 1.vagrant安装包 . 2.virtualbox安装包. 3.打包后的vagrant虚拟环境镜像 (ln ...

  7. Vagrant 构建 LNMP 一致环境

    GitHub 地址 <--- 所有文件都在这里 前提条件 安装 Vagrant,VirtualBox. 设置 下载软件并放入 soft 目录 MySQL:mysql-5.7.22-1.el7.x ...

  8. Docker | dockerfile构建centos镜像,以及CMD和ENTRYPOINT的区别

    构建自己的centos镜像 docker pull centos下载下来的镜像都是基础版本,缺少很多常用的命令功能,比如:ll.vim等等, 下面介绍制作一个功能较全的自己的centos镜像. 步骤 ...

  9. Centos虚拟环境工具virtualenvwrapper

    下载安装virtualenvwrapper pip3 install virtualenvwrapper !!!!注意安装virtualenvwrapper必须是在本地环境下!!! 设置Linux的用 ...

随机推荐

  1. IO、NIO、BIO的区别

    我们首先得明白什么是同步,异步,阻塞,非阻塞,只有这几个单个概念理解清楚了,然后在组合理解起来,就相对比较容易了. IO模型主要分类: 同步(synchronous) IO和异步(asynchrono ...

  2. Go | Go 结合 Consul 实现动态反向代理

    Go 结合 Consul 实现动态反向代理 代理的核心功能可以用一句话概括:接受客户端的请求,转发到后端服务器,获得应答之后返回给客户端. Table of Contents 反向代理 实现逻辑 Go ...

  3. QQ 邀你上线小程序,官方生态能力持续赋能你的小程序

    转: QQ 邀你上线小程序,官方生态能力持续赋能你的小程序 你身边总有一些朋友,他们的表情包极其丰富,能时刻应对各种聊天场景. 表情包奇奇怪怪,可可爱爱,非常形象生动体现我们当下的心情,逐渐成为社交平 ...

  4. js 浮点运算bug

    js几个浮点运算的bug,比如6.9-1.1,7*0.8,2.1/0.3,2.2+2.1 实现思路 通过将浮点数放大倍数到整型(最后再除以相应倍数),再进行运算操作,这样就能得到正确的结果了 比如:1 ...

  5. 《进击吧!Blazor!》系列入门教程 第一章 6.安全

    <进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门教程视频,此教程能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...

  6. 04----python入门----文件处理

    一.大致介绍 我们在计算机上进行的操作,归根结底是对文件的操作,其实质是由操作系统发送请求,将用户或者应用程序对文件读写操作转换成具体的硬盘指令. 众所周知,内存中的数据是无法永久保存的.在计算机硬件 ...

  7. Linux增删改查移文件、文件夹

    关于Linux中文件基本处理命令 (1)添加文件.文件夹(图例):touch Demo命令创建文件(Demo)为文件名. 即mkdir Temp命令为创建文件夹(Temp)为文件夹名. 创建文件.文件 ...

  8. 2020年12月-第02阶段-前端基础-CSS初识

    CSS层叠样式表 理解 css的目的作用 css的三种引入方式 1.HTML的局限性 说起HTML,这其实是个非常单纯的家伙, 他只关注内容的语义, 比如`<h1>`表明这是一个大标题,用 ...

  9. 漏洞复现-Bash之一键破壳

        注:使用docker搭建测试环境 (1)访问搭建的环境网址:http://192.168.11.101:8081/ (2)使用burp拦截数据包,并修改User-Agent的内容: (3)使用 ...

  10. Linux下查看文件内容的几种常用命令

    [常用] 1,cat     由第一行开始显示内容,并将所有内容输出 cat的功能是将文件从第一行开始连续的将内容输出在屏幕上.但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只 ...