我们聊j2cli之前,先需要熟悉西jinja2模板引擎。

jinja2

Jinja2 是一个设计者友好的,类似django 模板的 python 模板引擎。 它速度快,灵活,安全被广泛使用。使用jinja2的开源项目有ansible,django,flask,helm chart等。

模板引擎

  • 什么是模版呢? 模板简单来说就是一个其中包含占位变量来标识动态部分的文件,模板文件在经过动态赋值后,通过模板引擎把文件渲染后的输出最终结果。
  • 什么是模板引擎呢? 就是能解析模板中这些占位变量或者标识符的解释器,并能动态渲染文件内容。jinja2主要提供了模板语言和模板引擎渲染等功能。

j2cli

j2cli在shell中用于jinja2模板渲染的命令行工具。它支持把yaml,json,ini,env环境变量作为输入源来动态渲染jinja2模板。

安装

j2cli安装成功之后,在linux系统上通过j2命令来使用:

# pip install j2cli

# j2 -h

使用

我们只演示把yaml文件作为变量的输入源进行演示:

# vim t.j2
My name is {{ name }}.

# vim t.yaml
name: "lee"

# j2 t.j2 t.yaml
My name is lee.

也可以把渲染的结果输出到文件:

# j2 t.j2 t.yaml -o 1.out
# cat 1.out
My name is lee.