![使用vagrant status命令验证 Verifying with the vagrant status command](http://img.e-com-net.com/image/info8/d7820b3d8b874405a2835edd972de811.jpg)
vagrant使用
Vagrant 将自己描述为“在单个工作流程中构建和管理虚拟机环境的工具。凭借易于使用的工作流程并专注于自动化,Vagrant缩短了开发环境的设置时间,增加了生产平价,并使“机器是过去的遗物。”
Vagrant使用一种称为Vagrantfile的标准格式来记录环境。 根据Vagrant的网站 :
“ Vagrantfile的主要功能是描述项目所需的计算机类型,以及如何配置和配置这些计算机。Vagrantfiles称为Vagrantfiles,因为该文件的实际文字文件名是Vagrantfile (除非您的文件使用大小写,否则它并不重要)系统以严格区分大小写的模式运行)。”
Vagrant本质上是一个包装程序,可以进行可重复的虚拟机管理,但它本身并不运行VM。 本教程将使用VirtualBox作为该环境管理器,尽管默认情况下Hyper-V和Docker也可以工作。 查看Vagrant的文档,以了解如何在本教程中使用其他提供程序 。
本教程通过一个示例应用程序为Ruby on Rails(简称Rails)Web应用程序中的简单Hello World页面提供示例。 在开始之前,请安装以下组件(如果尚未安装):
如果您使用的是Fedora,并且更喜欢使用命令行,那么这里会提供出色的Fedora教程 ,还有一个类似的针对Windows的使用Chocolatey的有用教程。 安装完所有内容后,打开终端并创建一个新目录以供使用。 我更喜欢在用户帐户下使用一个文件夹:
$
mkdir
-p ~
/ Development
/ Rails_app
$
cd ~
/ Development
/ Rails_app
$ vagrant init
A
` Vagrantfile
` has been placed
in this directory. You are now
ready to
` vagrant up
` your first virtual environment
! Please
read
the comments
in the Vagrantfile
as well
as documentation on
` vagrantup.com
`
for
more information on using Vagrant.
这将创建一个Vagrantfile,其中包含使用Ruby语法编写的默认配置信息。 看一下第15行:
config.vm.box = "base"
这表明Vagrant将使用它托管的默认操作系统映像(称为base) ,您尚未安装。 通过运行列表确认:
$ vagrant box list
There are no installed boxes
! Use
` vagrant box add
` to add some.
如果尝试使用up命令启动环境,则该操作将失败,因为Vagrant希望一个名为base的操作系统在本地存在。 切换到最常用的环境bento / ubuntu-16.04 ,然后尝试扩展您的环境。 将您的Vagrantfile中的config.vm.box行更改为:
config.vm.box = "centos/7"
现在,您可以在虚拟机历史记录中运行最令人满意的命令:
$ vagrant up
Bringing machine
'default' up with
'libvirt' provider...
==
> default: Box
'centos/7' could not be found. Attempting to
find and install...
default: Box Provider: libvirt
default: Box Version:
> =
0
==
> default: Loading metadata
for box
'centos/7'
default: URL: https:
// vagrantcloud.com
/ centos
/
7
==
> default: Adding box
'centos/7'
( v1905.1
)
for provider: libvirt
default: Downloading: https:
// vagrantcloud.com
/ centos
/ boxes
/
7
/ versions
/
1905.1
/ providers
/ libvirt.box
default: Download redirected to host: cloud.centos.org
...
这就是为什么这样好。 本教程设置了一个小型网站,但是如果您拥有较大的网站,并且需要检查前端看起来是否正确,则可以使用剧本文件和复制文件来查看更改。 如果您有小型应用程序,则希望快速进行测试-无需进行整个Docker映像构建或登录到服务器-这种本地测试非常适合快速检查和修复。 如果您使用的是硬件,则可以轻松查看该应用程序是否可以在您的操作系统中运行,并且可以让您知道所需的依赖项。 最后,与从零开始的持续集成和部署(CI / CD)到测试服务器相比,它使部署和测试更加容易,并且提供了更快的访问和更多的控制。
如此简单的原因可以用一个简单的句子来解释:您现在有了本地自动化。 它还使您可以在Ansible和无头服务器部署背后收集更广泛的知识。
确定此操作是否正确完成的一种方法是,看到一堆绿色文本,并在启动选项中看到Rails server -h字样。 这表示该网络应用已启动并正在运行。
但是您想使用vagrant global-status以及vagrant status 。
vagrant status命令检查源于当前目录的计算机状态。 因此,如果您有一个已启动并正在运行的VM,它将显示为已启动并正在运行。 如果它以任何方式损坏,则在您运行vagrant up时将显示一条错误消息和一些日志。 如果某些计算机已关闭,它们也将显示为未运行或关闭。
但是, vagrant global-status命令可以提供在Vagrant中创建的多个环境的状态。 因此,如果您将环境划分为不同的VM类型或存储类型,则此命令为您提供了一个选项,以查看在您创建的所有环境中的所有内容。
机器设置具有多个config.vm选项。 本教程将使用网络选项来允许端口转发。 端口转发使您可以通过特殊的本地网络访问我们虚拟环境中的网络端口,就好像它是本地端口一样。 这意味着允许流量查看您在此服务器上允许的一件事; 在这种情况下,这是一个很小的前端网页。
至关重要的主要原因是为了安全。 限制流量可以防止不良行为者和流量溢出。 构建方式,除非您进行了配置,否则您无法登录该服务器。 这也意味着除了一个小的前端网页之外,没有其他人可以SSH进入或看到任何东西。
在继续之前,请删除VM,以便您可以通过运行vagrant destroy重新开始:
$ vagrant destroy
default: Are you sure you want to destroy the
'default' VM?
[ y
/ N
] y
==
> default: Removing domain...
要包括端口转发,请将其添加到下一个配置行中:
Vagrant.configure
(
"2"
)
do
| config
|
config.vm.box =
"bento/ubuntu-16.04"
config.vm.network
"forwarded_port" , guest:
3000 , host:
9090
end
保存文件并运行:
vagrant up
现在您有了一个将端口3000作为9090转发到开放世界的VM。 现在,您应该能够在网络浏览器上转到127.0.0.1:9090 ,并且只看到白页。
再次运行vagrant destroy以删除VM,以便重新开始。
尽管基本框提供了一个很好的起点,但是在预配过程中自定义VM是很常见的,您可以使用多种预配策略。 要继续学习,请下载剧本和脚本 。
本示例使用Ansible设置Ruby on Rails Web框架的基本安装。 然后,它添加了一个额外的shell脚本来配置Web应用程序的欢迎页面,说: Hello World,对不起抱歉 。 (此消息的目的是因为此构建需要很长时间,并且延迟可能会使人们感到沮丧。)
以下Vagrantfile反映了Ansible和一本在我的计算机上本地运行的剧本,因此与您的不同。 您可以在Vagrant的文档中阅读有关将Ansible与Vagrant结合使用的信息。
Vagrant.configure
(
"2"
) do |config
|
config.vm.box =
"bento/ubuntu-16.04"
config.vm.network "forwarded_port", guest
: 3000, host
: 9090
####### Provision #######
config.vm.provision
"ansible_local" do |ansible
|
ansible.playbook =
"prov/playbook.yml"
ansible.verbose = true
config.vm.provision "shell", path
:
"script.sh"
end
end
保存文件后,运行我最喜欢的命令:
vagrant up
现在,您已经建立了一个虚拟机,并且可以与Rails一起运行,并且在Web浏览器中输入127.0.0.1:9090时,您会看到一个页面,上面写着: Hello World,对不起,抱歉 。
现在,您已经具备了所有这些背景知识,可以尝试构建自己的脚本 。
Vagrant非常易于使用,并且具有丰富的文档来帮助您。 如果您希望在小型暂存或开发环境中使用代码,那么它是一个很好的工具。 任何破坏都是没有问题的,因为环境本身是可处置的。
想试试看? 看看我的仓库 。
翻译自: https://opensource.com/article/19/12/beginner-vagrant
vagrant使用