如何使用 Ansible 识别安装了操作系统的硬盘?

如何使用 Ansible 识别安装了操作系统的硬盘?

我有一台 Ubuntu 服务器,有 2 个驱动器/dev/sdb/dev/sdc。操作系统安装在 下/dev/sdb。现在,我正在尝试编写一个 Ansible 剧本,它将识别特定分区是否包含操作系统。我尝试使用命令,lsblk该命令返回驱动器/dev/sdb已分区。但 不存在分区表/dev/sdc/

有没有关于如何实现这一点的例子?我当前的剧本如下:

- hosts: localhost
  tasks:
   - name: Get list of mounted hard drives
     command: 'lsblk'
     register: result
   - name: Create variable block_devices
     set_fact:
       block_devices: "{{ result.stdout_lines }}"
   - debug:
       var: block_devices

此剧本返回可用的分区。从此输出如何实现操作系统安装检查?

答案1

聚集rootfsansible_facts并且不需要通过shell来“提取”。

访问方法如下:

# cat play.yml

---
- name: display rootfs partition
  hosts: all
  become: yes
  gather_facts: yes

  tasks:
   - name: print root partition
     shell: echo "{{ ansible_cmdline.root }}" > /tmp/rootfs_part
# ansible-playbook play.yml -i localhost,

PLAY [display rootfs partition] ******************************************************************************************************************************************************************************

TASK [print root partition] **********************************************************************************************************************************************************************************
changed: [localhost]

PLAY RECAP ***************************************************************************************************************************************************************************************************
localhost                  : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

# cat /tmp/rootfs_part
/dev/mapper/mirror-root

相关内容