initial release
This commit is contained in:
59
files/jail_create_full.sh
Normal file
59
files/jail_create_full.sh
Normal file
@ -0,0 +1,59 @@
|
||||
#!/bin/sh
|
||||
if [ $# -eq 0 ]
|
||||
then
|
||||
echo "Use: $0 jailName"
|
||||
exit 0
|
||||
else
|
||||
#Calculate next ip
|
||||
grep jid /etc/jail.conf | grep -v \# | tr -d \; | awk '{print $3}' > $PWD/jid.tmp
|
||||
JAILID=$(sort -hr jid.tmp|head -1)
|
||||
JAILID=$((JAILID+1))
|
||||
JAIL="$1"
|
||||
RELEASE="14.1-RELEASE"
|
||||
JAILMOUNTPOINT="/usr/local/jails"
|
||||
JAILFSTAB="/usr/local/jails/jail.fstab.d/"
|
||||
JAILCONFIG="/etc/jail.conf"
|
||||
ZFS_SNAPSHOT=$(zfs list -t snapshot| grep releases/$RELEASE|awk '{print $1}')
|
||||
ZFS_SERVICE="/srv/jails/services"
|
||||
ZFS_JAIL="/srv/jails/services/$JAIL"
|
||||
if [ -z "$ZFS_SNAPSHOT" ]
|
||||
then
|
||||
echo "Creating SKELETON snapshot"
|
||||
zfs snapshot $ZFS_SNAPSHOT
|
||||
fi
|
||||
if ! [ -d "$ZFS_SERVICE" ]
|
||||
then
|
||||
echo "Creating services jail"
|
||||
zfs create zroot/jails/services
|
||||
fi
|
||||
if ! [ -d "$ZFS_JAIL" ]
|
||||
then
|
||||
echo "Creating $JAIL jail"
|
||||
zfs clone $ZFS_SNAPSHOT zroot/jails/services/$JAIL
|
||||
else
|
||||
echo "Jail $JAIL already exist, try to start or restart it"
|
||||
break
|
||||
fi
|
||||
|
||||
echo "hostname=\"$JAIL\"" > /srv/jails/services/$JAIL/etc/rc.conf
|
||||
|
||||
#Create mountpoint
|
||||
if [ ! -d $JAILMOUNTPOINT/$JAIL ]
|
||||
then
|
||||
mkdir -p $JAILMOUNTPOINT/$JAIL
|
||||
fi
|
||||
if [ ! -f $JAILFSTAB/$JAIL.fstab ]
|
||||
then
|
||||
touch $JAILFSTAB/$JAIL.fstab
|
||||
fi
|
||||
#checking ip
|
||||
#echo "/srv/jails/templates/base-$RELEASE $JAILMOUNTPOINT/$JAIL/ nullfs ro 0 0" >> $JAILFSTAB/$JAIL.fstab
|
||||
echo "/srv/jails/services/$JAIL $JAILMOUNTPOINT/$JAIL nullfs rw 0 0" >> $JAILFSTAB/$JAIL.fstab
|
||||
echo "$JAIL {" >> $JAILCONFIG
|
||||
echo "# jid = ${JAILID};" >> $JAILCONFIG
|
||||
echo '# exec.start = "/usr/local/etc/rc.d/service onestart";' >> $JAILCONFIG
|
||||
echo '# exec.stop = "/usr/local/etc/rc.d/service onestop";' >> $JAILCONFIG
|
||||
echo ' allow.raw_sockets = "true";' >> $JAILCONFIG
|
||||
echo " \$ip = ${JAILID};" >> $JAILCONFIG
|
||||
echo "}" >> $JAILCONFIG
|
||||
fi
|
||||
Reference in New Issue
Block a user