Обнаружение и монтирование файловой системы в Ansible - PullRequest
0 голосов
/ 04 апреля 2019

Я новичок в ansible и пытаюсь обнаружить файловую систему, а затем смонтировать, если есть.Я прошел по ссылкам ниже: -

1. https://docs.ansible.com/ansible/latest/modules/filesystem_module.html
2. https://docs.ansible.com/ansible/latest/modules/mount_module.html

Я подключил жесткий диск вручную, который определяется командой fdisk -l как "/ dev / sdb".Я хочу, чтобы ANSI-код обнаруживал и монтировал эту файловую систему в каком-то месте.Во время выполнения код « df -h » не показывает смонтированную файловую систему и не дает сбоя.И даже если я перечисляю всю файловую систему или точку монтирования через ANSIBLE код, эта файловая система (/ dev / sdb) не перечисляет.

Фрагмент кода:

    - name: Create File System
      filesystem:
        fstype: ext4
        dev: "{{ mount_src }}"

    - name: Mount File System
      mount:
        path: "{{ mount_path }}"
        src: "{{ mount_src }}"
        fstype: ext4
        state: mounted

Заранее спасибо и любая помощь будет оценена.

1 Ответ

0 голосов
/ 04 апреля 2019

Игра ниже создает список подключенных устройств. Если mount_src не смонтирован, то создается файловая система, а mount_src монтируется в mount_path .

- hosts: localhost
  vars:
    mount_src: /dev/sdb
    mount_path: /export
  tasks:
    - name: Create list of mounted devices
      set_fact:
        mounted_devices: "{{ ansible_mounts|json_query('[].device') }}"
    - name: Create File System
      filesystem:
        fstype: ext4
        dev: "{{ mount_src }}"
      when: mount_src not in mounted_devices
    - name: Mount File System
      mount:
        path: "{{ mount_path }}"
        src: "{{ mount_src }}"
        fstype: ext4
        state: mounted
      when: mount_src not in mounted_devices

(не тестировалось)

Ansible не собирает факты о блочных устройствах. Пример создания списка блочных устройств в Linux

- hosts: localhost
  tasks:
    - command: 'lsblk -lno NAME'
      register: results
    - name: Create list of block devices
      set_fact:
        block_devices: "{{ block_devices|default([]) + [ item ] }}"
      loop: "{{ results.stdout_lines }}"
    - debug:
        var: block_devices

дает:

ok: [127.0.0.1] => 
  block_devices:
  - sda
  - sda1
  - sda2
  - sda3
  - sda5
  - sdb
  - sdb1
  - sdb9
  - mmcblk0
  - mmcblk0p1
...