我参与了 init.pp ,它启动了我的应用程序:
systemd::service {'app':
user => 'java',
exec => "${java_home}/bin/java \
-server \
'-XX:OnOutOfMemoryError=\\'kill -9 %%p\\'' \
-Dmw.config=/etc/app/app.config \
-cp /usr/share/app/app.jar ru.app.main.Main app",
}
较新版本的 app.jar 启动方式不同。有一种方法,停止节点上的木偶,从领事注销节点,用新的 init.pp 启动木偶,并将该节点放回领事。但那感觉不对。
有没有办法在那里放一些" if" ,这样我就可以根据我的应用来回平滑过渡版本或任何其他领域?
答案 0 :(得分:1)
找到它
if $app_v2 == 'true' {
systemd::service {'app':
user => 'java',
exec => "${java_home}/bin/java \
-server \
'-XX:OnOutOfMemoryError=\\'kill -9 %%p\\'' \
-Dmw.config=/etc/app/app_new.config \
-cp /usr/share/app/app.jar ru.app.main.App app",
}
} else {
systemd::service {'app':
user => 'java',
exec => "${java_home}/bin/java \
-server \
'-XX:OnOutOfMemoryError=\\'kill -9 %%p\\'' \
-Dmw.config=/etc/app/app.config \
-cp /usr/share/app/app.jar ru.app.main.Main app",
}
}
并获取app_v2标志,添加到/lib/facter/app_v2.rb
require 'facter'
Facter.add(:app_v2) do
confine :kernel => :Linux
setcode do
result = false
if Facter::Core::Execution.exec('dpkg -l | grep app|awk \'{print$3}\'| cut -c1') == '2'
result = true
end
result
end
end