diff --git a/conf/type/__jail/explorer/present b/conf/type/__jail/explorer/present new file mode 100755 index 00000000..c559cf65 --- /dev/null +++ b/conf/type/__jail/explorer/present @@ -0,0 +1,27 @@ +#!/bin/sh +# +# 2012 Jake Guffey (jake.guffey at eprotex.com) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# See if the requested jail exists +# + +name=$__object_id + +[ -d "/usr/jail/$name" ] && echo "EXISTS" + diff --git a/conf/type/__jail/explorer/status b/conf/type/__jail/explorer/status new file mode 100755 index 00000000..19b57672 --- /dev/null +++ b/conf/type/__jail/explorer/status @@ -0,0 +1,28 @@ +#!/bin/sh +# +# 2012 Jake Guffey (jake.guffey at eprotex.com) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# See if the requested jail is started +# + +name=$__object_id + +jls_output=$(jls | grep "[ ]\/usr\/jail\/$name\$") +[ -n "$jls_output" ] && echo "STARTED" + diff --git a/conf/type/__jail/files/jailbase b/conf/type/__jail/files/jailbase new file mode 100644 index 00000000..defb739a --- /dev/null +++ b/conf/type/__jail/files/jailbase @@ -0,0 +1 @@ +Create a tarball jailbase.tgz in this directory containing the base filesystem for a jail. diff --git a/conf/type/__jail/gencode-remote b/conf/type/__jail/gencode-remote old mode 100644 new mode 100755 index e69de29b..264ce111 --- a/conf/type/__jail/gencode-remote +++ b/conf/type/__jail/gencode-remote @@ -0,0 +1,44 @@ +#!/bin/sh +# +# 2012 Jake Guffey (jake.guffey at eprotex.com) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# The __jail type creates, configures, and deletes FreeBSD jails for use as +# virtual machines. +# + +jaildir="/usr/jail" +present="$(cat "$__object/explorer/present")" +status="$(cat "$__object/explorer/status")" +state="$(cat "$__object/parameter/state")" +name="$__object_id" + +if [ -f "$__object/parameter/started" ]; then + started="$(cat "$__object/parameter/started")" +fi + +# + +if [ "$present" = "EXISTS" ]; then +# blah +fi + +if [ "$status" = "STARTED" ]; then +# blah +fi + diff --git a/conf/type/__jail/man.text b/conf/type/__jail/man.text index e69de29b..b2e49468 100644 --- a/conf/type/__jail/man.text +++ b/conf/type/__jail/man.text @@ -0,0 +1,54 @@ +cdist-type__jail(7) +========================== +Jake Guffey + + +NAME +---- +cdist-type__jail - Manage FreeBSD jails + + +DESCRIPTION +----------- +This type is used on FreeBSD to manage jails. + + +REQUIRED PARAMETERS +------------------- +state:: + Either "present" or "absent." + + +OPTIONAL PARAMETERS +------------------- +started:: + Either "true" or "false." + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Create a jail called www +__jail www --state present + +# Remove the jail called www +__jail www --state absent + +# Ensure that the jail called www is started +__jail www --state present --started true + +# Use the name variable explicitly +__jail thisjail --state present --name www +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) + + +COPYING +------- +Copyright \(C) 2012 Jake Guffey. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/conf/type/__jail/manifest b/conf/type/__jail/manifest new file mode 100755 index 00000000..81fcd65b --- /dev/null +++ b/conf/type/__jail/manifest @@ -0,0 +1,31 @@ +#!/bin/sh +# +# 2012 Jake Guffey (jake.guffey at eprotex.com) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# The __jail type creates, configures, and deletes FreeBSD jails for use as +# virtual machines. +# + +#FIXME: /usr/jail should never be hardcoded in this type +#FIXME: jailbase.tgz should not be hardcoded in this file + +jailbase="/usr/jail/jailbase.tgz" + +__rsyncer "$jailbase" --source "$__object/files/jailbase.tgz" + diff --git a/conf/type/__jail/parameter/optional b/conf/type/__jail/parameter/optional index e69de29b..c06c82c7 100644 --- a/conf/type/__jail/parameter/optional +++ b/conf/type/__jail/parameter/optional @@ -0,0 +1 @@ +started diff --git a/conf/type/__jail/parameter/required b/conf/type/__jail/parameter/required index e69de29b..ff72b5c7 100644 --- a/conf/type/__jail/parameter/required +++ b/conf/type/__jail/parameter/required @@ -0,0 +1 @@ +state