问题标签 [vagrant]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - 选择流浪者供应商
问题
谁能解释为什么选择 puppet 或 chef vagrant provisioner 比 shell 供应商更好?
背景
我正在开始使用 Vagrant。我遇到的一件事是决定使用哪个配置器。到目前为止,我在使用 shell 配置程序方面取得了一些成功,但要让它可靠地运行,它的工作量比我预期的要多。
目前,我对 ruby、puppet 或 Chef 不熟悉,但如果有必要,我很乐意学习其中的任何一个或全部。我早期玩 puppet 和 chef 的经验是,如果其他人的食谱完全符合您的要求,它会非常有效,但做一些非标准的事情意味着回退使用 ruby 编写解决方案。
我知道比较puppet 和 chef的文章,我不太担心使用它们中的哪一个,而不是知道何时以及为什么应该使用它们。
mongodb - MongoDB 无法在 NFS 共享上分配数据文件
背景:
我使用 Vagrant (http://vagrantup.com/) 创建一个用于开发的虚拟机。我使用名为 Buildout 的 Python 构建系统来管理和构建我的项目。我使用安装和配置 MongoDB 的 Buildout 配方。它将 MongoDB 数据放入项目中的目录中。当不使用虚拟机时,这一切都很好。Vagrant 已设置为源代码存储库存在于主机上,并由虚拟机通过 NFS 访问。
我想做什么:
我想以流浪用户(在来宾操作系统中)运行 mongod,并在 NFS 共享中拥有数据目录。尝试像这样启动服务器会导致错误:
mongod 无法创建数据文件。错误消息是“警告:posix_fadvise 失败 /nfs_share/mongodb/data/local/local.ns errno:1 Operation not allowed”。这最初表明文件权限是错误的。我不认为它们是因为数据目录是组可写的,而 vagrant 在组“dialout”中,该组是 NFS 共享的组所有者。我的第二个猜测是 NFS 是罪魁祸首。当我在不是 NFS 的文件系统上运行此命令时,一切正常。我不确定出了什么问题。在 MongoDB 邮件列表上的搜索发现了一条消息 ( http://groups.google.com/group/mongodb-user/browse_thread/thread/4129325d3a9a3237 ),有人说如果数据目录不支持,NFS 将无法与 MongoDB 一起工作。 t 支持排他锁。
可能的解决方案:
在存储库中放置一个符号链接,指向非 NFS 位置的数据目录
- 这就是我目前正在做的事情。这不是很好,因为它不适用于 Buildout 配方,必须手动完成。
- 没有简单的方法可以确定 Buildout 是否在虚拟机中运行。也许它可以检测文件系统是否为 NFS 并被编写相应的脚本?
- 将项目的组件放在不同的地方有点烦人。相反,Postgres 数据在别处,为什么不把 MongoDB 数据也放在别处呢?
问题:
- 我看到的错误实际上与 NFS 有关吗?还是有其他可能的原因?
- 排他锁是 NFS 的一个特性吗?可以启用/禁用吗?
- 我在 MongoDB 邮件列表上阅读了有关人们在 NFS 上运行 MongoDB 的报告。是否有任何特殊考虑需要这样做?
ruby - 使用 Chef 和 Vagrant 在 Ubuntu 上安装 Ruby 1.9.2
我想用 Ruby 1.9.2 配置一个新的 Ubuntu 10.04 机器。我正在使用 Vagrant 和 Chef Solo 为这个盒子提供我需要的所有其他东西(例如 Rails、Rake、MongoDB)。默认的 Ruby 版本是 1.8.7。
有没有办法在 Vagrant/Chef 配置过程中安装 Ruby 1.9.2?
我在 Chef 网站上阅读了有关使用我自己的引导模板(可能带有刀)的信息,例如这个,但是因为我使用的是 Vagrant,所以我不确定该模板放在哪里——我没有厨师—— repo,一个 .chef 目录,甚至是安装在 /etc/chef 中的任何 Chef 内容。
ruby - 厨师食谱:不以 Ruby 开头的 Upstart 守护进程
我想运行一个 ruby mongrel 脚本作为我的供应系统 (CHEF) 的最后一步。因此,我编写了一个新贵 .conf 文件,其中包含以下条目:
但是 log.txt 文件为空并正在运行 netstat -an | grep 3000 什么也没显示。我认为该脚本不可执行,但运行 chmod 并没有改变任何东西。
但是,如果我手动执行脚本,我可以启动服务器
脚本的内容是:
我使用 RVM 和 Ruby 1.8.7、Rubygems 1.3.7 在 Vagrant 上运行。引导配方是:
任何的想法?谢谢
django - 你是如何设置你的 Django 开发环境的?
我正在尝试使用启用了Vagrant的 VM 设置本地 Django 开发环境,但我不确定最好的方法是什么。
我git clone
为生产服务器上的 Django 文件做了一个,并安装了生产服务器在我的本地 VM 上的所有模块。我想避免在本地 VM 上安装数据库,但在会话中遇到了一些问题。本地机器正在使用SESSION_COOKIE_DOMAIN='localhost'
,而生产正在使用SESSION_COOKIE_DOMAIN='.mydomain.com'
,这会造成一些混乱。
更不用说在我的开发环境中的 setting.py 上,我必须更改 IP 以指向数据库的公共 IP 地址(从而在安全性上戳个洞),而我的生产 settings.py 使用本地 IP,所以我最终使用了不同的 settings.py 文件。
我可以继续尝试新方法,但我真的必须开始这个项目,我很确定有些人已经想通了。
那么你是如何设置你的 Django 开发环境的呢?
vagrant - Vagrant 在哪里保存对 VM 的更改?
我刚从 Vagrant 开始,我在理解一些细节时遇到了一些麻烦。我已经阅读了文档,但仍然缺少一个基本概念。当我想启动一个 Vagrant 盒子时,我运行:
vagrant up
这将“基于盒子构建 VM” 我知道盒子存储在 ~/.vagrant.d 中,实际上我已经从一个基本的 Ubuntu 盒子打包了我自己的盒子。但是,当我运行 vagrant up 并开始向 vm 添加文件时,vm 的虚拟硬盘存储在哪里?比如我运行apt-get install apache2,修改了root系统,这个修改在哪里?
当我对当前目录执行 du 时,我看不到任何更改。我也没有在 ~/.vagrant.d 目录中看到任何更改。但是,我可以做 vagrant halt,重新启动我的本地机器,然后再次运行 vagrant up,并且更改会保留在某个地方。
vagrant up 也报告了
有人能告诉我虚拟机是在哪里创建的以及在哪里进行的更改吗?
chef-infra - 如何在 Vagrant 框中安装 Postgresql
我正在尝试将 postgresql 安装在 vagrant box 中,但没有运气。我尝试使用 Chef AND Puppet 进行配置,然后最后只是 ssh'd 进入盒子并尝试 apt-get install ......结果是一样的。
通过厨师:
通过 apt-get
有人经历过这个还是我只是一个假人?:)
chef-infra - 如何在厨师食谱中转换以下 shell 命令?
如何在厨师食谱中转换以下 shell 命令?
安装
为 nginx 创建一个 Upstart 文件
须藤 vim /etc/init/nginx.conf
重启虚拟机
验证 nginx 运行
window - 挂载网络驱动器在 DOS 中工作,但在 Cygwin 中中断。为什么?
我正在使用 VirtualBox 来设置 Windows 2008 服务器。我想添加一个共享文件夹,但遇到了问题。
在 DOS 中运行它可以:
但是在 Cygwin 中:
我也试过这些:
我已经尝试创建一个包含工作 DOS 命令的 bat 脚本,并从 cygwin 执行它。它们都因相同的错误而失败。
我需要通过 Cygwin 来完成,因为我通过 SSH 访问系统,并进入 Cygwin 环境。如果有任何方法可以暂时从 Cygwin 内部“突围”出 cygwin,那可能是一条可行的路。
我错过了什么?
ruby - 为什么 STOMP、ActiveMQ 和 Vagrant 不能在我的系统上运行?
我有两台流浪机器。第一个名为“web”,包含一个小型 Ruby 应用程序,第二个名为“mq”,安装了 ActiveMQ。我无法将我的应用程序与 ActiveMQ 连接起来。
流浪者配置文件:
我的 Ruby Stomp 应用程序位于我的“网络”机器上:
ActiveMQ 配置文件 ( activemq.xml
):
机器可以相互通信。
从机器“网络”:
从机器“mq”:
最后,当我尝试执行应用程序时,出现此错误: