我正在尝试将apachehttpd配置模板化,以便部署到不同的环境中,我希望使用Python语言Cheetah应用程序来实现这一点。但是,我在使用命令行cheetah
程序时遇到了困难,我认为这是我的误解Cheetah和缺乏文档的综合结果。在
我的目标是拥有一个httpd.conf模板文件和环境特定定义文件中的替换变量。在
httpd.tmpl公司:
Listen $HTTP_PORT
...
#if $ENABLE_HTTPS == true
<Virtual Host *:$HTTPS_PORT>
...
</VirtualHost>
#end if
生产.env:
^{pr2}$填充这个Cheetah模板需要什么命令行?我用过:
cheetah f --oext conf --debug httpd
但显然prod.env
不是作为输入文件读取的。{cd4>将模板添加到顶部:
#include "prod.env"
却找不到我的名字:
Cheetah.NameMapper.NotFound: cannot find 'APACHE_PORT'
无论如何,这不是理想的情况,因为我希望能够在命令行上为cheetah的每次调用指定名称/值映射文件。在
谢谢!在
编辑:我知道我可以编写一个python脚本来执行文件读取,然后使用cheetahapi进行替换。但是,我正在寻找一种使用命令行填充模板的方法。在
已解决
多亏了@pyfunc提供的文档链接,我现在了解了如何实现这一点。主要问题是在cheetah命令行上提供--env
,该命令行将当前环境变量传递给cheetah。但是,必须首先导出这些环境变量。在
Cheetah将#include文本的每个块包装在嵌套的模板对象中。在
使用
还有
^{pr2}$要包含不同的env文件,也需要对其进行模板化。在
请看下面的例子来帮助你。在
相关问题 更多 >
编程相关推荐