使用shell命令安装virtualbox的虚拟机并导出到vagrant的Box

news2025/5/11 14:32:24

0. 安装virtualbox and vagrant

[root@olx79vagrant ~]# cat /etc/resolv.conf
#search 114.114.114.114
nameserver 180.76.76.76

-- install  VirtualBox
yum install oraclelinux-developer-release-*
wget https://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle


vim /etc/yum.repos.d/ol7-temp.repo
[ol7_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

yum install oraclelinux-release-el7
mv /etc/yum.repos.d/ol7-temp.repo /etc/yum.repos.d/ol7-temp.repo.disabled

-- If you want to update your system, proceed with the following command:
yum update -y

yum install oraclelinux-developer-release-*
yum-config-manager --enable ol7_optional_latest      ## include vulkan
## yum-config-manager --enable ol7_developer         ## include VirtualBox
yum makecache

yum install VirtualBox-7.0

-- Install Vagrant (https://vagrantup.com/)
## yum-config-manager --disable hashicorp
wget https://releases.hashicorp.com/vagrant/2.4.3/vagrant-2.4.3-1.x86_64.rpm
yum install vagrant-2.4.3-1.x86_64.rpm

1. 创建virtualbox虚拟机 vbvm19c

查询系统类型
vboxmanage list ostypes

创建目录
mkdir -p /opt/vbvm
cd /opt/vbvm

注册虚拟机
VBoxManage createvm --name vbvm19c --ostype Oracle7_64 --register --basefolder="/opt/vbvm"
cd /opt/vbvm/vbvm19c

	#仅注销虚拟机
	VBoxManage unregistervm vbvm19c

设置内存大小4G
VBoxManage modifyvm vbvm19c --memory 6144

建立虚拟磁盘:系统盘100G
VBoxManage createmedium --filename /opt/vbvm/vbvm19c/vbvm19c_HDD_SYS_40G.vdi --size 40000

创建存储控制器IDE、SATA
VBoxManage storagectl vbvm19c --name IDE --add ide --controller PIIX4 --bootable on
VBoxManage storagectl vbvm19c --name SATA --add sata --controller IntelAhci --bootable on

关联虚拟机磁盘
VBoxManage storageattach vbvm19c --storagectl SATA --port 0 --device 0 --type hdd --medium /opt/vbvm/vbvm19c/vbvm19c_HDD_SYS_40G.vdi

关联镜像文件
VBoxManage storageattach vbvm19c --storagectl IDE --port 0 --device 0 --type dvddrive --medium /opt/iso/OLX7R9.iso

需要使用VBoxManage(安装目录下)工具添加一个nat网络,并制指定参数:
VBoxManage natnetwork add --netname NatNetwork --network "10.0.2.0/24" --enable

然后启动这个网络:
VBoxManage natnetwork start --netname NatNetwork

查看已经存在的网络:
VBoxManage list natnetworks

配置第一个网卡为NAT
VBoxManage modifyvm vbvm19c --nic1 nat

VBoxManage 主机与宿主机之间实现端口映射
VBoxManage modifyvm "vbvm19c" --natpf1 "guestssh,tcp,10.168.16.200,2122,10.0.2.15,22"
VBoxManage modifyvm "vbvm19c" --natpf1 "guestssh,tcp,,2122,,22"
	删除映射
	vboxmanage modifyvm "vbvm19c" --nat-pf1 delete "guestssh"
	
设置CPU数量
VBoxManage modifyvm vbvm19c  --ioapic on
VBoxManage modifyvm vbvm19c --cpus 8

使能largepages选项
VBoxManage modifyvm vbvm19c  --largepages on

启动
VBoxManage startvm vbvm19c --type headless

在图形界面安装虚拟机

断电关闭虚拟机
VBoxManage controlvm vbvm19c poweroff

在这里插入图片描述

安装完成

## 可以在这个虚拟机里做一些模板类操作
比如 安装好相关的软件,甚至是部署好一套成熟的测试环境

2. 将vbvm19c装换成vagrantBox

1. 查看虚拟机名称
vboxmanage list vms

## 使用virtual的VM创建vagrant的Box
启动虚拟机
VBoxManage startvm vbvm19c --type headless

#登录虚拟机进行操作
ssh -p2122 root@10.168.16.200
# Set root Password to vagrant.
echo -e "vagrant\nvagrant" | passwd

# Vagrant user with password of vagrant.
useradd vagrant
echo -e "vagrant\nvagrant" | passwd vagrant

# Give vagrant user passwordless sudo.
cat >> /etc/sudoers <<EOF
vagrant ALL=(ALL) NOPASSWD: ALL
EOF


# Add insecure public key.
rm -Rf /home/vagrant/.ssh
mkdir /home/vagrant/.ssh
systemctl stop firewalld
wget -O /home/vagrant/.ssh/authorized_keys https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub
chown -R vagrant:vagrant /home/vagrant/.ssh
chmod 0700 /home/vagrant/.ssh
chmod 0600 /home/vagrant/.ssh/authorized_keys

# OL7/OL8 with Red Hat Compatibility Kernel (RHCK).  (Switch "yum" to "dnf" on OL8)
yum install -y gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r) make bzip2 perl wget elfutils-libelf-devel libX11 libXt libXext libXmu
yum update -y
reboot

## 安装扩展 在宿主机上操作
mkdir /media/VBoxGuestAdditions
mount -o loop,ro /usr/share/virtualbox/VBoxGuestAdditions.iso /media/VBoxGuestAdditions
复制到虚拟机
cd /media/VBoxGuestAdditions

scp -P2122 VBoxLinuxAdditions.run root@10.168.16.200:/tmp/
## 密码是 vagrant

登录到虚拟机操作
ssh -p2122 root@10.168.16.200
[root@vbvm19c tmp]# sh VBoxLinuxAdditions.run 

## 这个地方可以不进行 只是为了后面更好的压缩虚拟盘
dd if=/dev/zero of=/EMPTY bs=1M
rm -f /EMPTY

## 关闭虚拟机
shutdown -h now
or
VBoxManage controlvm vbvm19c poweroff


## 导出虚拟机vbvm19c到vagrant的box
mkdir -p /opt/vagrantvm/vbvm19c/
cd /opt/vagrantvm/vbvm19c/
VBoxManage startvm vbvm19c --type headless

# 默认名称是package.box
vagrant package --base "vbvm19c"
mv package.box olx79vmbox.box

## 将olx79vmbox.box复制到备份目录,可重复使用

## 添加到box
vagrant box add olx79vmbox.box --name "olx79vmbox"
vagrant box add olx79vmbox.box --name "example/olx79vm" --provider virtualbox
vagrant box list

## 删除box
vagrant box remove "olx79vmbox"
vagrant box remove "example/olx79vm"

3. 将生成的BOX的注册并初始化一个vm vgvm19c

##Run & Vagrantfile

mkdir /opt/vgvm19c
cd /opt/vgvm19c

## 初始化vagrant
vagrant init

## 配置box
vim Vagrantfile
config.vm.box = "example/olx79vm"

## 配置名称
Vagrant.configure("2") do |config|
  config.vm.define "vgvm19c" do |vgvm19c|
    vgvm19c.vm.box = "example/olx79vm"
  end
end

vagrant up

vagrant ssh
or
ssh -p2222 vagrant@127.0.0.1

vagrant status

成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2284277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2025数学建模美赛|赛题翻译|E题

2025数学建模美赛&#xff0c;E题赛题翻译 更多美赛内容持续更新中...

SpringBoot统一数据返回格式 统一异常处理

统一数据返回格式 & 统一异常处理 1. 统一数据返回格式1.1 快速入门1.2 存在问题1.3 案列代码修改1.4 优点 2. 统一异常处理 1. 统一数据返回格式 强制登录案例中,我们共做了两部分⼯作 通过Session来判断⽤⼾是否登录对后端返回数据进⾏封装,告知前端处理的结果 回顾 后…

C语言学习强化

前言 数据的逻辑结构包括&#xff1a; 常见数据结构&#xff1a; 线性结构&#xff1a;数组、链表、队列、栈 树形结构&#xff1a;树、堆 图形结构&#xff1a;图 一、链表 链表是物理位置不连续&#xff0c;逻辑位置连续 链表的特点&#xff1a; 1.链表没有固定的长度…

反馈驱动、上下文学习、多语言检索增强等 | Big Model Weekly 第55期

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 01 A Bayesian Approach to Harnessing the Power of LLMs in Authorship Attribution 传统方法严重依赖手动特征&#xff0c;无法捕捉长距离相关性&#xff0c;限制了其有效性。最近的研究利用预训练语言模型的…

git reset (取消暂存,保留工作区修改)

出现这种情况的背景&#xff1a;我不小心把node_modules文件添加到暂存区了&#xff0c;由于文件过大&#xff0c;导致不能提交&#xff0c;所以我想恢复之前的状态&#xff0c;但又不想把修改的代码恢复为之前的状态&#xff0c;所以使用这个命令可以只恢复暂存区的状态&#…

Coze插件开发之基于已有服务创建并上架到扣子商店

Coze插件开发之基于已有服务创建并上架到扣子商店 在应用开发中&#xff0c;需要调用各种插件&#xff0c;以快速进行开发。但有时需要调用的插件在扣子商店里没有&#xff0c;那怎么办呢&#xff1f; 今天就来带大家快速基于已有服务创建一个新的插件 简单来讲&#xff0c;就是…

Oracle 创建用户和表空间

Oracle 创建用户和表空间 使用sys 账户登录 建立临时表空间 --建立临时表空间 CREATE TEMPORARY TABLESPACE TEMP_POS --创建名为TEMP_POS的临时表空间 TEMPFILE /oracle/oradata/POS/TEMP_POS.DBF -- 临时文件 SIZE 50M -- 其初始大小为50M AUTOEXTEND ON -- 支持…

企业微信开发009_使用WxJava企业微信开发框架_封装第三方应用企业微信开发002_并且实现多企业授权访问---企业微信开发011

继续接上一节来贴代码: 接下来看 config部分的代码,这部分代码,系统启动的时候,就会执行,从而把配置的一些,配置读取出来,创建,针对每个企业微信的,操作service. 首先看yml配置文件中配置部分: 可以先看一下demo中: 提供了一个配置的示例,当然这个是针对 企业内部自建应用 …

机器学习 - 初学者需要弄懂的一些线性代数的概念

一、单位矩阵 在数学中&#xff0c;单位矩阵是一个方阵&#xff0c;其主对角线上的元素全为1&#xff0c;其余元素全为0。单位矩阵在矩阵乘法中起到类似于数字1在数值乘法中的作用&#xff0c;即任何矩阵与单位矩阵相乘&#xff0c;结果仍为原矩阵本身。 单位矩阵的定义&…

【学术会议-第五届机械设计与仿真国际学术会议(MDS 2025) 】前端开发:技术与艺术的完美融合

重要信息 大会官网&#xff1a;www.icmds.net 大会时间&#xff1a;2025年02月28日-03月02日 大会地点&#xff1a;中国-大连 会议简介 2025年第五届机械设计与仿真国际学术会议&#xff08;MDS 2025) 将于2025年02月28-3月02日在中国大连召开。MDS 2025将围绕“机械设计”…

RabbitMQ 分布式高可用

文章目录 前言一、持久化与内存管理1、持久化机制2、内存控制1、命令行2、配置文件 3、内存换页4、磁盘控制 二、集群1、Erlang的分布式特性2、RabbitMQ的节点类型2.1、磁盘节点 (Disk Node)2.2、内存节点 (RAM Node) 3、构建集群3.1 普通集群3.2 镜像队列3.3、高可用实现方案3…

海康工业相机 SDK对接 Hikvision

有C#基础的&#xff0c;可以参考下&#xff0c;直接上代码 BaseResult 来自于Nuget包&#xff0c;搜Rotion可以搜出来 LS.Standard.Data 海康的接口操作&#xff0c;要先引用相应的dll using MvCamCtrl.NET; using PCZD.Commons.Data.CameraModel; using PCZD.Data; using Sys…

MySQL 二进制安装(正式篇)

Author&#xff1a;Arsen Date&#xff1a;2025/01/24 官方参考文档&#xff1a;点击链接跳转 目录 规划下载安装管理FAQ 规划 OSMySQL Server Version备注CentOS 7.9 or Linux - Generic8.0.33(GNU libc) 2.17 下载 二进制包下载地址&#xff1a;https://downloads.mysql.…

K8S部署DevOps自动化运维平台

持续集成&#xff08;CI&#xff09; 持续集成强调开发人员提交了新代码之后&#xff0c;立刻自动的进行构建、&#xff08;单元&#xff09;测试。根据测试结果&#xff0c;我 们可以确定新代码和原有代码能否正确地集成在一起。持续集成过程中很重视自动化测试验证结果&#…

工业相机 SDK 二次开发-Sherlock插件

本文介绍了 sherlock 连接相机时的插件使用。通过本套插件可连接海康的工业相机。 一&#xff0e;环境配置 1. 拷贝动态库 在用户安装 MVS 目录下按照如下路径 Development\ThirdPartyPlatformAdapter 找到目 录为 DalsaSherlock 的文件夹&#xff0c;根据 Sherlock 版本找到…

分布式版本控制系统:Git

1 Git概述 Git官网&#xff1a;https://git-scm.com/ Git是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种项目Git易于学习&#xff0c;占地面积小&#xff0c;性能极快。它具有廉价的本地库、方便的暂存区域和多个工作流分支等特性…

C语言编程笔记:文件处理的艺术

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文一、为什么要用文件二、文件的分…

如何编写一个MyBatis插件?

大家好&#xff0c;我是锋哥。今天分享关于【Redis为什么这么快?】面试题。希望对大家有帮助&#xff1b; 如何编写一个MyBatis插件&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 编写 MyBatis 插件需要使用 MyBatis 提供的插件接口&#xff0c;MyBa…

C语言初阶牛客网刷题—— HJ34 图片整理【难度:中等】

1. 题目描述 牛客网在线OJ链接 Lily上课时使用字母数字图片教小朋友们学习英语单词&#xff0c;每次都需要把这些图片按照大小&#xff08;ASCII码值从小到大&#xff09;排列收好。请大家给Lily帮忙&#xff0c;通过C语言解决。 输入描述&#xff1a;Lily使用的图片包括 “A…

Golang Gin系列-7:认证和授权

在本章中&#xff0c;我们将探讨Gin框架中身份验证和授权的基本方面。这包括实现基本的和基于令牌的身份验证&#xff0c;使用基于角色的访问控制&#xff0c;应用中间件进行授权&#xff0c;以及使用HTTPS和漏洞防护保护应用程序。 实现身份认证 Basic 认证 Basic 认证是内置…