Seperti yang saya mengerti, setiap buku pedoman mengambil satu entri host. Saya ingin tahu bahwa jika saya membuat buku pedoman wadah yang menyertakan buku pedoman lain, dapatkah saya mengukur host untuk setiap buku pedoman. Jadi sesuatu seperti itu
---
- include playbook_1.yml
hosts: tag_postgres
- include: playbook_2.yml
hosts: tag_rabbitmq
Saya dapat meletakkan semua buku pedoman yang berbeda dalam satu skrip dan panggilan, tetapi kemudian dengan cara ini saya tidak dapat menggunakan kembali beberapa set_fact dari satu buku pedoman ke yang lain dan karenanya ada banyak duplikasi tugas.
Akibat wajar lain dari pertanyaan ini adalah, dapatkah saya meluncurkan ec2 di amazon yang akan memilikinya
hosts: localhost
dan konfigurasi EC2 yang diluncurkan, yang pada dasarnya akan mengonfigurasi inventaris dari -i ec2.py
, dan menetapkan host sebagai
hosts: tag_<some_tag>
terjadi melalui buku pedoman yang sama atau satu set buku pedoman yang disertakan (peran yang berbeda)?
hosts:
bagian di yaml Anda dan pada dasarnya, memiliki beberapa buku pedoman menggunakan grup host yang berbeda dalam inventaris Anda?Jawaban:
Sebenarnya, Anda dapat memiliki lebih dari satu host: bagian per buku pedoman. Tampaknya host: memulai permainan baru. Lihat http://www.tecmint.com/use-ansible-playbooks-to-automate-complex-tasks-on-multiple-linux-servers/ , misalnya.
Sesuatu seperti ini bekerja untuk saya (mungkin 2.2):
Jadi, letakkan host: di bagian atas masing-masing termasuk .yml, bukan setelah termasuk :.
sumber
http://docs.ansible.com/ansible/playbooks_variables.html#information-discovered-from-systems-facts
Fakta-fakta tersebut berasal dari host jarak jauh Anda. Jadi ini adalah alasan mengapa biasanya Anda dapat berbagi fakta antara host yang berbeda ketika File * .yml Anda memiliki beberapa buku pedoman .
Sekarang, Anda dapat mengakses fakta dari host lain jika Anda melakukan sesuatu seperti ini di bagian lain dari buku pedoman Anda:
tetapi dalam hal ini, Anda harus ingat bahwa Anda perlu mendapatkan fakta sebelum menggunakan ini. Kemudian Anda dapat mengatur bagian pertama dalam buku pedoman Anda yang mendapatkan semua fakta untuk semua host atau menggunakan caching fakta untuk ini (lihat: http://docs.ansible.com/ansible/playbooks_variables.html#fact-caching )
Sekarang, Jika Anda suka berbagi opsi di buku pedoman Anda mungkin bisa lebih baik untuk memikirkan kembali info untuk dimasukkan ke dalam variabel dan, dengan ini, Anda dapat "berbagi" variabel Anda dengan
include
instruksi yang sama , lihat ini:http://docs.ansible.com/ansible/playbooks_variables.html#variables-defined-from-included-files-and-roles
sumber