我正在运行 Ubuntu,我想通过 Vagrant 和 Chef 在 Virtualbox 中设置一个 VM。我想我缺少的是用于 Windows Server 2008 R2 x64 试用版的 .box。
有谁知道我在哪里可以找到.box?如果没有,我将如何为 Windows Server 2008 构建 Vagrant .box?
我对使用 Chef 还很陌生,尤其是使用 vagrant,所以对于更有经验的用户来说,这很可能是一个愚蠢的问题。
我正在使用这本食谱:https : //github.com/opscode-cookbooks/application_nginx
我只想添加我自己的站点配置(vhost)。
它必须是以下之一:
选项 1 对我来说似乎不正确,我不知道如何在不必完全分开食谱的情况下完成选项 2。
任何人都可以就如何实现这一目标提出建议吗?
我正在使用 Vagrant 设置虚拟机进行测试。我希望虚拟机内部的 apt 可以在主机上使用代理,以允许缓存所有下载内容在运行的虚拟机实例之间持续存在,不仅是为了提高速度,而且还允许我在启动 vagrant 实例时启动没有网络连接。
我已经设置了正在运行的代理,我想我已经告诉 apt 通过在 Vagrant 脚本中设置它来使用它:
config.vm.provision :shell, :inline => 'echo \'Acquire { Retries "0"; HTTP { Proxy "http://10.0.2.2:3128"; }; };\' >> /etc/apt/apt.conf'
config.vm.provision :shell, :inline => 'echo \'Acquire { Retries "0"; FTP { Proxy "ftp://10.0.2.2:3128"; }; };\' >> /etc/apt/apt.conf'
config.vm.provision :shell, :inline => 'echo \'Acquire { Retries "0"; HTTPS { Proxy "https://10.0.2.2:3128"; }; };\' >> /etc/apt/apt.conf'
Run Code Online (Sandbox Code Playgroud)
它正在部分工作,即当我的 wifi 连接被禁用但 Squid 正在运行并且它的缓存中有一些条目时,对源的初始请求命中缓存并工作。我还可以从 Squids 日志文件中看到一些击中 Squid 的请求:
1367492453.816 34 127.0.0.1 TCP_REFRESH_MODIFIED/200 592 GET http://security.ubuntu.com/ubuntu/dists/precise-security/Release.gpg - …Run Code Online (Sandbox Code Playgroud) 我有游民1.2.2安装在我的机器; 一台笔记本电脑。我在具有不同网络设置的三个不同环境中使用同一台笔记本电脑。
我的 VagrantFile 看起来像:
Vagrant.configure("2") do |config|
config.vm.box = "lucid32"
config.vm.network :forwarded_port, guest: 80, host: 88
config.vm.network :forwarded_port, guest: 56789, host: 56789
config.vm.network :public_network, :bridge => 'Intel(R) 82579V Gigabit Network Connection'
config.vm.hostname = "web"
end
Run Code Online (Sandbox Code Playgroud)
它成功地将主机名设置为web无头 Ubuntu 中的主机名。
但是当我尝试web从主机操作系统 (Windows) ping 时,它无法解析 IP 地址。
当我搬到其他办公室时,我无法每次更改 Windows 中的主机文件,因为 C 类子网掩码和 IP 范围不同。
有没有办法通过主机名从主机访问来宾web?
我目前正在构建一个相当复杂的服务器堆栈(一个 ruby on rails 应用程序),我希望开发人员能够在不必自己安装所有东西的情况下工作。因此我使用 Vagrant 来允许他们这样做。
这个想法是,当您第一次安装映像时,它将拉取最新的源并安装依赖项,源通过同步文件夹公开(vagrant 内置功能),以便开发人员可以提交源并在他们自己的环境中编辑它们。Vagrant-box 仅用于服务器。
Vagrantfile 中的同步文件夹条目:
config.vm.synced_folder "gameeso/", "/var/gameeso", :create => "true"
Run Code Online (Sandbox Code Playgroud)
该图像是一个带有 upstart 脚本的 Ubuntu 服务器(脚本在启动时执行,并且仅在 Internet 连接启动时执行):
从 Github 拉取最新的开发分支(如果文件夹不存在)
安装依赖项(这是由脚本完成的)
所有这些都发生在一个同步文件夹中。我对这种方法有一些问题,主要是 Vagrant 清除了我的来宾系统上的同步文件夹。 我通过在 upstart 脚本中添加 'sleep 10' 解决了这个问题,所以它可以等到 Vagrant 设置同步文件夹。
当然,这不是一种安全的方法(如果启动时间超过 10 秒,虽然现在不太可能,我宁愿不知道;))
我的问题是:有没有更好的方法让来宾主机(流浪者图像)填充同步文件夹?
当然,非常感谢提前!
我目前正在开展一个项目,在该项目中我使用 Vagrant 和 Ansible 配置在 VirtualBox 中创建本地环境。我目前在一所大学工作,我们有一个 XenServer 管理程序(免费版)。我无法直接从我的位置访问虚拟机管理程序,但我可以通过 ssh 连接到同一网络上的 Ubuntu 服务器并转发端口,以便我可以使用 XenCenter 连接到它:
ssh <remote machine> -L80:<xen-server>:80 -L443:<xen-server>:443 -L5900:<xenserver>:5900 -L59001...etc to 5910
Run Code Online (Sandbox Code Playgroud)
59xx 端口是因为 XenCenter 将 VNC 控制台放在这些端口上。(我实际上在 Windows 上使用腻子,因为我无法让 OpenXenCenter/Linux 与这种类型的隧道连接)。Citrix XenCenter 连接正常,我可以创建一个新的 VM,但是我无法通过 XenCenter 或其他 VNC 客户端访问控制台。
如果我能让 VNC 控制台工作,我可以创建一个基本框,然后复制它并根据需要使用不同的 ansible playbook 重新配置副本。
但我真的不在乎能否获得控制台,只要我可以自动配置单个 VM。如果我能用另一台机器上的客户端指向虚拟机管理程序并编写具有特定 IP 地址的 VM 创建脚本,那就太好了。Vagrant 不支持 Xen 作为提供者。我发现使用 libvirt 的 Xen 支持有限,但即便如此,它似乎更适合安装在标准发行版(如 Ubuntu 或 OpenSUSE)上的 Xen,而不是作为独立的 Citrix Hypervisor。有 xen-tools,但这似乎也适用于本地 linux 发行版上的 xen。
有没有办法使用 Vagrant 或其他类型的配置工具远程配置 XenServer 实例?
我是 puppet 和 vagrant 的新手,但我正在开发我自己的 Puppet 清单,旨在设置一个 vagrant 框。也就是说,puppet 清单位于主机上我的 Vagrant 目录中,而 vagrant 正在调用 puppet —— 没有 puppet 服务器。
问题是,我的工作流程是:
while(not working as desired) {
vagrant destroy
amend manifest
vagrant up
}
Run Code Online (Sandbox Code Playgroud)
......这意味着相当多的等待。
什么是更好的工作方式?
我最近开始学习如何使用 Vagrant 来启动本地开发环境。(在对各种 WAMP 堆栈选项感到沮丧之后)到目前为止,Vagrant 很棒……学习曲线很小,但从长远来看看起来很有希望。
在尝试使我的 VM 看起来像我的在线服务器的乏味过程之后……在我看来,Vagrant 缺少了一个部分。现在的过程似乎或多或少像手动试错。第一次快速设置或轻松保持与上游服务器同步的理想选择。
诚然,我可能不确切知道我在寻找什么......因此问题。
是否有一种简化的方法可以从现有的 CentOS 5.10 服务器导出设置以进行本地 Vagrant 配置?(人偶、厨师、贝壳或其他)
这样的事情是我所设想的......
(连接到在线服务器...)
理想情况下,这将在配置期间运行,并且基本上保持本地版本与在线版本同步。这将消除不断手动调整本地设置以保持同步的需要。如果某些内容在线更改(由主机或内部)......它会自动传播。(当然,理想情况下,您可以标记设置以根据您的需要调整行为)
或者,我想如果我可以在不打包各种用户特定数据的情况下打包在线服务器,那也可以。但是,据我所知,这似乎不太可能……而且效率肯定不会很高。
警告
就我个人而言,我使用的是带有 cPanel 的 CentOS 5.10 服务器。cPanel 似乎在服务器端做了很多不一定立即显而易见的事情。一个例子是许多包名称以 cPanel 开头,看起来是专有的,但同时与我可能想要同步的内容相关。(例如cpanel-php53)据我目前所知,这些不能轻易同步......因此需要采取变通办法。另一个例子可能与预期的路径不同,但我不太确定,因为我对 CentOS 和 cPanel 的默认安装不够熟悉,无法确定任何特性。
到目前为止我所做的...
在我决定询问是否有更好的方法可以与 Vagrant 更紧密地合作之前,我做了一些事情。这并不可怕,但并不真正“精简”或全面。以下是详细信息...
我学会了如何yum repolist all在两台机器上运行以及如何使用 来查看文件系统中的 repos cd /etc/yum.repos.d; ll;,但没有学习如何使用此信息自动同步 repos。
我写了一个 shell 脚本来让本地的包与远程的包非常接近。然而,虽然它做得很好,但它并不完美,我想知道是否有更好的方法。问题...
#!/usr/bin/env bash
# This script …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 ArchLinux 中安装 vagrant 插件并在 marshal_load 处重新输入错误 Marshal.load。这是调试打开的输出:
vagrant plugin install vagrant-hostmananger --debug
INFO global: Vagrant version: 1.9.4
INFO global: Ruby version: 2.2.5
INFO global: RubyGems version: 2.4.5.1
INFO global: VAGRANT_OLD_ENV_XDG_CURRENT_DESKTOP="GNOME"
INFO global: VAGRANT_OLD_ENV_TILIX_ID="0bec956b-314e-4c6a-a2e2-14727c07c7ab"
INFO global: VAGRANT_OLD_ENV_ZSH="/usr/share/oh-my-zsh"
INFO global: VAGRANT_OLD_ENV_GNOME_DESKTOP_SESSION_ID="this-is-deprecated"
INFO global: VAGRANT_OLD_ENV_LC_CTYPE="en_US.UTF-8"
INFO global: VAGRANT_OLD_ENV_COLORTERM="truecolor"
INFO global: VAGRANT_OLD_ENV_LSCOLORS="Gxfxcxdxbxegedabagacad"
INFO global: VAGRANT_OLD_ENV_GIO_LAUNCHED_DESKTOP_FILE_PID="1173"
INFO global: VAGRANT_OLD_ENV_GDM_LANG="en_US.UTF-8"
INFO global: VAGRANT_OLD_ENV_SESSION_MANAGER="local/archerite:@/tmp/.ICE-unix/975,unix/archerite:/tmp/.ICE-unix/975"
INFO global: VAGRANT_OLD_ENV_GIO_LAUNCHED_DESKTOP_FILE="/etc/xdg/autostart/org.gnome.SettingsDaemon.MediaKeys.desktop"
INFO global: VAGRANT_OLD_ENV_OLDPWD="/home/gerassum/Projects/ogsm-app"
INFO global: VAGRANT_OLD_ENV_DISPLAY=":1"
INFO global: VAGRANT_OLD_ENV_DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
INFO global: VAGRANT_OLD_ENV_XDG_SESSION_TYPE="x11"
INFO global: VAGRANT_OLD_ENV_XDG_SEAT="seat0"
INFO global: VAGRANT_OLD_ENV_USERNAME="gerassum"
INFO …Run Code Online (Sandbox Code Playgroud) vagrant ×10
chef ×3
provisioning ×2
puppet ×2
apt ×1
arch-linux ×1
automation ×1
centos ×1
chef-solo ×1
hostname ×1
jenkins ×1
libvirt ×1
networking ×1
nginx ×1
proxy ×1
security ×1
shell ×1
squid ×1
static-ip ×1
ubuntu ×1
upstart ×1
virtualbox ×1
windows ×1
xen ×1
xenserver ×1