针对 Liberty 的 Chef 操作手册入门

2017-12-27 10:58:53来源:https://developer.ibm.com/cn/blog/2017/getting-started-chef-作者:developerWorks Developer Cente人点击

分享

使用 Chef 操作手册设置并运行 WebSphere Liberty 的快速指南。设置一个虚拟机,其中运行一个带有已部署好的样本应用程序的 Liberty 服务器。


针对 WebSphere Liberty 的 Chef 操作手册有多个版本。本文是一篇使用这些操作手册设置并运行快速指南。这些操作手册将会设置一个虚拟机,其中运行一个带有已部署好的样本应用程序的 Liberty 服务器。



Opscode Chef
是一个用于实现基础架构自动配置的流行的 DevOps 解决方案。使用 Chef,您可以从操作系统进行配置;应用系统更新,修改配置文件,重新启动任何必要的系统服务,应用并配置中间件和应用程序。



您可以通过 Chef 操作手册完成这些任务,操作手册中包含各种 recipe、模板和属性。这些操作手册控制着基础架构的自动化。您可以编写自己的操作手册或利用Opscode 社区
中发布的社区贡献的操作手册。有许多针对流行软件包的操作手册可供使用,包括针对 IBM WebSphere Liberty 的操作手册。


在您的工作站上设置 Chef 环境


设置 Chef 环境的步骤已在Chef 快速入门指南
中介绍,这些步骤可以归纳为:


安装 Chef
安装 Vagrant
安装 VirtualBox
安装 Git

在安装这些产品时接受所有默认选项。


Chef 需要知道您喜爱的编辑器。如果使用 Windows 和 WordPad,请在命令提示符中输入以下命令:


setx EDITOR ""%ProgramFiles%Windows NTAccessorieswordpad.exe""

The next time you start a command prompt EDITOR will be set appropriately.


下一次启动命令提示符时,将会相应的设置 EDITOR。


export EDITOR=vi

或将下面这行代码放在您的 chef-repo 目录的 .chef/knife.rb 文件中:


knife[:editor]="vi"
创建一个 Chef 帐户并下载 Chef StarterKit
自行创建一个企业 Chef 帐户

打开您的Chef 组织页面
并选择您的组织。
单击download StarterKit
并将下载的包解压到您的本地文件系统。这会创建一个名为chef-repo
的目录。
设置 git,并安装操作手册和它们的依赖项
在您的 StarterKit chef-repo 目录中打开一个 Git Bash 提示符。
通过以下命令初始化 Git:$ git init .
$ git add .
$ git commit -m "Initial commit"
将 Chef 操作手册安装到您的本地chef-repo
目录。这也会自动安装所有依赖的操作手册,比如wlp
和java
操作手册:$ knife cookbook site install apt
$ knife cookbook site install application_wlp
创建一个 recipe 来部署 JSPExample 应用程序
在chef-repo
目录中,转到cookbooksstarterrecipes

创建一个包含以下内容的名为JSPExamples.rb
的文件:application "JSPExamples" do
repository "http://central.maven.org/maven2/org/apache/geronimo/samples/jsp-examples-war/3.0-M1/jsp-examples-war-3.0-M1.war"
path "/usr/local/JSPExamples"
scm_provider Chef::Provider::RemoteFile::Deploy
owner node[:wlp][:user]
group node[:wlp][:group]
wlp_application do
server_name "JSPExamples"
features [ "jsp-2.2", "servlet-3.0" ]
end
end
# start server if it is not running already
wlp_server "JSPExamples" do
action :start
end
在chef-repo
目录中,编辑文件cookbooksstartermetadata.rb
,并在该文件底部添加下面这行代码:depends "application_wlp"
4.再次回到 Git Bash 提示符,输入:$ knife cookbook upload --all
使用 Vagrant 配置并启动 VirtualBox
编辑chef-repo
目录中的Vagrantfile
配置文件,并将以下行中的8080
更改为9080
:config.vm.network :forwarded_port, guest: 8080, host: 9090
2.要启动您的虚拟机,请在处于chef-repo

目录的 Git Bash 提示符中输入以下内容:


$ vagrant up

首次启动需要花几分钟时间,因为要下载 vm 映像。


启动该 VM,以便可以轮询 Chef 服务器来查找配置更新

1.在 VM 启动后,使用以下命令在 VM 上配置 Chef:


$ knife bootstrap localhost--ssh-user vagrant --ssh-password vagrant --sudo --run-list "recipe[apt]" --ssh-port 2222

这会安装 Chef 客户端并对 VM 执行一些配置。


2.下载 IBM Java 和 Liberty 安装文件(也可以使用非 IBM Java 文件,但对于本示例,我们使用了 IBM Java):
从 IBM developerWorks 下载适用于 32 位 x86 平台的 Java SE Version 7,并将此文件 (ibm-java-i386-sdk-7.1-1.0.bin) 放在您的 chef-repo 目录中
从IBM WASdev 下载 Liberty 运行时 jar 和扩展的内容 jar,并将这些 jar 放在您的 chef-repo 目录中

备注:它们需要位于 chef-repo 目录中,因为 Vagrant 将此目录映射到 VM 中的 /vagrant 目录。

设置您的节点配置,以配置示例应用程序和依赖项

1.使用以下命令,为 Chef 节点更新配置 Liberty 操作手册所需的属性:


$ knife node edit <yourName>-starter


(其中<yourName>
是您的企业 Chef 帐户用户 ID)


这会打开一个包含一些 JSON 文本的编辑器。


2.在该编辑器中,添加下方以


红色


突出显示的文本,以便您的文件能够与之匹配,并保存该文件:


{
"name": "<yourName>-starter",
"chef_environment": "_default",
"normal": {
"wlp": {
"archive": {
"accept_license": "true",
"base_url": "file:///vagrant/"
}
},
"java": {
"install_flavor": "ibm",
"ibm": {
"url": "file:///vagrant/ibm-java-i386-sdk-7.1-1.0.bin",
"accept_ibm_download_terms": "true"
}
}
},
"run_list": [
"recipe[apt]",
"recipe[starter::JSPExamples]"
]
}

这会告诉 Chef 在安装时代表您接受 Liberty 和 IBM Java 许可。这些许可与您在从 ibm.com 下载时接受的许可相同。


3.通过以下命令进入您的 VM:$ vagrant ssh

在提示符中,输入以下命令来手动运行 chef-client:


~$ sudo chef-client

通常,chef-client 会以 cron 作业的形式运行,轮询 Chef 服务器以查找对其基于 JSON 的配置的更新。


安装 IBM Java 和 Liberty 需要一段时间,然后会创建并启动一个部署了 JSPExamples 应用程序的 Liberty 服务器。



就这么简单。Liberty 服务器应正常运行并提供样本应用程序。在 Web 浏览器中访问http://localhost:9090/JSPExamples/
,您会看到应用程序 Web 页面。



我们期待收到您的反馈。将您的问题发布到WASdev 论坛或Stack Overflow
上,或者发布到我们的 GitHub 存储库中的未解决问题专区:WASdev/ci.chef.wlp
和WASdev/ci.chef.wlp.application
.



要进一步了解和试验 Chef,请查看 Opscode#learnchef
页面。



在 developerWorks 上的相关资源:


传统 WebSphere 或 Liberty:如何选择?

在 5 分钟内通过 10 个简单步骤集成 JRebel 与 Liberty

使用 WebSphere Developer Tools for Eclipse 在 Liberty 上创建一个 Hello World 应用程序


本文翻译自:Getting started with the Chef cookbooks for Liberty
(2017-01-05)


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台