Передача / обновление глобальных переменных (например, групповых переменных) из Playbook? - PullRequest
0 голосов
/ 19 апреля 2019

Есть ли способ передать / обновить групповые переменные из задачи playbook?Мне нужно определить переменные на основе результатов некоторых команд с одного хоста, чтобы использовать их для других ролей и задач.Я знаю о set_fact, но он хранит переменную как локальную переменную, так что мне нужно обратиться к конкретному хосту, чтобы получить его, но имя хоста / адрес этого хоста могут отличаться.Поиск в Google и чтение docs.ansible.com не помогают до сих пор.

UPD: есть две разные роли, которые играют задачи одну за другой, и мне нужно передавать переменные между играми.

1 Ответ

1 голос
/ 19 апреля 2019

Можно было бы использовать анныбельные модули lineinfile, blockinfile, template и ini_file для обновления групповых переменных .

Например, игра ниже

- hosts: test_jails
  gather_facts: false
  vars:
    my_groupvar_file: "{{  inventory_dir }}/group_vars/test_jails.yml"
  tasks:
    - debug:
        var: my_last_run
    - block:
        - command: date "+%F %T"
          register: result
        - lineinfile:
            path: "{{ my_groupvar_file }}"
            regexp: "^my_last_run: "
            line: "my_last_run: {{ result.stdout }}"
            backup: yes
          delegate_to: localhost
      run_once: true

с переменными группы group_vars / test_jails.yml

my_last_run: 2019-04-19 11:51:00

дает (сокращенно):

> ansible-playbook test1.yml
PLAY [test_jails]
TASK [debug] 
ok: [test_01] => {
"my_last_run": "2019-04-19 11:51:00"
}
ok: [test_03] => {
"my_last_run": "2019-04-19 11:51:00"
}
ok: [test_02] => {
"my_last_run": "2019-04-19 11:51:00"
}
TASK [command]
changed: [test_01]
TASK [lineinfile]
changed: [test_01 -> localhost]
PLAY RECAP
test_01                    : ok=3    changed=2    unreachable=0    failed=0   
test_02                    : ok=1    changed=0    unreachable=0    failed=0   
test_03                    : ok=1    changed=0    unreachable=0    failed=0

> cat group_vars/test_jails.yml
my_last_run: 2019-04-19 11:56:51
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...