> 文章列表 > vagrant + vmware 创建centos7虚拟机

vagrant + vmware 创建centos7虚拟机

vagrant + vmware 创建centos7虚拟机

安装vagrant环境

1.安装vagrant
vagrant是一款用于管理虚拟机的命令行实用软件,方便虚拟机的创建与管理。
官网下载,Install | Vagrant | HashiCorp Developer
验证,vagrant -v
查看 Vagrant 当前所有已安装系统,vagrant global-status
2.安装vmware-utility
下载地址,Install | Vagrant | HashiCorp Developer

3.下载vmware-desktop插件

vagrant plugin install vagrant-vmware-desktop

使用vagrant镜像

5.添加镜像到 Vagrant
下载镜像
添加镜像到虚拟机,vagrant add [name] path/url
新建虚拟机,vagrant init
启动虚拟机,vagrant up
登录虚拟机,vagrant ssh

#下载镜像centos7-box
https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7-x86_64-Vagrant-2004_01.VMwareFusion.box
#添加镜像
#vagrant box add [box-name] [box镜像文件或镜像名]
vagrant box add centos-7 C:\\Users\\root\\Downloads\\CentOS-7-x86_64-Vagrant-2004_01.VMwareFusion.box
#查看镜像
vagrant box list
#添加的box 路径 C:\\Users\\root\\.vagrant.d\\boxes
#删除镜像
vagrant remove centos-7
#初始化镜像生成虚拟机
mkdir centos7
cd centos7
vagrant init centos-7
#启动虚拟机
vagrant up --provider vmware_desktop

6.关闭虚拟机

关闭,vagrant halt
重启,vagrant reload
挂起,vagrant suspend
唤醒,vagrant resume
查看状态,vagrant status
销毁当前虚拟机,vagrant destroy

优化vagrant配置文件

7.修改box配置文件,vagrant reload
初始化完成后在centos7生产一个Vagrantfile文件,编辑

# -*- mode: ruby -*-
# vi: set ft=ruby :Vagrant.configure("2") do |config|config.vm.box = "centos-7"config.vm.disk :disk, name: "backup", size: "10GB" # 设置最大磁盘占用config.vm.provider "vmware_desktop" do |vb|# Display the VirtualBox GUI when booting the machinevb.cpus = 2 # 设置cpu核数vb.memory = "2048" # 设置最大内存end
end

网络模式

vagrant的网络的三种模式:端口映射,私有网络,公开网络。

#端口映射,guest:80 表示虚拟机80端口
config.vm.network :forwarded_port, guest: 80, host: 8080#私有网络config.vm.network :private_network, ip: "192.168.1.104"#公开网络
config.vm.network :public_network

目录映射

默认的,主机工作目录(Vagrantfile所在的目录)到虚拟机中的/vagrant,

Vagrant.configure("2") do |config|config.vm.synced_folder "src/", "/srv/website"
end

“src/“:物理机目录;”/srv/website”虚拟机目录

注:如果网络模式中使用 private_network 的话,
在打包之前需要清除一下private_network的设置,避免不必要的错误:

集成预安装

config.vm.provision "shell", inline: <<-SHELLapt-get updateapt-get install -y apache2
SHELL

也可以编写bootstrap.sh文件,config.vm.provision "shell", path: "bootstrap.sh" # 添加这行
其他配置参考:
Vagrantfile | Vagrant | HashiCorp Developer

8.登录虚拟机

vagrant ssh #默认会创建两个用户root和vagrant,密码都是vagrant
vagrant创建的虚拟机默认禁止ssh使用密码认证的方式登录,而是使用公钥认证方式。
方法一:修改ssh配置

#修改ssh
sudo vi /etc/ssh/sshd_config
# Authentication
PermitRootLogin yes
PubkeyAuthentication yes
#To disable tunneled
PasswordAuthentication yes
#重启ssh服务
sudo systemctl restart sshd

方法二:使用私钥登录;private_key
查询私钥路径,vagrant ssh-config
远程连接器,ip addr,SmarTTY,

9.生产镜像

vagrant halt
vagrant package –out centos7
vagrant box list