相关疑难解决方法(0)

Ansible - 使用with_items并在有条件时使用

我有一堆服务器上有四个物理驱动器(/ dev/sda,sdb,sdc和sdd).sda上安装了操作系统.

我需要格式化除sda之外的每个驱动器.我需要检查每个驱动器上是否有数据.如果是的话,我不应该格式化它.

# This will get all physical disks (sda, sdb, sdc, etc) and assign them to disk_var
- name: Get disks
  set_fact: disk_var="{{hostvars[inventory_hostname]["ansible_devices"].keys()|list}}"

- name: Check if the disk is partitioned and also ignore sda
  stat: path=/dev/{{item}}1
  with_items: disk_var
  when: item != 'sda'
  register: base_secondary_partition_{{item}}

- name: Create GPT partition table
  command: /sbin/parted -s /dev/{{item}} mklabel gpt
  with_items: disk_var
  when: item != 'sda' and base_secondary_partition_{{item}}.stat.exists == false
Run Code Online (Sandbox Code Playgroud)

格式化这些驱动器显然涉及更多步骤,但在创建GPT分区表时,它在上一个任务中失败了.

这是它运行时的样子.您将看到它在上一个任务中失败:

TASK: [role | Get disks] ******************************************************
ok: [server1.com]

TASK: …
Run Code Online (Sandbox Code Playgroud)

ansible

34
推荐指数
2
解决办法
7万
查看次数

标签 统计

ansible ×1