我们又回来了,带来另一份备忘单 — 这次是针对 Vagrant!我们定义了一些常用术语,为您简要介绍最常用的命令,甚至还包含一个示例 Vagrantfile,其中提供了一个基本的 CentOS 7 Web 服务器供您进行实验。查看备忘单并获取其中的基本 Vagrant 教程!
备忘单
开始使用 Vagrant
先决条件
- Vagrant!Vagrant 易于安装,整个过程只需几分钟。
- VirtualBox
- Linux、Mac 或 Windows!Vagrant 可在任何操作系统上使用,命令相同。
- 操作系统的基本命令行知识。由于本指南与操作系统无关,我们将使用“更改到目录
src
”等通用术语,而不是使用任何特定命令;您应该知道如何在系统上执行以下命令:
- Windows 用户也应该安装PuTTY。
创建你的 Vagrant 项目
vagrantdir
创建一个我们可以工作的目录。在本指南中,引用此文件夹时我们将使用通用名称。
- 从命令行进入文件夹
vagrantdir
。
- 我们计划创建一台 CentOS 7 客户机。为此,我们需要找到合适的框。公共框可在此处找到。在本例中,我们使用CentOS 提供的centos/7框。除了 VirtualBox 之外,此框还与 VMWare 和 libvirt 提供程序兼容。添加框:
vagrant box add centos/7
- 我们现在可以创建一个基本的 Vagrantfile:
vagrant init --minimal
如果我们vagrant init
不使用--minimal
标志运行,我们的 Vagrantfile 会生成带有指导性注释的程序。为了便于本指南,我们选择不包含额外的注释,以便为我们提供更简洁的 Vagrantfile 供我们参考。
基本设置
- 在您选择的文本编辑器中打开新创建的 Vagrantfile。目前,它应该类似于以下内容:
Vagrant.configure(2) do |config| config.vm.box = "base" end
目前,此 Vagrantfile 所做的只是将 Vagrant 配置版本定义为2
( Vagrant.configure(2) do |config|
) 并将客户机设置为从“基础”框 ( config.vm.box = "base"
) 运行。请注意,config
框配置开头的 直接引用|config|
版本行中的值。我们所有的配置设置都将以 开头config
。
- 更新该框以使用我们刚刚添加的 CentOS 7:
Vagrant.configure(2) do |config| config.vm.box = "centos/7" end
- 我们还想为该框定义主机名myhost
config.vm.hostname = "myhost"
。我们只需在代码中添加以下内容即可完成此操作: Vagrant.configure(2) do |config| config.vm.box = "centos/7" config.vm.hostname = "myhost" end
- 我们还可以在 Vagrant 中配置网络设置。在本例中,我们将设置一个私有网络范围内的 IP 地址:
Vagrant.configure(2) do |config| config.vm.box = "centos/7" config.vm.hostname = "myhost" config.vm.network "private_network", ip: "192.168.50.10" end
如果您已经在使用私有 IP 192.168.50.10,请更新 Vagrantfile 以相应地使用其他地址。
同步文件夹
在 Vagrant 中,我们可以将文件夹同步到客户机中的文件夹。由于我们正在创建示例 Web 服务器,因此我们希望本地目录保存我们网站的文件。
- 在您的环境目录下创建一个名为src的目录。
- 要配置
src
要同步到/var/www/html
目录的目录,请使用以下synced_folder
选项: Vagrant.configure(2) do |config| config.vm.box = "centos/7" config.vm.hostname = "myhost" config.vm.network "private_network", ip: "192.168.50.10" config.vm.synced_folder "src/", "/var/www/html" end
- 如果需要的话,请将包含您想要的内容的
index.html
文件添加到您的目录中。src
设置配置
Vagrant 能够与多种配置工具配对,以便在创建服务器时对其进行配置。最基本的使用简单的 shell 脚本。这就是我们将要使用的。具体来说,我们将使用 Ruby 语法将一系列命令输入到变量中,然后在配置我们配置的行中调用该变量。
- 创建一个
$samplescript
用于安装、启用和启动 Apache 的变量。将其放在Vagrant 配置节之前: $samplescript = <<SCRIPT yum install -y httpd systemctl enable httpd systemctl start httpd SCRIPT Vagrant.configure(2) do |config| [snip]
- 将配置器配置行添加到主代码块中:
Vagrant.configure(2) do |config| config.vm.box = "centos/7" config.vm.hostname = "myhost" config.vm.network "private_network", ip: "192.168.50.10" config.vm.synced_folder "src/", "/var/www/html" config.vm.provision "shell", inline: $samplescript end
最后,我们可以使用 Vagrantfile 来配置 VirtualBox。这是通过在 Vagrantfile 的主要部分中添加特定于 VirtualBox 的代码块来完成的:
config.vm.provider "virtualbox" do |vb| vb.memory = "1024" vb.cpus = "2"end
请注意,其格式与 Vagrant 配置行的设置类似,只是我们不定义它然后将其添加config
到配置中,而是使用它vb
(对于 VirtualBox;请注意,该值不必相同)。
最终的 Vagrantfile
您的最终 Vagrantfile 应类似于以下内容:
$samplescript = <<SCRIPTyum install -y httpdsystemctl enable httpdsystemctl start httpdSCRIPTVagrant.configure(2) do |config| config.vm.box = "centos/7" config.vm.hostname = "myhost" config.vm.network "private_network", ip: "192.168.50.10" config.vm.synced_folder "src/", "/var/www/html" config.vm.provision "shell", inline: $samplescript config.vm.provider "virtualbox" do |vb| vb.memory = "1024" vb.cpus = "2" endend
保存并退出文件。
流浪者起来!
完成 Vagrantfile 后,返回命令行并确保您位于vagrantdir
目录中。从这里,我们可以启动虚拟机。在 Vagrant 中启动虚拟机很容易。只需运行:
vagrant up
等待配置过程完成。完成后,您可以通过浏览器访问来检查 Web 服务器是否正常工作。我们192.168.50.10:80
也可以通过 SSH 进入我们的服务器。此过程取决于您的工作站计算机。
Linux 和 Mac 上的 SSH
要从 Linux 或 Mac 工作站通过 SSH 进入新的虚拟机,只需使用:
vagrant ssh
您可以花点时间环顾一下 CentOS 环境。exit
完成后返回您的工作站。
通过 Windows 进行 SSH
由于您无法从 Windows 中的命令行通过 SSH 进入虚拟机,因此我们需要使用 SSH 客户端,例如 PuTTY。首先,从命令行运行vagrant ssh-config
以检索虚拟机的 IP 地址和端口:
vagrant ssh-config
接下来,获取此信息并将其输入到 PuTTY 中;Vagrant 配置的虚拟机的默认用户名和密码均为vagrant。从这里,我们应该能够连接到您的服务器。花点时间探索客户机。完成后关闭连接。
停止、启动和销毁
恭喜!您刚刚启动了第一个 Vagrant 框并登录!通常,您现在会继续使用 Vagrant 环境来处理您正在处理的任何项目。但是当您一天的工作完成后怎么办?您可以通过两种方式关闭您的机器,vagrant halt
和vagrant suspend
。
停止
要停止机器(即尝试正常关闭,其中机器关闭的方式与物理机器相同),请运行以下命令:
vagrant halt
暂停
暂停计算机是指关闭但未关闭的计算机;本质上,它会保存运行时的确切状态suspend
。要暂停计算机,请运行:
vagrant suspend
恢复
要启动之前已停止或暂停的机器,请运行:
vagrant resume
重启
您可能还需要重新启动计算机 - 以确保您的系统设置在重新启动后仍然有效。使用以下命令重新启动计算机:
vagrant restart
重新启动与运行相同vagrant halt
,然后是vagrant resume
。
破坏
如果你永久不再使用 Vagrant 环境并且想要将其从系统中完全删除,请使用:
vagrant destroy
出现提示时,确认您是否希望销毁机器。
结论
Vagrant 是一款功能强大且非常实用的工具,可确保您的开发系统无论在哪台计算机上运行都能以相同的方式运行。您可以随意调整和扩展示例 Vagrantfile,如果您遇到困难,请务必下载备忘单以供快速参考!继续练习,您很快就会成为 Vagrant 专家。
请先 登录后发表评论 ~