我怎么知道我的Ansible使用的是哪个版本的Jinja2?

gig*_*mad 2 jinja2 ansible

我搜索了上述问题的许多形式,但都没有成功,这些关键字指向了更明显的无用的搜索结果。我也尝试使用pip list并且pip freeze没有太大的成功。可能很明显,但到目前为止我还是找不到

Yer*_*roc 6

这个问题的答案可能会因您的平台而有所不同,但通常:

$ pip show jinja2
Metadata-Version: 1.0
Name: Jinja2
Version: 2.2.1
Summary: A small but fast and easy to use stand-alone template engine written in pure python.
...
Run Code Online (Sandbox Code Playgroud)

如果您在通过包管理器安装 python 和相关依赖项的平台上,那么您也可以通过这种方式进行检查。例如在 RHEL 上:

$ rpm -q python-jinja2
python-jinja2-2.2.1-3.el6.x86_64
Run Code Online (Sandbox Code Playgroud)


Kon*_*rov 5

将此文件删除为./action_plugins/jin_ver.py

from ansible.plugins.action import ActionBase
import jinja2


class ActionModule(ActionBase):

    def run(self, tmp=None, task_vars=None):
        result = super(ActionModule, self).run(tmp, task_vars)
        return dict(msg=jinja2.__version__)
Run Code Online (Sandbox Code Playgroud)

并执行此剧本./test_jin.yaml

---
- hosts: localhost
  gather_facts: no
  tasks:
    - action: jin_ver
Run Code Online (Sandbox Code Playgroud)

您应该会看到以下内容:

$ ansible-playbook test_jin.yaml -v
TASK [jin_ver] *****************************************
ok: [localhost] => {"changed": false, "msg": "2.8"}
Run Code Online (Sandbox Code Playgroud)

  • 这可行,但是我必须用-v标志执行剧本。谢谢 ! (2认同)