diff --git a/conf/type/__jail/gencode-remote b/conf/type/__jail/gencode-remote index dc18312b..c0a35784 100755 --- a/conf/type/__jail/gencode-remote +++ b/conf/type/__jail/gencode-remote @@ -185,16 +185,18 @@ cat <<EOF fi mkdir -p "${jaildir}/rw/${name}/etc" cp -r ${jaildir}/base/etc/* "${jaildir}/rw/${name}/etc/" + if [ ! -f "${jaildir}/rw/${name}/etc/resolv.conf" ]; then + cp /etc/resolv.conf "${jaildir}/rw/${name}/etc/" + fi mkdir "${jaildir}/rw/${name}/local" - mkdir "${jaildir}/rw/${name}/db" - if [ -n "\$(ls ${jaildir}/base/var/db)" ]; then - cp -r ${jaildir}/base/var/db/* "${jaildir}/rw/${name}/db/" + mkdir "${jaildir}/rw/${name}/var" + if [ -n "\$(ls ${jaildir}/base/var)" ]; then + cp -r ${jaildir}/base/var/* "${jaildir}/rw/${name}/var/" fi mkdir "${jaildir}/rw/${name}/home" if [ -n "\$(ls ${jaildir}/base/usr/home)" ]; then cp -r ${jaildir}/base/usr/home/* "${jaildir}/rw/${name}/home/" fi - mkdir "${jaildir}/rw/${name}/tmp" EOF # Create the ro+rw mountpoint entries in fstab @@ -203,9 +205,8 @@ cat <<EOF /usr/jail/base /usr/jail/${name} nullfs ro 0 0 /usr/jail/rw/${name}/etc /usr/jail/${name}/etc nullfs rw 0 0 /usr/jail/rw/${name}/local /usr/jail/${name}/usr/local nullfs rw 0 0 -/usr/jail/rw/${name}/db /usr/jail/${name}/var/db nullfs rw 0 0 +/usr/jail/rw/${name}/var /usr/jail/${name}/var nullfs rw 0 0 /usr/jail/rw/${name}/home /usr/jail/${name}/usr/home nullfs rw 0 0 -/usr/jail/rw/${name}/tmp /usr/jail/${name}/var/tmp nullfs rw 0 0 END EOF @@ -227,6 +228,13 @@ if [ -n "$interface" ]; then jail_${name}_interface="${interface}" END EOF +else + cat <<EOF + interface=\$(ifconfig -l | cut '-d ' -f1) + cat >>/etc/rc.conf <<END +jail_${name}_interface="\${interface}" +END +EOF fi if [ "$devfsenable" = "true" ]; then @@ -265,11 +273,19 @@ EOF fi # Add the normal entries into the jail's rc.conf -echo "echo hostname=\\\"${hostname}\\\" >\\\"${jaildir}/rw/${name}/etc/rc.conf\\\"" -echo "echo sshd_enable=\\\"YES\\\" >>\\\"${jaildir}/rw/${name}/etc/rc.conf\\\"" -echo "echo sendmail_enable=\\\"NONE\\\" >>\\\"${jaildir}/rw/${name}/etc/rc.conf\\\"" -echo "echo syslogd_enable=\\\"YES\\\" >>\\\"${jaildir}/rw/${name}/etc/rc.conf\\\"" -echo "echo syslogd_flags=\\\"-ss\\\" >>\\\"${jaildir}/rw/${name}/etc/rc.conf\\\"" +cat <<EOF +echo hostname=\"${hostname}\" >"${jaildir}/rw/${name}/etc/rc.conf" +echo sshd_enable=\"YES\" >>"${jaildir}/rw/${name}/etc/rc.conf" +echo sendmail_enable=\"NONE\" >>"${jaildir}/rw/${name}/etc/rc.conf" +echo syslogd_enable=\"YES\" >>"${jaildir}/rw/${name}/etc/rc.conf" +echo syslogd_flags=\"-ss\" >>"${jaildir}/rw/${name}/etc/rc.conf" + +EOF +# Configure SSHd's listening address +cat <<EOF +ip=\$(echo "${ip}" | cut '-d ' -f1) +sed -i '.bak' "s/#ListenAddress 0.0.0.0/ListenAddress \${ip}/" "${jaildir}/rw/${name}/etc/ssh/sshd_config" +EOF } if [ "$present" = "EXISTS" ]; then # The jail currently exists diff --git a/conf/type/__jail/man.text b/conf/type/__jail/man.text index e6256975..8e31ef37 100644 --- a/conf/type/__jail/man.text +++ b/conf/type/__jail/man.text @@ -36,6 +36,7 @@ hostname:: interface:: The name of the physical interface on the jail server to bind the jail to. + Defaults to the first interface found in the output of ifconfig -l. devfs-enable:: Whether to allow devfs mounting within the jail. Must be "true" or "false." @@ -64,7 +65,7 @@ EXAMPLES -------------------------------------------------------------------------------- # Create a jail called www -__jail www --state present --ip "192.168.1.2 netmask 255.255.255.0" +__jail www --state present --ip "192.168.1.2" # Remove the jail called www __jail www --state absent @@ -75,7 +76,7 @@ __jail www --state present --started true \ # Use the name variable explicitly __jail thisjail --state present --name www \ - --ip "192.168.1.2 netmask 255.255.255.0" + --ip "192.168.1.2" # Go nuts __jail lotsofoptions --state present --name testjail --started true \