Мне нужно создать конфигурацию с несколькими путями для тестирования в скрипте, но я хотел бы использовать конкретные имена с определенным префиксом для создаваемых устройств, чтобы я мог легко отфильтровать тестируемые из всего, что может уже существовать. Я знаю, что могу отредактировать /etc/multipath.conf
чтобы настроить псевдоним, но редактирование файлов конфигурации системы из теста сводит с ума. Это вообще возможно?
Скрипт bash, который я использую для его настройки:
iqn="iqn.2006-04.com.example:444"
mpath_setup_targets() {
# $1 is the device which is going to be provided through multipath
filename="$1"
hostiqn=$(cat /etc/iscsi/initiatorname.iscsi | grep -o "iqn.*$")
targetcli backstores/block create md_block0 "$filename"
targetcli /iscsi create $iqn
targetcli /iscsi/$iqn/tpg1/luns create /backstores/block/md_block0
targetcli /iscsi/$iqn/tpg1/portals delete 0.0.0.0 3260
targetcli /iscsi/$iqn/tpg1/portals create 127.0.0.1 3260
targetcli /iscsi/$iqn/tpg1/portals create 127.0.0.2 3260
targetcli /iscsi/$iqn/tpg1/portals create 127.0.0.3 3260
targetcli /iscsi/$iqn/tpg1/acls create $hostiqn
targetcli /iscsi/$iqn/tpg1 set attribute authentication=0
# find the multiple paths to $filename
iscsiadm -m discovery -t sendtargets -p 127.0.0.1 -o new -o delete >/dev/null
iscsiadm -m node -L all >/dev/null
# give it few seconds to propagate and fail if nothing appears
tries=5
while [ $tries -gt 0 ]; do
found=$(multipath -ll | wc -l)
tries=$((tries - 1))
if [ $found -gt 0 ]; then
return 0
fi
sleep 1
done
return 1
}