# 1、常用命令

# 1.1、镜像

vagrant box add CentOS-7.box --name centos7

vagrant box list

vagrant box remove box名	
1
2
3
4
5

# 1.2、虚拟机

# 初始化虚拟机配置文件
vagrant init boxname
# 根据当前目录下的Vagrantfile 启动虚拟机
vagrant up 
# 根据当前目录下的Vagrantfile 启动虚拟机,并执行provision里面的指令
# 因为里面的指令只有在第一次up 的时候会执行。
vagrant up --provision
# 根据当前目录下的Vagrantfile 进入虚拟机(交互模式)
vagrant ssh
# 根据当前目录下的Vagrantfile 暂停虚拟机
vagrant suspend
# 关机
vagrant halt
# 重新加载Vagrantfile,使之生效(相当于先 halt,再 up)
vagrant reload
# 根据当前目录下的Vagrantfile 重启虚拟机的时候执行Vagrantfile 里面的provision 的指令
# 默认是vagrant up 的时候启动一次
vagrant reload 一provision
# 执行Vagrantfile 里面的provision 的指令
vagrant provission
# 查看虚拟机状态
vagrant status 
# 启动虚拟机
vagrant up 
# 删除虚拟机
vagrant destroy 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# 1.3、启动

vagrant ssh
sudo -i
vi /etc/ssh/sshd_config
PasswordAuthentication yes
systemctl restart sshd
echo root|passwd --stdin root
1
2
3
4
5
6

# 1.4、扩容

# pvcreate命令不存在解决方案
yum -y install lvm2
1
2

centos7根目录扩容(根目录在sda3 vgdisplay为空 (opens new window)

# 1.5、打包

# 查看虚拟机名称
vboxmanage list vms
vagrant package –-base [虚拟机名称] –-output [打包后的box名称]
1
2
3

# 2、配置文件

Vagrant.configure("2") do |config|
  # 设置虚拟机的主机名
  config.vm.hostname="k8s-node#{i}"
  # 设置主机与虚拟机的共享目录
  config.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"

  config.vm.box = "centos7"
  config.vm.network "private_network", ip: "192.168.56.10"
  config.disksize.size = '60GB'
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.name= "lab1"
    vb.cpus= 2
  end
end

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 附录

软件 官网
vagrant Vagrant by HashiCorp (vagrantup.com) (opens new window)
VirtualBox Oracle VM VirtualBox (opens new window)
Last Updated: 4/9/2024