1. Vagrant
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
1.1 安装Vagrant
从Vagrant官网下载安装包,执行安装。
1.2 安装VirtualBox
从官网下载VirtualBox,执行安装,设置虚拟机的安装位置,默认会安装在C盘,避免系统盘资源占用。
1.3 注册Vagrant引导文件
box是Vagrant环境的包格式。您可以在Vagrantfile
中指定一个box环境和操作配置。您可以在任何受支持的平台上使用一个box来启动相同的工作环境。为了使团队能够使用和管理相同的盒子,支持版本。
最快的入门方法是从Vagrant Cloud上的公开目录中选择一个预定义的盒子环境。您还可以在Vagrant Cloud上添加和共享您自己的定制盒子。
这里安装Centos7,可以从Vagrant Cloud中找到对应的安装步骤,
打开cmd,执行上述命令,会在C:/User/DoGH
目录下创建一个vagrantfile
文件,Vagrant会以该文件为引导,创建系统。
vagrant init centos/7
vagrant up
执行vagrant up
自动安装并启动centos系统。
第一次需要下载系统所以较为缓慢。
等待启动完成后,可以在VirtualBox中看到该虚拟机的配置信息。
当下次需要启动虚拟机时,可以在cmd中执行vagrant up
命令启动虚拟机或在VirtualBox中直接启动和关闭。
2. 用户管理
Vagrant创建的虚拟机自带一个普通用户vagrant
密码也是vagrant
,在cmd中也可以通过vagrant ssh
命令自动登录该用户,
在默认情况下,使用ssh连接工具访问虚拟机时需要身份文件和密码双重登录,这里可以在cmd中输入vagrant ssh-config
命令,打印他的ssh连接信息,
Host defaultHostName 127.0.0.1User vagrantPort 2222UserKnownHostsFile /dev/nullStrictHostKeyChecking noPasswordAuthentication noIdentityFile C:/Users/DoGH/.vagrant/machines/default/virtualbox/private_keyIdentitiesOnly yesLogLevel FATALPubkeyAcceptedKeyTypes +ssh-rsaHostKeyAlgorithms +ssh-rsa
IdentityFile
就是身份文件的位置,选择该文件,在输入用户名和密码即可登录vagrant用户。
在登录了虚拟机后,切换至root用户,并设置登录密码
# 切换至root用户
sudo -i# 设置密码
passwd
为了能直接使用用户名密码登录虚拟机,需要修改/etc/ssh/sshd_config
文件,开启该两项配置。
PermitRootLogin yes
PasswordAuthentication yes
该文件需要root用户登录才能被修改。
3. 配置网络
Vagrant为如何将客户机连接到网络提供了多种选择,但是有一个标准的使用模式,以及所有网络配置的一些共同点,这些都很重要,需要了解。
所有网络都在Vagrantfile中使用config.vm.network方法调用进行配置。例如,下面的Vagrantfile定义了一些端口转发:
Vagrant.configure("2") do |config|# ...config.vm.network "forwarded_port", guest: 80, host: 8080
end
这里固定虚拟机的IP地址,如下
Vagrant.configure("2") do |config|config.vm.network "public_network", ip: "192.168.56.10"
end
这里IP的规划要与本机的Virtual虚拟网卡地址在统一网段。
保存Vagrantfile,重启虚拟机(vagrant reload),虚拟机的网络配置就已发生了改变。