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-oraclevim /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=1yum 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 -yyum install oraclelinux-developer-release-*
yum-config-manager --enable ol7_optional_latest ## include vulkan
## yum-config-manager --enable ol7_developer ## include VirtualBox
yum makecacheyum 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 natVBoxManage 主機與宿主機之間實現端口映射
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/VBoxGuestAdditionsscp -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 & Vagrantfilemkdir /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
endvagrant upvagrant ssh
or
ssh -p2222 vagrant@127.0.0.1vagrant status
成功。