如何将package.json加载到Ansible中的变量中

时间:2016-02-23 20:13:32

标签: python ansible ansible-playbook

我想从我的代码中获取version属性到我的playbook中的变量。 我的剧本中有以下任务:

- name: get version from package
  shell: cat "/path/to/package.json"
  register: package_json

- set_fact: package="{{ package_json.stdout | from_json }}"

- debug: msg="{{ package.version }}"

导致错误:

fatal: [x.x.x.x] => One or more undefined variables: 'unicode object' has no attribute 'version'

但是,如果我将debug语句更改为以下内容:

- debug: msg="{{ package }}

然后我在控制台上看到以下内容:

ok: [x.x.x.x] => {
    "msg": "{u'name': u'my_project', u'version': u'2.0.4-build.723.6907', ...

如何{{ package.version }}无法使用此属性?

1 个答案:

答案 0 :(得分:0)

看起来package本身就是字典。

那么请你试试:

{{ package.value.version }}