Q: «Передать переменную ... из первой пьесы моей пьесы во вторую пьесу ...»
A: Использовать hostvars
. область действия hostvars является хостом. Например, объявите переменную с set_fact
.
Примеры области действия
Воспроизведение : каждая игра и содержащиеся в ней структуры, записи переменных, include_vars, роли по умолчанию и переменные.
Пример 1. Переменная my_var1
, определенная в vars
первой игры , не определена в следующей игре
- name: Play 1
hosts: localhost
vars:
my_var1: Hello world!
tasks:
- debug:
var: my_var1
- name: Play 2
hosts: localhost
tasks:
- debug:
var: my_var1
дает
PLAY [Play 1] ***********
TASK [debug] ************
ok: [localhost] => {
"my_var1": "Hello world!"
}
PLAY [Play 2] ***********
TASK [debug] ************
ok: [localhost] => {
"my_var1": "VARIABLE IS NOT DEFINED!"
}
Пример 2. Переменная my_var2
, определенная в vars_prompt
первой игры , также не определена в следующей игре
- name: Play 3
hosts: localhost
vars_prompt:
- name: my_var2
prompt: "What is the value of my_var2?"
tasks:
- debug:
var: my_var2
- name: Play 4
hosts: localhost
tasks:
- debug:
var: my_var2
дает
What is the value of my_var2?:
PLAY [Play 3] ***********
TASK [debug] ************
ok: [localhost] => {
"my_var2": "Hello world!"
}
PLAY [Play 4] ***********
TASK [debug] ************
ok: [localhost] => {
"my_var2": "VARIABLE IS NOT DEFINED!"
}
Хост : переменные, непосредственно связанные с хостом, такие как инвентаризация, факты или выходные данные зарегистрированных задач.
Пример 3. Переменная my_var3
определена в facts
из первой игры определяется в следующей игре
- name: Play 5
hosts: localhost
tasks:
- set_fact:
my_var3: Hello world!
- debug:
var: my_var3
- name: Play 6
hosts: localhost
tasks:
- debug:
var: my_var3
дает
PLAY [Play 5] *************
TASK [set_fact] ***********
ok: [localhost]
TASK [debug] **************
ok: [localhost] => {
"my_var3": "Hello world!"
}
PLAY [Play 6] *************
TASK [debug] **************
ok: [localhost] => {
"my_var3": "Hello world!"
}