Я пытаюсь шаблонизировать мою конфигурацию Apache httpd для развертывания в различных средах, и я хотел бы использовать для этого приложение Cheetah на языке Python.Тем не менее, у меня возникают проблемы с программой cheetah
для командной строки, и я считаю, что это сочетание моего недопонимания Cheetah и отсутствия документации.
Моя цель - создать один файл шаблона httpd.conf иподставьте переменные из файла определения среды.
httpd.tmpl:
Listen $HTTP_PORT
...
#if $ENABLE_HTTPS == true
<Virtual Host *:$HTTPS_PORT>
...
</VirtualHost>
#end if
production.env:
HTTP_PORT=34120
HTTPS_PORT=34121
ENABLE_HTTPS=true
Какая командная строка необходима для заполнения этого шаблона Cheetah?Я использовал:
cheetah f --oext conf --debug httpd
Но, очевидно, prod.env
не читается как входной файл.Добавление #include
в начало моего файла шаблона:
#include "prod.env"
И ни одно из моих имен не найдено:
Cheetah.NameMapper.NotFound: cannot find 'APACHE_PORT'
В любом случае, это не идеальная ситуация, потому что я хочувозможность указать файл сопоставления имя / значение в командной строке для каждого вызова гепарда.
Спасибо!
РЕДАКТИРОВАТЬ: Я знаю, что могу написатьСценарий Python для чтения файла и его замены с использованием Cheetah API.Тем не менее, я ищу способ использования командной строки для заполнения моего шаблона.
решено
Благодаря ссылке на документацию, предоставленную @pyfuncТеперь я понимаю, как этого добиться.Основная проблема заключается в том, чтобы указать --env
в командной строке гепарда, которая передает текущие переменные среды гепарду.Однако эти переменные среды должны быть экспортированы первыми.