如何使用 Chefs Systemd_unit 资源设置多个环境变量?
How to set multiple envrionment variables with Chefs Systemd_unit resource?
我的任务是通过 chef 安装 tomcat。唯一的问题是,我的 systemd_file (tomcat.service
) 是通过厨师资源 systemd_unit
实现的。但是,一旦我收敛,日志就会警告我,密钥 Environment
被复制并因此被覆盖。
在我的旧版本中,我只是通过 chef 的 cookbook_file
资源实现了我的 tomcat.service
文件,它运行得很好。
问题出在哪里? 如何 在 systemd_unit
资源中实现多个 Envrionment
变量?
systemd_unit service_file do
content({Unit: {
Description: 'Apache Tomcat Web Application Container',
After: 'syslog.target network.target',
},
Service: {
Type: 'forking',
Environment: 'JAVA_HOME=/usr/lib/jvm/jre',
Environment: 'CATALINA_PID=/opt/tomcat/temp/tomcat.pid',
Environment: 'CATALINA_HOME=/opt/tomcat',
Environment: 'CATALINA_BASE=/opt/tomcat',
Environment: 'CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC',
Environment: 'JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom',
Environment: 'PWM_APPLICATIONPATH=/opt/pwm-data',
ExecStart: '/opt/tomcat/bin/startup.sh',
ExecStop: '/bin/kill -15 $MAINPID',
User:tuser,
Group:tgroup,
UMask:'0007',
RestartSec:'10',
Restart:'always',
},
Install: {
WantedBy: 'multi-user.target',
}})
action :create
end
阅读 docs 有帮助。
repeatable options can be implemented with an array.
这意味着我需要写
Environment: ['JAVA_HOME=/path/to/java', 'CATALINA_HOME=some/path', 'and so on']
我的任务是通过 chef 安装 tomcat。唯一的问题是,我的 systemd_file (tomcat.service
) 是通过厨师资源 systemd_unit
实现的。但是,一旦我收敛,日志就会警告我,密钥 Environment
被复制并因此被覆盖。
在我的旧版本中,我只是通过 chef 的 cookbook_file
资源实现了我的 tomcat.service
文件,它运行得很好。
问题出在哪里? 如何 在 systemd_unit
资源中实现多个 Envrionment
变量?
systemd_unit service_file do
content({Unit: {
Description: 'Apache Tomcat Web Application Container',
After: 'syslog.target network.target',
},
Service: {
Type: 'forking',
Environment: 'JAVA_HOME=/usr/lib/jvm/jre',
Environment: 'CATALINA_PID=/opt/tomcat/temp/tomcat.pid',
Environment: 'CATALINA_HOME=/opt/tomcat',
Environment: 'CATALINA_BASE=/opt/tomcat',
Environment: 'CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC',
Environment: 'JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom',
Environment: 'PWM_APPLICATIONPATH=/opt/pwm-data',
ExecStart: '/opt/tomcat/bin/startup.sh',
ExecStop: '/bin/kill -15 $MAINPID',
User:tuser,
Group:tgroup,
UMask:'0007',
RestartSec:'10',
Restart:'always',
},
Install: {
WantedBy: 'multi-user.target',
}})
action :create
end
阅读 docs 有帮助。
repeatable options can be implemented with an array.
这意味着我需要写
Environment: ['JAVA_HOME=/path/to/java', 'CATALINA_HOME=some/path', 'and so on']