ansible: доступ к переменным регистра из других пьес в одной и той же книге

Я пытаюсь получить доступ к переменной «count» из первого «play» в моем playbook во втором playbook. Я нашел здесь несколько других сообщений об этой проблеме и подумал, что следую правильным шагам, но приведенный ниже код все еще не работает.

Код

- hosts: group1
  tasks:
  - name: count registrations on primary node
    shell: psql -U widgets widgets -c 'SELECT COUNT(*) FROM location' -t
    register: count
  - debug: var=count.stdout

- hosts: group2
  tasks:
#the line below works...
#  - debug: msg={{ hostvars['myserver1.mydomain.com']['count']['stdout'] }}
# but this one fails
  - debug: msg={{ hostvars['group1']['count']['stdout'] }}

Это дает следующий вывод:

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [myserver1.mydomain.com]

TASK [count registrations on node] **************************************
changed: [myserver1.mydomain.com]

TASK [debug] *******************************************************************
ok: [myserver1.mydomain.com] => {
    "count.stdout": "     2"
}

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [myserver2.mydomain.com]

TASK [debug] *******************************************************************
fatal: [myserver1.mydomain.com]: FAILED! => {"failed": true, "msg": "'ansible.vars.hostvars.HostVars object' has no attribute 'can_sip1'"}

NO MORE HOSTS LEFT *************************************************************
 [ERROR]: Could not create retry file 'playbooks/test.retry'. The error was: [Errno 13] Permission denied: 'playbooks/test.retry'


PLAY RECAP *********************************************************************

myserver1.mydomain.com: ok = 3 изменено = 1 недоступно = 0 не удалось = 0
myserver2.mydomain.com: ok = 1 изменено = 0 недоступно = 0 не удалось = 1

Другой пост, на который я ссылаюсь, находится здесь:Как настроить регистр переменной для сохранения между играми в ANSIBLE?

Возможно, это что-то простое, но я не вижу, в чем заключается ошибка. Благодарю.

РЕДАКТИРОВАТЬ 1

Я также попытался использовать set_fact как это:

- hosts: group1
  tasks:                                  
  - name: count registrations on primary node        
    shell: psql -U widget widget -c 'SELECT COUNT(*) FROM location' -t
    register: result                      
  - debug: var=result.stdout              
  - set_fact: the_count=result.stdout
  - debug: var={{the_count}}              

- hosts: group2                        
  tasks:                                  
  - name: retrieve variable from previous play
    shell: echo hello                     
  - debug: var={{hostvars}}

Результаты, которые я получаю:

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [myserver1.mydomain.com]

TASK [count reg on primary] ****************************************************
changed: [myserver1.mydomain.com]

TASK [debug] *******************************************************************
ok: [myserver1.mydomain.com] => {
    "result.stdout": "     2"
}

TASK [set_fact] ****************************************************************
ok: [myserver1.mydomain.com]

TASK [debug] *******************************************************************
ok: [myserver1.mydomain.com] => {
    "result.stdout": "     2"
}

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [myserver2.mydomain.com]

TASK [retrieve variable from previous play] ************************************
changed: [myserver2.mydomain.com]

TASK [debug] *******************************************************************
ok: [myserver2.mydomain.com] => {
    "<ansible.vars.hostvars.HostVars object at 0x7f3b6602b290>": "VARIABLE IS NOT DEFINED!"
}

PLAY RECAP *********************************************************************
myserver1.mydomain.com        : ok=5    changed=1    unreachable=0    failed=0   
myserver2.mydomain.com       : ok=3    changed=1    unreachable=0    failed=0   

Похоже, что в hostvars нет объектов ...

РЕДАКТИРОВАТЬ 3

Так выглядит сборник пьес сегодня утром.

- hosts: group1
  tasks:
  - name: count reg on primary
    shell: psql -U widgets widgets -c 'SELECT COUNT(*) FROM location' -t
    register: result
  - debug: var=result.stdout
  - set_fact: the_count={{result.stdout}} 
  - debug: var={{the_count}}

- hosts: group2
  tasks:
  - name: retrieve variable from previous play
    shell: echo hello
  - debug: var={{hostvars}}    

Строка «debug: var = {{the_count}}» из первого воспроизведения выводит правильное значение для счетчика, но также говорит, что переменная не определена ... вот так:

ЗАДАЧА [set_fact] ********************************************** ****************** путь к задаче: /etc/ansible/playbooks/test.yml:8 ok: [myserver1.mydomain.com] => {"ansible_facts": { "the_count": "2"}, "change": false, "invocation": {"module_args": {"the_count": "2"}, "module_name": "set_fact"}}

ЗАДАЧА [отладка] ********************************************** ********************* путь к задаче: /etc/ansible/playbooks/test.yml:10 ok: [myserver1.mydomain.com] => {"2 ":" ПЕРЕМЕННАЯ НЕ ОПРЕДЕЛЕНА! " }

А потом, как только я попал во вторую пьесу, я все еще получаю сообщение

TASK [debug] *******************************************************************
task path: /etc/ansible/playbooks/test.yml:16
ok: [myserver2.mydomain.com] => {
    "<ansible.vars.hostvars.HostVars object at 0x7fb077fdc310>": "VARIABLE IS NOT DEFINED!"
}

В вашем примере вы предлагаете использовать «debug: var = {{hostlers}}». Если вы можете уточнить это для меня, пожалуйста. Похоже, это опечатка.

РЕДАКТИРОВАТЬ 4:

Если вы внимательно посмотрите на Edit 3, вы увидите, что я реализовал «debug: var = {{hostvars}}», как вы предлагаете в своем ответе. Но это дает мне ту же ошибку, что переменная не определена. Я не просто пытаюсь передать переменные из одной пьесы в другую ..., а из одного набора хостов в другой. Обратите внимание, что игра 1 использует группу 1, а игра два относится только к группе 2.

Ответы на вопрос(1)

Ваш ответ на вопрос