首页 > 其他分享 >vagrant实战爬坑

vagrant实战爬坑

时间:2023-08-19 11:46:07浏览次数:80  
标签:实战 box hyper 虚拟机 vagrant vm config

为什么要用到这个技术?

简单来说,vagrant是一个操作虚拟机的工具。
它提供了一套高效而便利的虚拟机管理方式,通过命令和配置文件,当然也要基于vagrant自身的约定,就能很快的完成一套开发环境的部署,并可以打包传播,极大的方便了在工作环境中,各个开发环境不一致的问题,也解决了重复配置环境的浪费

技术原理

主要流程就是读取Vagrantfile配置文件里指定的变量,然后进行转换调用虚拟机软件(virtualbox等)的api为用户创建好运行环境

实战

官网地址

https://www.vagrantup.com/

快速开始

实战博客来自

排坑历程

VMware

当初使用这个工具是架构师老师的推荐,文档中建议配合使用的虚拟机是virtualbox而我本地电脑上装的是VMware,所以就到官方文档上去搜索VMware相关的配置,然后进行安装。最后发现vagrant连接VMware需要申请证书,所以VMware就要放弃了,最后也把本地的VMware也卸载了,浪费了有一天时间。

hyper-v

hyper-v 是架构师交流群里一位群友推荐的,主要优点是windows自带的虚拟机功能,不用额外下载其他虚拟机,但是下载配合vagrant使用后,发现hyperv并不能很方便的支持vagrant的连接,而且在虚拟机生成之后,通过hyperv自己的控制台工具想要进行本地宿主机和虚拟机之间的拷贝粘贴时,出现了问题,发现根本就不支持,后来在网上博客有人提到,目前hyper-v只支持ubuntu系统的一个工具,而我要装的虚拟机系统是centos,而且我看身边的人以及公司也用的是centos,最后不得不放弃hyperv.

Virtualbox

在VMware卸载后,下载了架构师老师提供的virtual安装包,box也是老师提供的,当时并没有意识到box是根据特定虚拟机版本生成的(中间切换到hyper-v才意识到这个问题),这个box老师已经预装了像Java,rocketmq,zookeeper等相关工具,在配合vagrant生成虚拟机的时候,有一个错误是一直解决不了,老师在博客中的解决方案也是起不了作用,所以才放弃去使用了hyper-v,但是我发现我的电脑并没有所谓的hyper-v,上网搜索才发现,这个工具只有在windows10专业版上才有,而我的电脑版本是家庭版!!!所以又花了15块钱在淘宝上买了一个激活码,最后升级成功,启用了hyper-v,由于不能在宿主机和虚拟机之间完美拷贝数据,所以最终还是回来继续用virtualbox,这次重新一试,之前的问题都解决了,由此我得出结论,一切都是windows系统的问题,作为开发者,一定要将系统版本升级到专业版,不然会很坑!!!

博客链接整理

https://www.cnblogs.com/crazymakercircle/p/14194688.html

相关配置

vagrantfile

(1..3).each do |i|
        config.vm.define vm_name = "cdn#{i}" do |config|
                config.vm.provider "virtualbox" do |v|
                        v.customize ["modifyvm", :id, "--name", vm_name]
                        v.customize ["modifyvm", :id, "--memory", "4096"]
                        v.customize ["modifyvm", :id, "--cpus", "2"]
                end
                config.vm.box = "springcloud-dev"
                config.vm.hostname = vm_name
                config.ssh.username = "vagrant"
                config.ssh.password = "vagrant"
                config.vm.network :private_network, ip: "192.168.56.12#{i}"
                config.vm.provision :shell, :path => "bootstrap.sh"
        end
  end

上面的脚本代码指定了box的名称,provider的版本类型,以及循环生成了3个虚拟机,指定虚拟机核数CPU,内存大小等

bootstrap.sh

echo "Update /etc/hosts"
cat > /etc/hosts <<EOF
127.0.0.1 localhost

192.168.56.121 cdn1
192.168.56.122 cdn2
192.168.56.123 cdn3
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

改脚本的目的是启动时自己需要运行的脚本,脚本语言是shell。

常用命令

vagrant init 初始化vagrantfile

vagrant add remove 删除 box,add会自动帮你生成vagrantfile

vagrant box remove springcloud-dev

vagrant add box 添加 box,自动帮你生成vagrantfile

vagrant box add  springcloud-dev   /e/virtual/workcluster/springcloud-dev-3.box

vagrant halt 关闭虚拟机

vagrant destroy 销毁虚拟机

vagrant ssh 连接虚拟机

vagrant reload 修改vagarntfile文件后,重启虚拟机,重新加载

vagrant suspend 暂时挂起虚拟机

vagrant status 查看虚拟机运行状态

vagrant package 打包 box文件

vagrant package --base cdh1 --output  springcloud-dev-4.box

vagrant box list 首先查看已经添加的box:

$ vagrant box list
centos (virtualbox, 0)

vagrant destroy 销毁当前虚拟机,不需要的虚拟机最好销毁,释放存储空间

未完待续...

标签:实战,box,hyper,虚拟机,vagrant,vm,config
From: https://www.cnblogs.com/bibibao/p/17642240.html

相关文章

  • 开源数据库Mysql_DBA运维实战 (总结)
    开源数据库Mysql_DBA运维实战(总结)SQL语句都包含哪些类型DDLDCLDMLDQLYum安装MySQL的配置文件配置文件:/etc/my.cnf日志目录:/var/log/mysqld.log错误日志:/var/log/mysql/error.logMySQL的主从切换查看主从复制状态停止主数据库的写入操作记录当前二级制日志文件和位置更新从数据库......
  • 软件调试与问题排查的修炼之路与实战经验
    久经沙场,才能练就丰富经验与实战能力。调试调试,调整与测试。那些机械工程师通常需要对仪器参数进行设置以便能够更好的观察。软件调试有种类似的含义,比如高级工程师会对一些参数进行设置以便达到更好的性能优化。而在通常意义上,调试通常是指对不合预期的状态进行定位、调......
  • C++项目实战之演讲比赛流程管理系统
    演讲比赛流程管理系统1.演讲比赛程序需求1.1比赛规则学校举行一场演讲比赛,共有12个人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛每名选手都有对应的编号,如10001~10012比赛方式:分组比赛,每组6个人第一轮分为两个小组,整体按照选手编号进行抽签后顺序演讲10个......
  • .NET Core基础到实战案例零碎学习笔记
    前言:前段时间根据[老张的哲学]大佬讲解的视频做的笔记,讲的很不错。此文主要记录JWT/DI依赖注入/AOP面向切面编程/DTO/解决跨域等相关知识,还包含一些.NETCore项目实战的一些案例。我是西瓜程序猿,感谢大家的支持!一、ASP.NETCore基础1.1-.NETCore概述1.1.1-.NETCroe简介(1......
  • 融媒行业落地客户旅程编排,详解数字化用户运营实战
    移动互联网时代是流量红利的时代,企业常用低成本的方式进行获客,“增长黑客”的概念大范围传播。与此同时,机构媒体受到传播环境的影响,也开始启动全行业的媒体融合转型。在此背景下,2015年神策数据成立,核心解决的是帮助客户通过数据分析实现更好的增长。2020年之后数字化转型的大趋势......
  • SpringSecurity实战笔记之Security
    =================================SpringSecurity========================================一、默认配置1、默认会对所有请求都需要进行认证与授权;2、默认使用httpBasic方式进行登录3、默认的用户名为user,密码在启动应用时在console中有打印......
  • SpringSecurity实战笔记之RESTful
    =================================RESTful========================================一、JsonPath1、github:https://github.com/json-path/JsonPath二、@JsonView使用步骤(用于解决同一个对象在不同的接口返回的字段不同的场景)1、使用接口来声明多个视图2、在值对象的get方法上指......
  • 基于Spring Boot手把手博客系统企业级前后端实战-学习笔记
     一、springboot初始化工程1、网址:https://start.spring.io二、Gradle安装(绿色版)1、windows下-下载:http://downloads.gradle.org/distributions/gradle-3.5-bin.zip-解压:-配置环境变量:新建环境变......
  • 【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战
    并发编程介绍当今软件开发领域越来越强调性能和伸缩性,因此,利用并发编程可以更好地利用计算资源,提高应用程序的性能和响应速度。以下是一些关于并发编程的相关信息供您参考。什么是并发编程并发编程是指在一个程序中同时执行多个独立的计算任务,并通过各种手段来协调不同任务之间的交......
  • Springboot整合模版方法模式概念->原理优缺点->框架应用场景->企业级实战
    一、前言常见的设计模式有23种,我们不得不提到模板方法设计模式,这是一种在软件开发中广泛使用的行为型设计模式之一。它为我们提供了一种优雅的方式来定义算法的结构,并将算法的具体实现延迟到子类中!在本篇博客中,我们将深入探讨模板方法设计模式在SpringBoot中的应用。我们将从概念......