iscsi_target
Ansible Роль: iSCSI Цель
Эта роль настраивает iSCSI цель на основе Linux-LIO на хосте Linux с помощью targetcli
.
Дополнительно эта роль включает собственные модули Python для взаимодействия с командой targetcli, которые можно использовать отдельно для более сложных задач. Модули реализуют проверку, создание и удаление.
ПРИМЕЧАНИЕ: Документация по LIO и Target доступна [здесь] (https://linux-iscsi.org/wiki/Main_Page).
Требования
Эта роль не создает никаких дисков/разделов/LV. Ожидается, что они уже присутствуют на машине или созданы другой ролью. Например: ricsanfre.storage.
Переменные Роли
Для настройки iSCSI цели используется следующая вложенная переменная, которая определяет, как должна выглядеть конфигурация.
iscsi_targets:
- name: "iqn.2021-07.com.ricsanfre:target_server"
disks:
- name: lun_node1
path: /dev/vg_iscsi/vg_iscsi_lv_node1
type: block
lunid: 0
- name: lun_node2
path: /dev/vg_iscsi/vg_iscsi_lv_node2
type: block
lunid: 1
- name: lun_node3
path: /dev/vg_iscsi/vg_iscsi_lv_node3
type: block
lunid: 2
- name: lun_node4
path: /dev/vg_iscsi/vg_iscsi_lv_node4
type: block
lunid: 3
initiators:
- name: iqn.2021-07.com.ricsanfre:node1
authentication:
userid: node1
password: passwd1
userid_mutual: sharedkey
password_mutual: sharedsecret
mapped_luns:
- mapped_lunid: 0
lunid: 0
- mapped_lunid: 1
lunid: 2
- name: iqn.2021-07.com.ricsanfre:node2
authentication:
userid: node2
password: passwd2
mapped_luns:
- mapped_lunid: 0
lunid: 1
- mapped_lunid: 1
lunid: 3
write_protect: 1
portals:
- ip: 192.168.1.45
port: 5555
- ip: 192.168.2.10
Зависимости
Нет.
Пример Плейбука
В этом примере используется роль ricsanfre.storage
для создания логических томов, которые используются для настройки iSCSI цели.
- hosts: all
become: true
gather_facts: true
vars:
storage_partitions:
- name: /dev/vdb
number: 1
flags:
- lvm
part_end: 1GB
storage_volumegroups:
- name: vg_iscsi
devices:
- /dev/vdb1
storage_volumes:
- name: vg_iscsi_lv_node1
vg: vg_iscsi
size: 100
- name: vg_iscsi_lv_node2
vg: vg_iscsi
size: 100
- name: vg_iscsi_lv_node3
vg: vg_iscsi
size: 100
- name: vg_iscsi_lv_node4
vg: vg_iscsi
size: 100
iscsi_targets:
- name: "iqn.2021-07.com.ricsanfre:{{ ansible_facts['nodename'] }}"
disks:
- name: lun_node1
path: /dev/vg_iscsi/vg_iscsi_lv_node1
type: block
lunid: 0
- name: lun_node2
path: /dev/vg_iscsi/vg_iscsi_lv_node2
type: block
lunid: 1
- name: lun_node3
path: /dev/vg_iscsi/vg_iscsi_lv_node3
type: block
lunid: 2
- name: lun_node4
path: /dev/vg_iscsi/vg_iscsi_lv_node4
type: block
lunid: 3
initiators:
- name: iqn.2021-07.com.ricsanfre:node1
authentication:
userid: node1
password: passwd1
mapped_luns:
- mapped_lunid: 0
lunid: 0
- mapped_lunid: 1
lunid: 2
- name: iqn.2021-07.com.ricsanfre:node2
authentication:
userid: node2
password: passwd2
mapped_luns:
- mapped_lunid: 0
lunid: 1
- mapped_lunid: 1
lunid: 3
write_protect: 1
portals:
- ip: "{{ ansible_default_ipv4.address | default(ansible_all_ipv4_addresses[0]) }}"
roles:
- ricsanfre.storage
- ricsanfre.iscsi_target
Лицензия
MIT/BSD
Информация об авторе
Создано Рикардо Санчесом (ricsanfre) на основе разработки targetcli Ондрея Фамеры ondrej-xa2iel8u@famera.cz.
ansible-galaxy install ricsanfre/ansible-role-iscsi_target