konditioniert Ich habe eine Reihe von Servern, die vier physische Laufwerke haben (/ dev/sda, sdb, sdc und sdd). sda hat das Betriebssystem installiert.Ansible - Verwenden von with_items und wenn an
Ich muss jedes Laufwerk außer SDA formatieren. Ich muss prüfen, ob auf jedem Laufwerk Daten vorhanden sind. Wenn es das tut, sollte ich es nicht formatieren.
Es gibt deutlich mehr Schritte beim Formatieren dieser Laufwerke, aber es schlägt bei der letzten Aufgabe beim Erstellen der GPT-Partitionstabelle fehl.
Hier ist, wie es aussieht, wenn es läuft. Sie werden sehen, dass es bei der letzten Aufgabe versagt:
TASK: [role | Get disks] ******************************************************
ok: [server1.com]
TASK: [role | Check if the disk is partitioned] *******************************
skipping: [server1.com] => (item=sda)
ok: [server1.com] => (item=sdd)
ok: [server1.com] => (item=sdb)
ok: [server1.com] => (item=sdc)
TASK: [role | Create GPT partition table] *************************************
fatal: [server1.com] => error while evaluating conditional: base_secondary_partition_sdd.stat.exists == false
FATAL: all hosts have already failed -- aborting
Jede Idee, wie ich die bedingte überprüfen? Ich muss sicherstellen, dass wenn es Daten auf dem Laufwerk gibt, wird es nicht formatieren.
sollten Sie verwenden '{{ item.item}} 'für die zweite Aufgabe. – yaegashi
Richtig, danke für das Spotting! :) – udondan
Ausgezeichnet! Dies sollte in einigen Beispielen geschehen. – onnimonni