使用vagrant和virtualbox安装虚拟机

516 阅读3分钟

一:安装virtualbox和vagrant

1.1:到virtualbox官网下载软件,链接:www.vagrantup.com/, 唯一需要注意的点是需要开启虚拟化,关于电脑是否开启虚拟化可以参考截图 image.png 如果电脑没有开启虚拟化,则需要首先开启虚拟化,vagrant的官网地址是:www.vagrantup.com/ 下载一键安装即可,一键安装不再赘述

二:环境配置

安装好vagrant后可以使用vagrant version确定是否安装成功,以及配置vagrant的环境变量 image.png

通过 Vagrant 创建虚机需要先导入镜像文件,也就是 box,它们默认存储的位置在用户目录下的 .vagrant.d 目录下,对于 Windows 系统来说,就是 C:\Users\用户名.vagrant.d。如果后续可能会用到较多镜像,或者你的 C 盘空间比较紧缺,可以通过设置环境变量 VAGRANT_HOME 来设置该目录。 image.png

三:下载镜像

我们可以直接使用vagrant init centos/7这种命令直接添加box,但是大多数情况下会由于网络原因失败,所以推荐给大家可以先下载好镜像在添加box的方式创建虚拟机 官方的镜像网站:app.vagrantup.com/boxes/searc… 一般网速会比较慢,也可以到cloud.centos.org/centos/cloud-images.ubuntu.com/ 下载 image.png

四:添加box

4.1首先查看当前box列表,发现无box

vagrant box list image.png

4.2添加box

vagrant box add E:\virtualboximg\CentOS-7-x86_64-Vagrant-1905_01.VirtualBox.box --name centos-7 image.png 添加成功后,发现此时已经有了一个centos-7的box image.png

4.3启动虚拟机

创建一个centos1目录,见截图,进入该目录下,启动centos镜像,会生成一个vagrantfile文件 image.png 再使用vagrant up启动虚拟机即可,正常一般一分钟左右即可启动 image.png

4.4登录虚拟机

账号密码默认为vagrant/vagrant,也可以使用su root切换到root用户 image.png 可以使用vagrant halt来关闭虚拟机 image.png

五:vagrantfile设置

默认网络方式是网络地址转换NAT(端口转发),如果其他主机要访问虚拟机,必须由windows端口如3333断发给虚拟机端口如3306。这样每在linux里安一个软件都要进行端口映射,不方便,(也可以在virualBox里挨个设置)。我们想要给虚拟机一个固定的ip地址,windows和虚拟机可以互相ping通,关于网络模式可以参考:mp.weixin.qq.com/s?__biz=MzI…

只要修改这一行配置即可 image.png 虚拟机和本机互相都是通的 image.png image.png 如果ping不通baidu

-   cd /etc/sysconfig/network-scripts
-   ls 一般有ifcfg-eth0 1
-   ip addr 看哪个网格是192.168.56网段,然后vim他
-   vim ifcfg-eth1 加入

参考如下配置修改

GATEWAY=192.168.56.1
DNS1=114.114.114.114 
DNS2=8.8.8.8

最后重启network

 service network restart

六:配置允许账号密码远程登录

默认只允许ssh登录,为了后续操作方便,比如文件上传等

vim /etc/ssh/sshd_config 
修改 PasswordAuthentication yes 
重启 service sshd restart 
账号root 密码vagrant

七:配置yum源

# 备份原yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 使用新yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 生成缓存
yum makecache

到此一个简单的使用virtualbox和vagrant搭建虚拟机的操作就完成了,还有很多不完善的地方,后续会补充