Ich habe eine einfache Mariadb-Rolle, die Master/Slave-Replikation auf zwei Servern einrichten kann. Um dies zu tun, habe ich in meinem Inventar meine 2 Knoten wie folgt zu definieren:Dynamisch Master/Slave-Variablen in Ansible-Rolle zuweisen
node1 master=true
node2 slave=true
Auf diese Weise kann ich Setup eine Rolle Setup Master/Slave-Replikation mit ansible wenn Anweisung mit dem Spielen dieser Vars.
- name: Setup master conf
template: >-
src="templates/master.conf.j2"
dest="{{ master_config_file }}"
when:
- master is defined
Nun würde Ich mag etwas mehr automatische bekommen, die dynamisch und zufällig ein Master-Variable zu einem Knoten, und Slave-Variable an alle anderen Knoten zuweisen könnten.
Ich habe einige Ansible Doc über Variablen und Filter gesehen, aber keiner von ihnen scheint daran angepasst zu sein. Ich denke, dass ich mein eigenes Ansible-Variablen-Plugin entwickeln muss, um das zu tun.
"Random" ist ein Feind der Automatisierung. Definieren Sie eine vorhersagbare idempotente Regel und folgen Sie ihr (ich bin mir fast sicher, dass dies mit Standardfiltern/Operatoren möglich ist und keine Entwicklung erforderlich ist). –
Nach dem Zufallsprinzip, ich meine zufällig einen Master-Server in der Liste der Knoten auswählen. Auf diese Weise, wenn ich meine VMs spawne, ist keiner von ihnen spezialisiert. Ich möchte, dass sie sich automatisch mit meinem ersten Ansible-Lauf spezialisieren. Danke für die Antwort, ich werde noch einmal auf vorhandene Ansible-Filter schauen und eine implementieren, wenn ich nicht finden kann, was ich will. – Quentin91360
Und was ist auf playbook re-run? –