Как настроить рецепт кота в Chef
Я пытался настроить рецепт шеф-повара Tomcat, но ничего, что я делаю, кажется, не изменит установку Tomcat. Я использую бродягу то есть.
vagrant destroy && vagrant up
В Vagrantfile
config.vm.provision :chef_solo do |chef|
chef.add_recipe "apt"
chef.add_recipe "nginx-app"
chef.add_recipe "tomcat-app"
end
поваренные книги / кот-приложение / Рецепты / default.rb
#
# Cookbook Name:: tomcat-app
# Recipe:: default
package "tomcat7" do
action :install
end
поваренные книги / кот-приложение / attributes.rb
node.default["tomcat"]["port"] = 8083 <-- can't seem to make this apply
Спасибо,
1 ответ
Решение
Я подозреваю, что вы пишете свою собственную кулинарную книгу котов? Переопределение атрибута узла работает только с поваренными книгами с открытым исходным кодом, описанными здесь:
пример
Это тестовый пример кухни, который использует бродяги.
├── .kitchen.yml
├── Berksfile
└── test
└── integration
├── default
│ └── serverspec
│ └── tomcat_spec.rb
└── roles
└── tomcat.json
Роль "tomcat" иллюстрирует, как установить список выполнения и переопределить атрибуты.
.kitchen.yml
---
driver:
name: vagrant
provisioner:
name: chef_zero
platforms:
- name: ubuntu-14.04
suites:
- name: default
run_list:
- role[tomcat]
attributes:
тест / интеграция / роли / tomcat.json
{
"name": "tomcat",
"description": "Runs tomcat with oracle JDK",
"override_attributes": {
"java": {
"jdk_version": 8,
"install_flavor": "oracle",
"oracle": {
"accept_oracle_download_terms": true
}
},
"tomcat": {
"base_version": 7,
"port": 8081
}
},
"run_list": [
"recipe[apt]",
"recipe[java]",
"recipe[tomcat]"
]
}
Berksfile
Berkshelf автоматически загружает поваренные книги из супермаркета шеф-повара.
source 'https://supermarket.chef.io'
cookbook "apt"
cookbook "java"
cookbook "tomcat"
тест / интеграция /serverspec/tomcat_spec.rb
require 'serverspec'
set :backend, :exec
describe service('tomcat7') do
it { should be_running }
end
describe port('8081') do
it { should be_listening }
end
describe process('java') do
it { should be_running }
its(:args) { should match /org.apache.catalina.startup.Bootstrap/ }
end