如何在 Chef 中自定义 tomcat 食谱
Posted
技术标签:
【中文标题】如何在 Chef 中自定义 tomcat 食谱【英文标题】:How to customise a tomcat recipe in Chef 【发布时间】:2015-09-13 10:46:56 【问题描述】:我一直在尝试定制一个 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
cookbooks/tomcat-app/recipes/default.rb
#
# Cookbook Name:: tomcat-app
# Recipe:: default
package "tomcat7" do
action :install
end
cookbooks/tomcat-app/attributes.rb
node.default["tomcat"]["port"] = 8083 <-- can't seem to make this apply
谢谢,
【问题讨论】:
只安装一个包但不配置它... 你是在使用 opscode 的 tomcat 食谱还是在使用其他食谱?食谱代码是否可以在任何地方查看?正如 Roland 指出的那样,如果您的食谱代码只是您没有告诉厨师任何关于在何处以及如何使用该属性的信息。 【参考方案1】:作者寄语
这个答案现在已经 5 岁了。它可能不适用于您今天的场景。
我怀疑您正在编写自己的 tomcat 食谱?节点属性覆盖仅适用于此处记录的开源说明书:
java tomcat示例
这是一个利用 vagrant 的测试厨房示例。
├── .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]"
]
伯克斯文件
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
【讨论】:
谢谢,很好的解释 您好,我的tomcat版本是7.0.62。 KCI 在it should be_running
上失败。但是,在服务器上,tomcat 进程运行正常。你能说明为什么会这样吗?以上是关于如何在 Chef 中自定义 tomcat 食谱的主要内容,如果未能解决你的问题,请参考以下文章
无法在 AWS Opsworks 上使用 Chef 12 查找 Chef 社区食谱
如何使用 Centos Vagrant guest(类似 Amazon Linux)在 Linux (Debian9) 上本地调试 Opsworks/Chef 11.10.4 食谱