使用 Chef Solo 和 Vagrant 安装给定版本的 MongoDB
Install a given version of MongoDB with Chef Solo and Vagrant
出于教育目的,我正在和 Vagrant 和 Chef Solo 一起玩。我会养一台 Ubuntu 机器给定的 MongoDB 版本(以后我会和我的同事分享机器来做开发机器,所以我们都需要 运行相同的环境)。
这是我的 Vagrantfile,它可以工作并使用 this MongoDB recipe(以及所有相关的依赖项):
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision "chef_solo" do |chef|
chef.add_recipe "mongodb"
chef.json = {
"mongodb" => {
"package_version" => "2.6.4"
}
}
end
config.vm.network "forwarded_port", guest: 27017, host: 27017
end
在 vagrant up
之后,结果是不可预测的,因为安装的版本不反映 package_version
。错误在哪里?我可以指定要安装的版本吗?
默认情况下,它会尝试安装 ubuntu 仓库中提供的 mongo deb 包。您指定的要安装的版本不在此存储库中:
==> default: STDERR: E: Version '2.6.4' for 'mongodb' was not found
如果您想安装与 ubuntu 提供的版本不同的替代版本,您需要在 mongodb-org 存储库中添加。您可以通过添加以下配方来做到这一点:
chef.add_recipe "mongodb::mongodb_org_repo"
所以你的 Vagrantfile 现在看起来像:
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision "chef_solo" do |chef|
chef.add_recipe "mongodb::mongodb_org_repo"
chef.add_recipe "mongodb"
chef.json = {
"mongodb" => {
"package_version" => "2.6.4"
}
}
end
config.vm.network "forwarded_port", guest: 27017, host: 27017
end
您可以确认安装的 mongodb-org 包的版本:
vagrant@precise64:~$ dpkg -l | grep mongodb-org
ii mongodb-org 2.6.4 MongoDB open source document-oriented database system (metapackage)
ii mongodb-org-mongos 2.6.11 MongoDB sharded cluster query router
ii mongodb-org-server 2.6.11 MongoDB database server
ii mongodb-org-shell 2.6.11 MongoDB shell client
ii mongodb-org-tools 2.6.11 MongoDB tools
出于教育目的,我正在和 Vagrant 和 Chef Solo 一起玩。我会养一台 Ubuntu 机器给定的 MongoDB 版本(以后我会和我的同事分享机器来做开发机器,所以我们都需要 运行相同的环境)。 这是我的 Vagrantfile,它可以工作并使用 this MongoDB recipe(以及所有相关的依赖项):
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision "chef_solo" do |chef|
chef.add_recipe "mongodb"
chef.json = {
"mongodb" => {
"package_version" => "2.6.4"
}
}
end
config.vm.network "forwarded_port", guest: 27017, host: 27017
end
在 vagrant up
之后,结果是不可预测的,因为安装的版本不反映 package_version
。错误在哪里?我可以指定要安装的版本吗?
默认情况下,它会尝试安装 ubuntu 仓库中提供的 mongo deb 包。您指定的要安装的版本不在此存储库中:
==> default: STDERR: E: Version '2.6.4' for 'mongodb' was not found
如果您想安装与 ubuntu 提供的版本不同的替代版本,您需要在 mongodb-org 存储库中添加。您可以通过添加以下配方来做到这一点:
chef.add_recipe "mongodb::mongodb_org_repo"
所以你的 Vagrantfile 现在看起来像:
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision "chef_solo" do |chef|
chef.add_recipe "mongodb::mongodb_org_repo"
chef.add_recipe "mongodb"
chef.json = {
"mongodb" => {
"package_version" => "2.6.4"
}
}
end
config.vm.network "forwarded_port", guest: 27017, host: 27017
end
您可以确认安装的 mongodb-org 包的版本:
vagrant@precise64:~$ dpkg -l | grep mongodb-org
ii mongodb-org 2.6.4 MongoDB open source document-oriented database system (metapackage)
ii mongodb-org-mongos 2.6.11 MongoDB sharded cluster query router
ii mongodb-org-server 2.6.11 MongoDB database server
ii mongodb-org-shell 2.6.11 MongoDB shell client
ii mongodb-org-tools 2.6.11 MongoDB tools