Как создать глобальную переменную, которую каждый хост в игре может читать и записывать в ansible? - PullRequest
0 голосов
/ 27 сентября 2019
---
hosts: all
vars:
  global_variable: 0 
tasks:
  - name: increment variable
    set_var:
       global_variable: "{{ global_variable + 1   }}"
   -debug: global_variable

Это не сработает, так как вы получите свежий экземпляр global_variable для каждого хоста.выходные данные отладки всегда будут одинаковыми вместо увеличения.Я пытался использовать локальные хосты localhost для совместного использования переменной чтения / записи, но вы не можете назначить ее с помощью set_fact: (как иначе вы бы присвоили ей значение?) Например,

- name: update global variable
    delegate_to: localhost
    connection: local
    set_fact:
      hostvars['localhost']['global_variable']: "{{ hostvars['localhost']['global_variable'] + 1 }}"

В результате выдается ошибка:

 FAILED! => {"changed": false, "msg": "The variable name 'hostvars['localhost']['global_variable']' is not valid. Variables must start with a letter or underscore character, and contain only letters, numbers and underscores."}

Идеи о том, как заставить это работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...