Saya ingin membuat sekelompok server, menggunakan ansible.
Dalam satu main-playbook, saya memasukkan beberapa sub-playbook.
- include: playbook_commandserver.yml
- include: playbook_agent.yml
Di playbook_commandserver.yml, saya membuat command-server (on aws). Kemudian, saya memicu sebuah peran, yang menggunakan set_fact
modul untuk mengingat nama dns server-perintah:
- name: Get hostname of command server
shell: /usr/bin/host $(/usr/bin/curl -s http://ipecho.net/plain) | /usr/bin/awk '{print $5}' | /usr/bin/awk -F 'aws.com' '{print $1"aws.com"}'
register: cs
- name: Set hostname of command server as fact
set_fact: commandserver="{{ cs.stdout }}"
The commandserver
Bahkan tersedia dalam bermain yang sama, tetapi tidak dalam pedoman yang sama .. apalagi di playbook_agent.yml
, yang akan disertakan, setelah itu. Dan itu persis di sana, di mana saya perlu mengakses fakta server-perintah itu.
Jadi bagaimana satu set / toko variabel, yang valid untuk menjalankan lengkap yang mungkin?
Saya telah menemukan ini: /programming/26732241/ansible-save-registered-variable-to-file Namun bagi saya ini terlihat seperti hack yang jelek.
Apakah tidak ada solusi yang lebih baik untuk masalah ini? Apakah tidak ada cara untuk mengatur variabel, yang valid untuk keseluruhan yang dijalankan?
sumber