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

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

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

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

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

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

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

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

  1. 自行创建一个 企业 Chef 帐户
  2. 打开您的 Chef 组织页面 并选择您的组织。
  3. 单击 download StarterKit 并将下载的包解压到您的本地文件系统。这会创建一个名为 chef-repo 的目录。

设置 git,并安装操作手册和它们的依赖项

  1. 在您的 StarterKit chef-repo 目录中打开一个 Git Bash 提示符。
  2. 通过以下命令初始化 Git:
    $ git init .
    $ git add .
    $ git commit -m "Initial commit"
  3. 将 Chef 操作手册安装到您的本地 chef-repo 目录。这也会自动安装所有依赖的操作手册,比如 wlpjava 操作手册:
    $ knife cookbook site install apt
    $ knife cookbook site install application_wlp

创建一个 recipe 来部署 JSPExample 应用程序

  1. chef-repo 目录中,转到 cookbooksstarterrecipes
  2. 创建一个包含以下内容的名为 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
  3. chef-repo 目录中,编辑文件 cookbooksstartermetadata.rb ,并在该文件底部添加下面这行代码:
    depends "application_wlp"
  4. 4.再次回到 Git Bash 提示符,输入:
    $ knife cookbook upload --all

使用 Vagrant 配置并启动 VirtualBox

  1. 编辑 chef-repo 目录中的 Vagrantfile 配置文件,并将以下行中的 8080 更改为 9080:
    config.vm.network :forwarded_port, guest: 8080, host: 9090
  2. 2.要启动您的虚拟机,请在处于 chef-repo 目录的 Git Bash 提示符中输入以下内容:
    $ vagrant up

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

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

  1. 1.在 VM 启动后,使用以下命令在 VM 上配置 Chef:
    $ knife bootstrap localhost  --ssh-user vagrant --ssh-password vagrant --sudo --run-list "recipe[apt]" --ssh-port 2222

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

  2. 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. 1.使用以下命令,为 Chef 节点更新配置 Liberty 操作手册所需的属性:
    $ knife node edit <yourName>-starter

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

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

  2. 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. 3.通过以下命令进入您的 VM:
    $ vagrant ssh
  4. 在提示符中,输入以下命令来手动运行 chef-client:
    ~$ sudo chef-client

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

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

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

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

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


在 developerWorks 上的相关资源:



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

加入讨论