如何在aws opsworks上修改Tomcat的context.xml?

时间:2014-06-12 09:08:58

标签: amazon-web-services chef-recipe aws-opsworks

我想在/usr/share/tomcat7/conf/context.xml中添加此代码:

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
   sticky="true"
   memcachedNodes="n1:<%= node['redis']['host']%>:<%= node['redis']['port']%>"
   requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
/>

我正在使用Chef 11.4,我已经创建了自定义cookbook并修改了/opsworks_java/templates/default/webapp_context.xml.erb

但它不起作用。 它适用于其他文件:server.xml!

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:2)

如果您正在使用Chef 11.10,那很简单:

  1. 您需要创建/使用自定义食谱。
  2. 在其中制作以下文件夹结构:

    opsworks_java /模板/默认/

  3. 复制文件: https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.10/opsworks_java/templates/default/webapp_context.xml.erb

  4. 根据需要进行编辑。

  5. 这将完成您需要完成的工作。

答案 1 :(得分:2)

最后,我找到了解决方案 我已经创建了context.xml文件的模板:  opsworks-食谱/ opsworks_java /模板/默认/ context.xml.erb

<?xml version='1.0' encoding='utf-8'?>
<Context>
    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
          sticky="true"
          memcachedNodes="n1:<%= node['redis']['host']%>:<%= node['redis']['port']%>"
          requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"   />
</Context>

然后我在opsworks-cookbooks / opsworks_java / recipes / tomcat_container_config.rb中调用它 通过添加以下行:

template 'tomcat context configuration' do
  path ::File.join(node['opsworks_java']['tomcat']['catalina_base_dir'], 'context.xml')
  source 'context.xml.erb'
  owner 'root'
  group 'root'
  mode 0644
  backup false
  notifies :restart, 'service[tomcat]'
end

它工作正常!