2016-08-09 9 views
0

Ich schreibe tatsächlich ein Ansible Playbook, für die automatische Installation von Docker Container mit mehreren gleichen Instanzen auf einem Host mit geringen Unterschieden.Ansible Variablen nur X-mal pro Host

Ich habe eine Variable Datei mit "Kunden" und jeder Kunde hat einen eigenen Docker Container, meine Idee ist: Ich habe eine Reihe von Hosts und ansible 5 Instanzen pro Host mit 5 verschiedenen Containern verteilt. Natürlich kann ich eine neue Var mit dem Hostnamen definieren, aber es scheint ein wenig schlauer, dass ansible prüfen: "Okay, schon 5 Instanzen, nächster Host".

Irgendeine Idee?

Antwort

1

Mögliche Lösung:

--- 
- hosts: all 
    gather_facts: no 
    vars: 
    containers: ['cont1', 'cont2', 'cont3', 'cont4', 'cont5', 'cont6', 'cont7', 'cont8'] 
    per_host: 3 
    tasks: 
    - debug: msg='Deploy {{ item }}' 
     with_items: '{{ containers[ play_hosts.index(inventory_hostname)*per_host : (play_hosts.index(inventory_hostname)+1)*per_host] }}' 

Dies wird mit per_host Größe einen Abschnitt containers Liste nehmen basiert und Host-Index als Offset.
Also in diesem Beispiel erhalten Sie nicht mehr als 3 Debugs pro Host in Ihrem Inventar.

Verwandte Themen