我最近一直在尝试学习厨师,因为我打算使用它来部署服务器配置和服务器应用程序软件。我在理解如何使用其他人的食谱方面遇到问题。例如,我要部署JDK8u31。我无法弄清楚如何实现本食谱。https://supermarket.chef.io/cookbooks/java
我阅读了说明,然后看到以下内容
只需在需要安装Java的任何地方添加Java配方,例如运行列表(recipe [java])或食谱(include_recipe’java’)
我试过了
include_recipe 'java'
在我的食谱common_java_server中
然后
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的食谱被设计为支持安装不同的Java变种。它的行为由节点属性控制。默认值在食谱中,并将安装OpenJDK。
因此,要安装oracle JDK,您需要指定替代替代,有关这些替代的内容,请参见自述文件
你怎么做到这一点?在厨师中,您至少有两个选择:
对于示例角色,请尝试以下操作:
{
"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
本教程将带你了解如何在本地计算机上安装和运行Hyperledger Composer Playground。它还创建了Hyperledger Fabric v1.0的一个实例。 Hyperledger Composer Playground还可以在“仅浏览器”模式下使用,不需要运行Hyperledger Fabric实例。在此模式下使用时,Hyperledger Composer Playgrou
我是lodash的新手,我已经将lodash安装为 我在我的索引中调用它。js文件作为 然而,这是不工作的,它显示在控制台上的错误为 指数js:1未捕获的语法错误:意外的标识符“\u1” 我没有使用节点。js
问题内容: 我需要在本地主机(CentOS)中安装Jenkins,并尝试在以下链接中发布过程: https://wiki.jenkins- ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions 但这给出了一个错误, 正在解析pkg.jenkins-ci.org … 63.246.20.93连接到pkg.jenkins-c
npm警告checkPermissions缺少对/usr/local/lib/node_modules的写访问权限npm错误!path/usr/local/lib/node_modules npm错误!代码EACCES npm错误!错误-13 npm错误!系统调用访问npm错误!错误:EACCES:权限被拒绝,访问'/usr/local/lib/node_modules'npm错误!{错误:eac
问题内容: 我想使用NSIS脚本安装Java,但是我必须知道系统(Windows)中是否安装了Java。根据注册码,如何检查是否已安装Java? 有人可以提供NSIS脚本来根据注册密钥检查Java安装吗? 问题答案: 我没有编译它,但是我会尝试跟随。我基于如何检测Windows上已安装的Sun JRE选择了注册表项?。
问题内容: 我可以以某种方式跳过对项目的本地Gulp安装吗? 我在全球范围内安装了Gulp,并将其作为依赖项添加到package.json中。但Gulp仍然希望随消息一起在本地安装。如果执行本地安装,则Gulp将按节点复制到我的项目中。 有没有办法跳过Gulp的本地安装?我希望能够从命令行在整个服务器上运行它并全局管理它的安装。 问题答案: 一种干净的方法是在本地没有安装 gulp ,就像在本地一