Uma demonstração com o Perl Template::Toolkit
(não é necessário aprenda Perl para usar o comando tpage
instalado com o módulo):
Arquivo de modelo:
$ cat vhost.tpl
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName [% subdomain %].example.com
DocumentRoot /var/www/[% subdomain %].example.com/htdocs
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
ErrorLog /var/log/apache2/[% subdomain %].example.com_error.log
CustomLog /var/log/apache2/[% subdomain %].example.com_access.log combined
</VirtualHost>
A geração da configuração:
$ tpage --define subdomain=domain.tld --interpolate vhost.tpl
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName domain.tld.example.com
DocumentRoot /var/www/domain.tld.example.com/htdocs
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
ErrorLog /var/log/apache2/domain.tld.example.com_error.log
CustomLog /var/log/apache2/domain.tld.example.com_access.log combined
</VirtualHost>