我正在尝试使用jinja2执行yaml模板。我想将系统环境变量传递给数据文件,而不是直接替换它。 我有2个名为nginx.yml和config.yml的文件。我的nginx.yml如下
server:
listen : 80
server_name : {{ nginx.hostname }}
root : {{ nginx.webroot }}
index : index.htm;
和我的config.yml如下
nginx: 主机名:localhost webroot:“ / var / www / project”
并且如果运行命令jinja2 -f yaml nginx.yml config.yml> nginx.conf可以正常工作。但是我需要在config.yml文件中读取环境变量主机名而不是本地主机。 有人可以帮我吗
我已经设置了一个名为hostname = localhost的环境变量,然后如下更新了config.yml文件
nginx:
hostname: {{ hostname }}
webroot: "/var/www/project"
并运行命令jinja2 -f env nginx.yml config.yml> nginx.conf。但它引发了错误。
Traceback (most recent call last):
File "/usr/local/bin/jinja2", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/jinja2cli/cli.py", line 424, in main
sys.exit(cli(opts, args))
File "/usr/local/lib/python2.7/dist-packages/jinja2cli/cli.py", line 281, in cli
raise raise_exc(u"%s ..." % data[:60])
jinja2cli.cli.MalformedEnv: ---
nginx:
hostname: {{ hostname }}
我希望config.yml文件应该将环境变量中的值分配给主机名,并成功运行jinja2命令。
jinja2 -f env nginx.yml config.yml> nginx.conf enter code here