анзибль установлен факт не работает


У меня есть этот ансибл-сборник пьес

- name: set var small
  set_fact:
    iops_price = 41538
    ram_price_id = 32438
    second_san_price_id = 32926
    os_price_id = 49061
  when: plan|lower == 'small'

- name: aa
  command: echo "{{iops_price}}"

Это не удается, потому что он говорит, что iops_price не определен, это выход:

TASK [set var small] ***********************************************************
task path: /home/hanna/proj/db2onc-deploy/db.yml:98
ok: [localhost] => {"ansible_facts": {"_raw_params": "iops_price = 41538  ram_price_id = 32438 second_san_price_id = 32926 os_price_id = 49061"}, "changed": false}

TASK [aa] **********************************************************************
task path: /home/hanna/proj/db2onc-deploy/db.yml:107
fatal: [localhost]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'iops_price' is undefinednnThe error appears to have been in '/home/hanna/proj/db2onc-deploy/db.yml': line 107, column 9, but maynbe elsewhere in the file depending on the exact syntax problem.nnThe offending line appears to be:nnn      - name: aan        ^ heren"}

Оказалось, что тот факт, что я задаю, доступен через _raw_params, что эквивалентно

_raw_params = "iops_price = 41538 ram_price_id = 32438 second_san
_price_id = 32926 os_price_id = 49061"

Это не то, что я хотел, я на самом деле хочу установить эти индивидуальные переменные, кто-нибудь имеет представление, почему это происходит?

2 3

2 ответа:

Часто я нахожу, что в ЯМЛ он не разбирает '=' как поля, если вокруг него есть пространство. Попробуйте:

  set_fact:
    iops_price=41538
    ram_price_id=32438
    second_san_price_id=32926
    os_price_id=49061
  when: plan|lower == 'small'

В set_fact можно использовать двоеточия (:) вместо знаков равенства (=).

Это должно сработать:

- name: set var small
  set_fact:
    iops_price: 41538
    ram_price_id: 32438
    second_san_price_id: 32926
    os_price_id: 49061
  when: plan|lower == 'small'

- name: aa
  command: echo "{{iops_price}}"