Переменные являются для каждого хоста (потому что иначе, что произойдет, когда вы запускаете задачу на нескольких хостах и register
переменная?). В первой задаче вы устанавливаете переменную osp_version
для хоста undercloud-0
.
Если вы хотите использовать эту переменную во второй игре, которая выполняется на cfme_tester-0
, вам следует прочитать Волшебные переменные и Как получить информацию о других хостах в документации Ansible , Вам нужно будет обратиться к переменной через словарь hostvars
, поэтому ваша вторая игра будет выглядеть так:
- name: set up CFME tester
hosts: cfme_tester-0
become: yes
become_user: root
tasks:
- name: Run prepare script for OSP10
shell: |
cd /tmp/cfme/ && mkdir osp10
when: "'10' in hostvars['undercloud-0'].osp_version.stdout"
- name: Run prepare script for OSP13
shell: |
cd /tmp/cfme/ && mkdir osp13
when: "'13' in hostvars['undercloud-0'].osp_version.stdout"
... но учтите, что если вы просто создаете каталог, вам лучше использовать модуль file
:
- name: Run prepare script for OSP10
file:
path: /tmp/cfme/osp10
state: directory
when: "'10' in hostvars['undercloud-0'].osp_version.stdout"