[英]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.