当前位置: 首页 > article >正文

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

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.kler.cn/a/525192.html

相关文章:

  • 【C语言】内存函数
  • STM32 TIM输入捕获 测量频率
  • 17.Word:李楠-学术期刊❗【29】
  • Visual Studio Code修改terminal字体
  • Python GUI 开发 | Qt Designer — 工具介绍
  • JavaScript_02 表单
  • 正则表达式入门
  • DeepSeek的崛起与全球科技市场的震荡
  • C++并发编程指南03
  • 【JavaWeb】利用IntelliJ IDEA 2024.1.4 +Tomcat10 搭建Java Web项目开发环境(图文超详细)
  • 商品信息管理自动化测试
  • 落地基于特征的图像拼接
  • 研发的立足之本到底是啥?
  • 跨平台物联网漏洞挖掘算法评估框架设计与实现文献综述之Gemini
  • 我的求职之路合集
  • zsh安装插件
  • Vue演练场基础知识(七)插槽
  • sentence_transformers安装
  • BGP分解实验·15——路由阻尼(抑制/衰减)实验
  • 关于Java的HttpURLConnection重定向问题 响应码303
  • 《DeepSeek R1:开启AI推理新时代》
  • C++实现2025刘谦魔术(勺子 筷子 杯子)
  • 第十六届蓝桥杯大赛软件赛(编程类)知识点大纲
  • 25年1月-A组(萌新)- 云朵工厂
  • 本地部署Deepseek R1
  • S价标准价与V价移动平均价的逻辑,以SAP MM采购订单收货、发票校验过程举例