繁体   English   中英

编写自定义厨师食谱以安装和运行本地应用

[英]Writing custom Chef cookbook to install and run homegrown app

我是Chef的新手,正在尝试创建一个简单的自定义菜谱。 我有一个托管在私有二进制存储库上的可执行JAR,我希望我的食谱可以安装此JAR,将服务器配置为能够运行JAR,然后再实际运行它。

具体来说,我希望菜谱能够:

  • http://myrepo.example.com/myapp.jar下载到节点上的/opt/myapp/bin 然后
  • MYAPP_HOME env var设置为/opt/myapp/bin ; 然后
  • 运行java -jar /opt/myapp/bin/myapp.jar --setup

显然,此菜谱取决于提前在服务器上安装Java(理想情况下为8+)。

以这份出色的指南为起点,这是迄今为止我最好的尝试:

创建食谱:

刀创建食谱食谱-myapp -o食谱/ -r md

/cookbooks/cookbook-myapp/recipes/default.rb

package http://myrepo.example.com/myapp.jar

service "myapp" do
    action :install
end

env 'MYAPP_HOME' do
    value '/opt/myapp/bin'
end

bash 'run_jar' do
    code <<-EOH
    java -jar ${MYAPP_HOME}/myapp.jar --setup
    EOH
end

但这显然是错误的。 任何人都可以给我正确的方向任何想法或推动?

remote_file '/path/to/myapp' do
  source 'http://myapp.repo.com/myapp.jar'
end

template '/etc/init.d/myapp.conf' do
  source 'myapp.init.config.erb'
  variables :home => '/opt/myapp/bin'
end

service 'myapp' do
  action [:enable, :start]
end

并且,当然,您需要在cookbook/templates/default编写myapp.init.conf.erb。 这是用于将应用程序作为服务运行的初始化脚本,其中包括bash命令和设置环境变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM