105 lines
2.5 KiB
Bash
Executable File
105 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo " iSCSI Target Configuration Script"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "Error: This script must be run as root"
|
|
exit 1
|
|
fi
|
|
|
|
TGT_CONFIG_DIR="/etc/tgt/conf.d"
|
|
ISCSI_IQN_BASE="iqn.2024-01.com.vtl-linux"
|
|
|
|
echo "[1/4] Installing iSCSI target software..."
|
|
apt-get update
|
|
apt-get install -y tgt
|
|
|
|
echo "[2/4] Configuring iSCSI targets..."
|
|
mkdir -p "$TGT_CONFIG_DIR"
|
|
|
|
cat > "$TGT_CONFIG_DIR/vtl-targets.conf" << 'EOF'
|
|
<target iqn.2024-01.com.vtl-linux:vtl.lun0>
|
|
backing-store /dev/sg1
|
|
initiator-address ALL
|
|
incominguser vtl-user vtl-password
|
|
write-cache on
|
|
</target>
|
|
|
|
<target iqn.2024-01.com.vtl-linux:vtl.lun1>
|
|
backing-store /dev/sg2
|
|
initiator-address ALL
|
|
incominguser vtl-user vtl-password
|
|
write-cache on
|
|
</target>
|
|
|
|
<target iqn.2024-01.com.vtl-linux:vtl.lun2>
|
|
backing-store /dev/sg3
|
|
initiator-address ALL
|
|
incominguser vtl-user vtl-password
|
|
write-cache on
|
|
</target>
|
|
|
|
<target iqn.2024-01.com.vtl-linux:vtl.lun3>
|
|
backing-store /dev/sg4
|
|
initiator-address ALL
|
|
incominguser vtl-user vtl-password
|
|
write-cache on
|
|
</target>
|
|
|
|
<target iqn.2024-01.com.vtl-linux:vtl.changer>
|
|
backing-store /dev/sg0
|
|
initiator-address ALL
|
|
incominguser vtl-user vtl-password
|
|
device-type changer
|
|
</target>
|
|
EOF
|
|
|
|
echo "[3/4] Configuring firewall..."
|
|
if command -v ufw &> /dev/null; then
|
|
ufw allow 3260/tcp
|
|
ufw reload
|
|
elif command -v firewall-cmd &> /dev/null; then
|
|
firewall-cmd --permanent --add-port=3260/tcp
|
|
firewall-cmd --reload
|
|
else
|
|
iptables -A INPUT -p tcp --dport 3260 -j ACCEPT
|
|
iptables-save > /etc/iptables/rules.v4
|
|
fi
|
|
|
|
echo "[4/4] Starting iSCSI target service..."
|
|
systemctl enable tgt
|
|
systemctl restart tgt
|
|
|
|
sleep 2
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo " iSCSI Target Configuration Complete!"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Available targets:"
|
|
tgt-admin --show
|
|
echo ""
|
|
echo "Connection information:"
|
|
echo " - Port: 3260"
|
|
echo " - IQN Base: $ISCSI_IQN_BASE"
|
|
echo " - Username: vtl-user"
|
|
echo " - Password: vtl-password"
|
|
echo ""
|
|
echo "Client connection examples:"
|
|
echo ""
|
|
echo "Linux:"
|
|
echo " iscsiadm -m discovery -t st -p <SERVER_IP>:3260"
|
|
echo " iscsiadm -m node --login"
|
|
echo ""
|
|
echo "Windows:"
|
|
echo " iscsicli QAddTargetPortal <SERVER_IP>"
|
|
echo " iscsicli ListTargets"
|
|
echo " iscsicli LoginTarget <target_name> T * * * * * * * * * * * * * * * <username> <password>"
|
|
echo ""
|