ansible_role_aix_lvm

ansible-role-aix-lvm

Уведомление: Эта роль активно разрабатывается. Не рекомендуется для использования в производственных средах пока.

Это Ansible роль для управления группами томов / логическими томами / файловыми системами на серверах AIX. В настоящее время она в первую очередь предназначена для создания новых окружений. Хотя возможно расширять отдельные файловые системы, это не лучший вариант для этой задачи. Роль отлично работает с набором PV и определяет все VG, LV и FS на целевом хосте. Эта роль основана на отличной работе ansible-manage-lvm от @mrlesmithjr.

ПРИМЕЧАНИЕ:

  • Может использоваться для создания и удаления LVM групп и томов.
    • Я бы не доверял ей в данный момент для изменения размера / модификации... она не полностью протестирована.
  • Предназначена для определения «целого» окружения; не совсем подходит для создания случайных LV/FS и т.д.
    • Основная задача — определить все хранилище сервера AIX при первоначальной настройке.
  • В данный момент не поддерживает удаленные/NFS точки монтирования.
  • Если у вас есть «переумонтированная» файловая система, будет ошибка, так как модуль aix_filesystem не создает директорию при монтировании.
    • Например: /foo/ и /foo/bar/ являются файловыми системами и создаются до монтирования.
    • /foo/ смонтирован, и директория /foo/bar/ «исчезла».
    • При попытке смонтировать /foo/bar/ произойдет сбой, так как директория не существует.

Требования

Устройства/диски, которые будут членами настройки LVM, должны быть определены до использования этой роли.

ПРИМЕЧАНИЕ:

  • Убедитесь, что вы выбираете правильные устройства/диски.
  • Чтобы создать VG без создания LV, определите lvname со значением None, как в приведенном ниже примере.

Структура переменных роли

Мы определяем список словарей, описывающих необходимые VG

Переменные По умолчанию Комментарии
manage_lvm false Просто 'мерка безопасности', чтобы убедиться, что эта роль должна выполняться. Если false, LVM не будет управляться этой ролью.
vglist (обязательно) - Список vglist, объекты определены ниже.

vglist

Полный обзор параметров vglist представлен ниже. Значения по умолчанию указаны в документации модуля aix_lvg. Примечание: Значения по умолчанию в этой роли всегда используют значения по умолчанию модуля; если модуль aix_lvg изменит значения по умолчанию, этот документ может быть не актуален в отношении используемых значений по умолчанию. Пожалуйста, создайте проблему или PR, если значения aix_lvg изменятся, и этот документ не будет обновлен.

Переменные По умолчанию Комментарии
vgname (обязательно) - Имя VG
disks (обязательно) - Список имен PV устройств
force false Принудительно создать VG
ppsize - Размер физических разделов VG
state present Одно из absent или present. Если absent, все подлежащие FS и LV должны быть сначала удалены из системы.
vg_type normal Тип VG; один из big, normal, scalable
lvlist - Объект lvlist, определенный ниже. Можно задать любое количество таких объектов.

lvlist

Полный обзор параметров lvlist представлен ниже. Любое количество этих объектов можно определить в объекте vglist выше. Значения по умолчанию приведены в документации модуля aix_lvol и aix_filesystem. Хотя возможно создать FS без существующего LV, эта роль придерживается подхода «лучшей практики», при котором родительский LV создается перед каждым FS. Примечание: Значения по умолчанию в этой роли всегда используют значения по умолчанию модуля; если модули aix_lvol или aix_filesystem изменят значения по умолчанию, этот документ может быть не актуален в отношении используемых значений по умолчанию. Пожалуйста, создайте проблему или PR, если значения по умолчанию изменятся и этот документ не будет обновлен.

Переменные По умолчанию Комментарии
lvname (обязательно) - Имя LV
lvstate present Одно из present или absent. Если absent, LV и любые связанные FS будут удалены.
lvcopies 1 Количество копий для LV. Максимум 3
lvtype jfs2 Какой тип LV создать: [jfs2, jfs, paging, и т.д.]
lvopts - Свободные параметры опции для передачи в mklv
lvpolicy maximum Устанавливает политику распределения между физическими томами, одно из [maximum, minimum].
lvpvs - Список PV, которые будут использоваться в VG хоста.
lvsize - Размер логического тома в одних из [единиц MGT].
lvstate present Одно из absent или present. Если present, lvsize требуется.
fsaccount_subsystem false Обрабатывается ли FS вычислительным подсистемом. Булев тип.
fsattributes "agblksize='4096',isnapshot='no'" Атрибуты для файловой системы, разделенные запятыми.
fsauto_mount false Файловая система автоматически монтируется при перезагрузке системы.
fsfilesystem - Точка монтирования, директория, где будет смонтирована файловая система. Требуется, если fsstate не absent.
fsstate present Одно из [present, absent, mounted, unmounted]. Если вы хотите создать LV без прикрепленной FS, установите fsstate в absent.
fsmount_group - Группа монтирования FS.
fspermissions rw Права доступа к FS; одно из [rw, ro].

Зависимости

Нет

Примеры плейбуков

Маленький, простой экспериментальный VG

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_exp1
        disks:
          - hdisk4
        force: true
        lvlist:
          - lvname: lv_exp1
            lvcopies: 1
            lvsize: 5G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/exp1
          - lvname: lv_exp2
            lvcopies: 1
            lvsize: 10G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/exp2
  roles:
    - role: d-little.aixlvm
  tasks:

Один VG, несколько LV

Примечание: Это нормальный случай использования этой роли.

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_test1
        disks:
          - hdisk10
          - hdisk11
        lvlist:
          - lvname: lv_test1_1
            lvcopies: 2
            lvsize: 5G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/test1_1
          - lvname: lv_test1_2
            lvcopies: 2
            lvsize: 10G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/test1_2
  roles:
    - role: d-little.aixlvm
  tasks:

Пустые VG без LV

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_test2_1
        disks:
          - hdisk20
          - hdisk21
        lvlist:
          None
      - vgname: vg_test2_2
        disks:
          - hdisk22
          - hdisk23
        lvlist:
          None
  roles:
    - role: d-little.aixlvm
  tasks:

Один VG, один LV, все переменные определены

Это не обычный случай использования, но на случай, если вы хотите изменить все.

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_test3
        force: true
        disks:
          - hdisk30
          - hdisk31
        ppsize: 128
        state: present
        vg_type: big
        lvlist:
          - lvname: lv_test3
            lvstate: present
            lvcopies: 2
            lvopts: aaaa
            lvpolicy: maximum
            lvpvs: hdisk30, hdisk31
            lvsize: 50G
            lvstate: present
            fsaccount_subsystem: false
            fsattributes: aaaaa
            fsauto_mount: true
            fsfilesystem: /mnt/test3_1
            fsstate: mounted
            fsmount_group: aaaa
            fspermissions: rw
  roles:
    - role: ansible-manage-lvm
  tasks:

Авторы

  • Дэвид Литтл - Первая работа - d-little

Лицензия

MIT

Благодарности

О проекте

Role to manage LVM Groups/Logical Volumes on IBM AIX. Can be used to create, extend ~or resize~ VGs, LVs, and FSs.

Установить
ansible-galaxy install d-little/ansible-role-aix-lvm
Лицензия
mit
Загрузки
85
Владелец