- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望创建一个基于 Web 的应用程序的开发人员环境,该环境将使用 vagrant 在 VM 上安装应用程序服务器和数据库服务器。我正在使用开源厨师服务器和 Vagrant chef_client
供应商。但是,每次配置开发人员节点时,chef_client
供应商在厨师服务器上创建一个客户端节点。这是不可取的,因为此设置将被许多开发人员使用。此类节点可能会多次创建和销毁。因此不需要在 Chef 服务器上维护此类节点的列表。chef_solo
是另一种选择,但它要求系统中存在食谱。我们也使用厨师服务器作为食谱的存储库。因此,开发人员不需要在他/她的系统中拥有特定的食谱。我也看过berkshelf,我可以在哪里配置chef_api
厨师服务器的路径。但这也需要一个节点。以下是我的 Vagrant 文件:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "precise64-chef"
config.vm.network :private_network, ip: "33.33.33.10"
config.omnibus.chef_version = '11.8.2'
config.vm.provision "chef_client" do |chef|
chef.log_level = :debug
chef.environment = "development"
chef.delete_node = true
chef.delete_client = true
chef.node_name = "sample_app"
chef.chef_server_url = "https://chef-server-url"
chef.validation_key_path = "chef-validator.pem"
chef.add_role "base"
chef.add_role "pg_client"
chef.add_role "application_server"
chef.add_role "db_server"
chef.add_recipe "deploy_application"
end
end
sample_app
厨师服务器上的节点。否则这符合我的目的。欢迎使用厨师服务器提供开发人员环境的任何其他策略。
最佳答案
立即解决
屠夫插件
立即想到的答案是使用 vagrant butcher插入。这将自动删除您的开发人员客户端和 Chef 服务器上的节点条目。
长期解决方案
因为您知道 Berkshelf "chef_api" directive我将假设您有一个典型的企业场景,其中几个开发人员正在共享本地开发的食谱。
这就是我和厨师一起做的事情......
厨师食谱存储库模式
保留一个厨师服务器的实例作为食谱的存储库。每个已发布的食谱版本都推送到此处,并可供所有 Chef 内部用户使用。
要维护存储库说明书,请使用 Jenkins 为说明书实现 CI 过程。 Jenkins 工作从本地 GIT 存储库或社区食谱站点中提取。这种方法的优点是可以使用 chef spec 自动化测试。可以使用 foodcritic 之类的工具来实现 QA 规则。 .通过这种方式,构建失败有助于提高组织内使用的食谱的整体质量。
我认为当 Berkshelf 人最终推出 Berkshelf 3.0 时,我们将更多地采用这种存储库模式。 (另见 berkshelf-api)。
使用 Berkshelf 加载食谱
Berkshelf 用于控制将食谱加载到所有厨师服务器(开发或生产)中。以下是一个演示“Berksfile”:
chef_api "https://cookbook.repo.myorg.com/", node_name: "dev1", client_key: "/path/to/dev1/private/key/key.pem"
cookbook "apache2"
cookbook "mysql"
...
chef_api "https://cookbook.repo.myorg.com/".....
metadata
关于chef-infra - 使用 Chef 服务器和 Vagrant 提供开发人员环境而无需注册节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22280706/
我正在尝试使用命令在 centos 上安装 berks: [root@ip~]#gem install berkshelf --no-ri --no-rdoc 安装后,我使用以下命令验证了是否安装了
我正在尝试使用 ChefSpec 在 Chef 中测试提供程序。在这个提供者中,我正在调用另一个外部提供者,我想模拟/禁用它,以便只执行我的提供者,而不是外部提供者。 我的提供者基本上是这样的: ac
我只是想在厨师中创建一本简单的食谱。我正在使用图书馆作为学习过程。 module ABC class YumD def self.pack (*count) for i in
我正在改编 Apache Recipe 以与 2.4 Apache 一起使用。 Opscode 说明书当前失败,因为它生成的 conf 文件包含从 Apache 2.4 关键字列表中排除的 LockF
我想做这样的事情: 属性/default.rb if node[:chef_environment] == 'dev' include_attribute "mbev::dev" else
好的,所以这开始是因为我试图让自动缩放的节点向 Chef 进行自我注册。我的 client.rb 中有以下内容文件: node_name "some_prefix-#{`hostname`}" 这个想
我已经通过使用Chef创建了一个用户“testuser”。如何使该用户成为sudo用户? 最佳答案 有一种方法可以使用group资源来修改sudo组: group "create testuser s
我是chef的新手,刚开始使用machine和LWRP资源。 在进行大量阅读时,我发现了converge_by一词。这是什么意思? 最佳答案 如果您编写自己的纯Ruby代码,以修改LWRP中的系统,那
我有节点的配方和属性文件。例如。本地主机和 linode。我试图在默认或其他属性之前先加载属性文件(并设置主机名等)。例子: 属性/本地主机.rb: default[:hostname] = "loc
在test-kitchen中,有没有办法更新创建的实例而不是每次都销毁和重新创建实例?假设我更改了 kitchen.yml 并希望看到该更改,运行整个 destroy/create 可能需要一段时间。
我正在遵循确切的语法,但是在向我的一个节点添加角色时看到一些奇怪的行为 我正在运行以下命令,该命令理想情况下应添加角色-将Web服务器添加到do_node knife node run_list ad
我正在寻找关于厨师的重启机制如何在幕后工作的解释。我在网上找不到它的任何文档,并且在试图跟踪代码时遇到了困难(触发器是令人毛骨悚然的远距离 Action )。 我们具体看nginx ,并假设我们使用的
在哪里可以找到已部署的说明书版本? 似乎自动属性不听版本。 有没有办法访问食谱或模板中某处的cookbook_version? 最佳答案 您必须访问 Chef 运行知道的食谱集合。 run_conte
Chef中收敛和幂等的基本区别是什么? 最佳答案 收敛和幂等不是 Chef 特有的。它们通常归因于配置管理理论,尽管在其他领域也有使用,尤其是数学。 让我们从更基本的幂等开始。我们将忽略幂等的数学用法
我目前在食谱中使用此代码: template "/var/django/.ssh/id_rsa" do source "id_rsa.erb" owner "django" g
resource_directory只有2个可用操作:create和delete 我需要递归更新目录的所有者和组。 我怎么做? 使用简单的resource_execute? execute "chow
我一直在尝试找出如何将节点名称(knife bootstrap -N)放入模板中。我尝试了十二种不同的想法,但还没有发现任何可行的方法。有人知道如何从厨师食谱中访问吗? 另外-有没有办法列出厨师食谱可
我有一个Vagrant系统已启动并正在运行,我想对其进行更改,这一更改与更改转发规则之一一样少。 从this page: Forwarded ports are applied during vagr
假设我在 Recipe 中有一个默认属性: default.nginx_upstreams = { 'service1' => ['service1.server.com'], 'se
我使用的 ChefDK 具有以下版本: Chef Development Kit Version: 0.17.17 chef-client version: 12.13.37 delivery ver
我是一名优秀的程序员,十分优秀!