- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我最近一直在尝试学习 chef,因为我打算用它来部署服务器配置和服务器应用软件。我在理解如何使用其他人的 Recipe 时遇到问题。比如我要部署JDK8u31。我不知道如何实现这本 Recipe 。 https://supermarket.chef.io/cookbooks/java
我阅读了说明并看到了以下内容
只需在您希望安装 Java 的任何地方包含 java 配方,例如运行列表 (recipe[java]) 或 Recipe (include_recipe 'java')
我试过了
include_recipe 'java'
在我名为 common_java_server 的 Recipe 中
然后
directory '/usr/lib/jvm/' do
owner 'root'
group 'root'
mode '0644'
end
java_ark "jdk" do
url 'http://download.oracle.com/otn-pub/java/jdk/8u31/jdk-8u31-linux-x64.bin'
checksum 'a8603fa62045ce2164b26f7c04859cd548ffe0e33bfc979d9fa73df42e3b3365'
app_home '/usr/lib/jvm/'
bin_cmds ["java", "javac"]
action :install
end
# set alternatives for java and javac commands
java_alternatives "set java alternatives" do
java_location '/usr/local/java'
bin_cmds ["java", "javac"]
action :set
end
这是我得到的错误
Recipe Compile Error in /etc/chef/src/cookbooks/common/recipes/java_dev_server.rb
====
最佳答案
java cookbook旨在支持安装不同的 Java 变体。它的行为由节点属性控制。默认值在 cookbook 中并将安装 OpenJDK。
因此,要安装 oracle JDK,您需要指定替代覆盖,这些将在 README 中讨论。
你是怎么做到的?在 Chef 中,您至少有两个选择:
有关包装器 Recipe 的示例,请引用我的其他答案。
举个例子试试这个:
{
"name": "java",
"description": "Oracle java role",
"override_attributes": {
"java": {
"jdk_version": 8,
"install_flavor": "oracle",
"oracle": {
"accept_oracle_download_terms": true
}
}
},
"run_list": [
"recipe[apt]",
"recipe[java]"
]
}
将此角色添加到您的节点的运行列表中,然后将安装 OracleJDK。
以下是一个测试厨房示例,它将针对 ubuntu 和 centos 安装和测试“java”角色
├── Berksfile
├── .kitchen.yml
├── roles
│ └── java.json
└── test
└── integration
└── default
└── serverspec
└── java_spec.rb
安装chefDK、vagrant并运行以下命令
kitchen test
注意事项:
source "https://supermarket.chef.io"
cookbook "apt"
cookbook "java"
---
driver:
name: vagrant
provisioner:
name: chef_zero
require_chef_omnibus: 12.0.3
client_rb:
"Ohai::Config[:disabled_plugins] = [:GCE] #":
platforms:
- name: ubuntu-12.04
- name: centos-6.4
suites:
- name: default
run_list:
- role[java]
注意事项:
见上文
require 'serverspec'
# Required by serverspec
set :backend, :exec
describe file('/usr/lib/jvm/java-8-oracle-amd64/release'), :if => os[:family] == "ubuntu" do
it { should contain 'JAVA_VERSION="1.8.0_31"' }
end
describe file('/usr/lib/jvm/java/release'), :if => os[:family] == "redhat" do
it { should contain 'JAVA_VERSION="1.8.0_31"' }
end
关于java - java cookbook 可以用来安装 oracle java 的本地副本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28776899/
我正在尝试为服务器提供依赖于旧版本 mysql cookbook (5.6.3) 的 Chef 项目。由于这个特定版本与 Ubuntu 14.04 之后的任何更新版本都不兼容,我尝试更新到最新版本 (
我正在为厨师学习曲线而苦苦挣扎。这两个命令有什么区别,为什么有两个? knife cookbook :knife cookbook 子命令用于与位于 Chef 服务器或本地 Chef-repo 上的
我正在接受以下 Chef 服务器培训: 学习 Chef>教程>管理节点>Red Hat Enterprise Linux>Hosted Chef>将说明书上传到 Chef 服务器 教程刚刚让我使用“k
我打算使用 https://github.com/opscode-cookbooks/mysql但是当我运行 vagrant provision 时 找不到菜谱 mysql 的 recipe ruby
我正在写一本 Recipe ,在同一台主机上安装多个 tomcat 实例。我为多个实例创建了一个散列,这个散列将包含 shutdown_port 和 startup_port 的键值对。例如 - in
我已经搞了两天了,还是没明白。基本上,我从头开始使用 JQuery Cookbook 模式。我的问题是表单 html 页面加载正常,但代码无法识别我的提交按钮。这是代码的相关部分: 单独的 HTML:
本文实例讲述了Python在字符串的开头或结尾处进行文本匹配操作。分享给大家供大家参考,具体如下: 问题:在字符串的开头或结尾处按照指定的文本模式做检查,例如检查文件的扩展名、URL协议类型等;
本文实例讲述了Python将多个映射合并为单个映射的方法。分享给大家供大家参考,具体如下: 问题:在逻辑上将多个字典或映射合并为一个单独的映射结构,以此执行某些特定的操作,比如查找值或者检查键是否
本文实例讲述了Python针对任意多的分隔符拆分字符串操作。分享给大家供大家参考,具体如下: 问题:将分隔符(以及分隔符之间的空格)不一致的字符串拆分为不同的字段; 解决方案:使用更为灵活的re
本文实例讲述了Python从字典中提取子集的方法。分享给大家供大家参考,具体如下: 问题:想创建一个字典,其本身是另一个字典的子集 解决方案:利用字典推导式(dictionary compreh
本文实例讲述了Python将名称映射到序列元素中的方法。分享给大家供大家参考,具体如下: 问题:希望通过名称来访问元素,减少结构中对位置的依赖性 解决方案:使用命名元组collections.n
本文实例讲述了Python同时对数据做转换和换算处理操作。分享给大家供大家参考,具体如下: 问题:我们需要调用一个换算函数(例如sum()、min()、max()),但是首先需对数据做转换或者筛选
本文实例讲述了Python找出序列中出现次数最多的元素。分享给大家供大家参考,具体如下: 问题:找出一个元素序列中出现次数最多的元素是什么 解决方案:collections模块中的Counter
本文实例讲述了Python通过公共键对字典列表排序算法。分享给大家供大家参考,具体如下: 问题:想根据一个或多个字典中的值来对列表排序 解决方案:利用operator模块中的itemgetter
本文实例讲述了Python实现对不原生支持比较操作的对象排序算法。分享给大家供大家参考,具体如下: 问题:想在同一个类的实例之间做排序,但是它们并不原生支持比较操作。 解决方案:使用内建的sor
本文实例讲述了Python根据字段将记录分组操作。分享给大家供大家参考,具体如下: 问题:想根据字典或者对象实例的某个特定的字典(比如日期)来分组迭代数据 解决方案:itertools.grou
本文实例讲述了Python筛选及提取序列中元素的方法。分享给大家供大家参考,具体如下: 问题:提取出序列中的值或者根据某些标准对序列做删减 解决方案:列表推导式、生成器表达式、使用内建的filt
本文实例讲述了Python从序列中移除重复项且保持元素间顺序不变的方法。分享给大家供大家参考,具体如下: 问题:从序列中移除重复的元素,但仍然保持剩下的元素顺序不变 解决方案: 1、如果序列中
本文实例讲述了Python对切片命名清除索引的方法。分享给大家供大家参考,具体如下: 问题:如何清理掉到处都是硬编码的切片索引 解决方案:对切片命名 假设有一些代码用来从字符串的固定位置中取出
我已经在这本 Recipe 上苦苦挣扎了一段时间了。 我正在尝试将包括 Azure SDK 在内的许多资源安装到 Windows Server 2012 R2 实例上。 最初我在堆栈跟踪中收到以下错误
我是一名优秀的程序员,十分优秀!