无法使用 Chef tomcat 设置环境变量

Unable to set environment variables using Chef tomcat

我正在使用 https://supermarket.chef.io/cookbooks/tomcat

的食谱
instance_name = node['tomcat']['name']

# Install the Tomcat Service
tomcat_install instance_name do
  version node['tomcat']['version']
  dir_mode '0755'
  install_path node['tomcat']['install_dir']
  tarball_uri node['tomcat']['install_tar']
  tomcat_user node['tomcat']['user']
  tomcat_group node['tomcat']['group']
end

tomcat_service instance_name do
  action [:start, :enable]
  env_vars [{ 'CATALINA_PID' => '/opt/tomcat_helloworld/bin/non_standard_location.pid' }, { 'SOMETHING' => 'some_value' }]
  sensitive true
end

我应该找到一个名为 SOMETHING 的环境变量,但是当我找到时

echo $SOMETHING

我没有找到,我也没有在#{derived_install_path}/bin/setenv.sh 中找到 setenv.sh 也有这个变量,但是这个文件不存在。

tomcat_service 自定义资源的 env_vars 属性 设置 Tomcat 服务 instance_name 的环境变量。 这些不是 SHELL 环境变量。

tomcat_service sets up the installed tomcat instance to run using the appropriate init system (sys-v, upstart, or systemd)

在 CentOS 中,服务由 systemctl 处理,因此这些变量被添加到相应的 Systemd 服务文件中。

示例:

/etc/systemd/system/tomcat_helloworld.service

截取的内容:

Environment="CATALINA_BASE=/opt/tomcat_helloworld"
Environment="CATALINA_PID=/opt/tomcat_helloworld/bin/non_standard_location.pid"
Environment="SOMETHING=some_value"