FreeNAS Add ISCSI Extents

I use this script to quicly add an ISCSI target cloned from a snapshot. This still needs a lot of work, but the intent is to have an automated process create ISCSI targets for diskless station to boot from. The script takes 2 args:

#./addiscsi identifier what-to-clone

#./addiscsi newname iscsi-win7x86

#!/bin/bash
if [ -z $1 ]
then
exit
fi
if [ -z $2 ]
then
exit
fi
zfs destroy -f Store/Extents2/$1
zfs clone `zfs list -Hr -o name -S creation -t snapshot -d 1 Store/Extents | head -n 1` Store/Extents2/$1
if [ -z `sqlite3 /data/freenas-v1.db “select id from services_iscsitarget where iscsi_target_name=’$2-$1-t’;”` ]
then
TID=`sqlite3 /data/freenas-v1.db “select max(id)+1 from services_iscsitarget;”`
if [ -z $TID ]
then
TID=1
fi
sqlite3 /data/freenas-v1.db “insert into services_iscsitarget values(512,1,’Auto’,32,’$2-$1-t’,’10000000$TID’,’$2-$1-a’,’Disk’,0,1,’None’,’rw’,$TID);”
echo “$TID”
EID=`sqlite3 /data/freenas-v1.db “select max(id)+1 from services_iscsitargetextent;”`
if [ -z $EID ]
then
EID=1
fi
sqlite3 /data/freenas-v1.db “insert into services_iscsitargetextent values(”,’File’,’$2-$1-e’,0,$EID,’/mnt/Store/Extents2/$1/$2′);”
echo “$EID”
ATID=`sqlite3 /data/freenas-v1.db “select max(id)+1 from services_iscsitargettoextent;”`
if [ -z $ATID ]
then
ATID=1
fi
sqlite3 /data/freenas-v1.db “insert into services_iscsitargettoextent values($TID,$EID,$ATID);”
fi

Permanent link to this article: https://daherlabs.mywire.org/wordpress/?p=18

Leave a Reply

Your email address will not be published.