forked from ungleich-public/cdist
Merge remote-tracking branch 'ungleich/master' into cdist-type__hosts
This commit is contained in:
commit
d3b3fef63b
227 changed files with 4524 additions and 427 deletions
|
@ -59,16 +59,24 @@ class UnresolvableRequirementsError(cdist.Error):
|
||||||
class CdistBetaRequired(cdist.Error):
|
class CdistBetaRequired(cdist.Error):
|
||||||
"""Beta functionality is used but beta is not enabled"""
|
"""Beta functionality is used but beta is not enabled"""
|
||||||
|
|
||||||
def __init__(self, command, arg):
|
def __init__(self, command, arg=None):
|
||||||
self.command = command
|
self.command = command
|
||||||
self.arg = arg
|
self.arg = arg
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
err_msg = ("\'{}\' argument of \'{}\' command is beta, but beta is "
|
if self.arg is None:
|
||||||
"not enabled. If you want to use it please enable beta "
|
err_msg = ("\'{}\' command is beta, but beta is "
|
||||||
"functionalities by using the -b/--enable-beta command "
|
"not enabled. If you want to use it please enable beta "
|
||||||
"line flag.")
|
"functionalities by using the -b/--beta command "
|
||||||
return err_msg.format(self.arg, self.command)
|
"line flag or setting CDIST_BETA env var.")
|
||||||
|
fmt_args = [self.command, ]
|
||||||
|
else:
|
||||||
|
err_msg = ("\'{}\' argument of \'{}\' command is beta, but beta "
|
||||||
|
"is not enabled. If you want to use it please enable "
|
||||||
|
"beta functionalities by using the -b/--beta "
|
||||||
|
"command line flag or setting CDIST_BETA env var.")
|
||||||
|
fmt_args = [self.arg, self.command, ]
|
||||||
|
return err_msg.format(*fmt_args)
|
||||||
|
|
||||||
|
|
||||||
class CdistObjectError(Error):
|
class CdistObjectError(Error):
|
||||||
|
|
210
cdist/argparse.py
Normal file
210
cdist/argparse.py
Normal file
|
@ -0,0 +1,210 @@
|
||||||
|
import argparse
|
||||||
|
import cdist
|
||||||
|
import multiprocessing
|
||||||
|
import os
|
||||||
|
import logging
|
||||||
|
import collections
|
||||||
|
|
||||||
|
|
||||||
|
# set of beta sub-commands
|
||||||
|
BETA_COMMANDS = set(('install', ))
|
||||||
|
# set of beta arguments for sub-commands
|
||||||
|
BETA_ARGS = {
|
||||||
|
'config': set(('jobs', )),
|
||||||
|
}
|
||||||
|
EPILOG = "Get cdist at http://www.nico.schottelius.org/software/cdist/"
|
||||||
|
# Parser others can reuse
|
||||||
|
parser = None
|
||||||
|
|
||||||
|
|
||||||
|
_verbosity_level = {
|
||||||
|
0: logging.ERROR,
|
||||||
|
1: logging.WARNING,
|
||||||
|
2: logging.INFO,
|
||||||
|
}
|
||||||
|
_verbosity_level = collections.defaultdict(
|
||||||
|
lambda: logging.DEBUG, _verbosity_level)
|
||||||
|
|
||||||
|
|
||||||
|
def add_beta_command(cmd):
|
||||||
|
BETA_COMMANDS.add(cmd)
|
||||||
|
|
||||||
|
|
||||||
|
def add_beta_arg(cmd, arg):
|
||||||
|
if cmd in BETA_ARGS:
|
||||||
|
if arg not in BETA_ARGS[cmd]:
|
||||||
|
BETA_ARGS[cmd].append(arg)
|
||||||
|
else:
|
||||||
|
BETA_ARGS[cmd] = set((arg, ))
|
||||||
|
|
||||||
|
|
||||||
|
def check_beta(args_dict):
|
||||||
|
if 'beta' not in args_dict:
|
||||||
|
args_dict['beta'] = False
|
||||||
|
# Check only if beta is not enabled: if beta option is specified then
|
||||||
|
# raise error.
|
||||||
|
if not args_dict['beta']:
|
||||||
|
cmd = args_dict['command']
|
||||||
|
# first check if command is beta
|
||||||
|
if cmd in BETA_COMMANDS:
|
||||||
|
raise cdist.CdistBetaRequired(cmd)
|
||||||
|
# then check if some command's argument is beta
|
||||||
|
if cmd in BETA_ARGS:
|
||||||
|
for arg in BETA_ARGS[cmd]:
|
||||||
|
if arg in args_dict and args_dict[arg]:
|
||||||
|
raise cdist.CdistBetaRequired(cmd, arg)
|
||||||
|
|
||||||
|
|
||||||
|
def check_positive_int(value):
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
try:
|
||||||
|
val = int(value)
|
||||||
|
except ValueError:
|
||||||
|
raise argparse.ArgumentTypeError(
|
||||||
|
"{} is invalid int value".format(value))
|
||||||
|
if val <= 0:
|
||||||
|
raise argparse.ArgumentTypeError(
|
||||||
|
"{} is invalid positive int value".format(val))
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
|
def get_parsers():
|
||||||
|
global parser
|
||||||
|
|
||||||
|
# Construct parser others can reuse
|
||||||
|
if parser:
|
||||||
|
return parser
|
||||||
|
else:
|
||||||
|
parser = {}
|
||||||
|
# Options _all_ parsers have in common
|
||||||
|
parser['loglevel'] = argparse.ArgumentParser(add_help=False)
|
||||||
|
parser['loglevel'].add_argument(
|
||||||
|
'-d', '--debug',
|
||||||
|
help=('Set log level to debug (deprecated, use -vvv instead)'),
|
||||||
|
action='store_true', default=False)
|
||||||
|
parser['loglevel'].add_argument(
|
||||||
|
'-v', '--verbose',
|
||||||
|
help=('Increase the verbosity level. Every instance of -v '
|
||||||
|
'increments the verbosity level by one. Its default value is '
|
||||||
|
'0. There are 4 levels of verbosity. The order of levels '
|
||||||
|
'from the lowest to the highest are: ERROR (0), WARNING (1), '
|
||||||
|
'INFO (2) and DEBUG (3 or higher).'),
|
||||||
|
action='count', default=0)
|
||||||
|
|
||||||
|
parser['beta'] = argparse.ArgumentParser(add_help=False)
|
||||||
|
parser['beta'].add_argument(
|
||||||
|
'-b', '--beta',
|
||||||
|
help=('Enable beta functionalities. '
|
||||||
|
'Can also be enabled using CDIST_BETA env var.'),
|
||||||
|
action='store_true', dest='beta',
|
||||||
|
default='CDIST_BETA' in os.environ)
|
||||||
|
|
||||||
|
# Main subcommand parser
|
||||||
|
parser['main'] = argparse.ArgumentParser(
|
||||||
|
description='cdist ' + cdist.VERSION, parents=[parser['loglevel']])
|
||||||
|
parser['main'].add_argument(
|
||||||
|
'-V', '--version', help='Show version', action='version',
|
||||||
|
version='%(prog)s ' + cdist.VERSION)
|
||||||
|
parser['sub'] = parser['main'].add_subparsers(
|
||||||
|
title="Commands", dest="command")
|
||||||
|
|
||||||
|
# Banner
|
||||||
|
parser['banner'] = parser['sub'].add_parser(
|
||||||
|
'banner', parents=[parser['loglevel']])
|
||||||
|
parser['banner'].set_defaults(func=cdist.banner.banner)
|
||||||
|
|
||||||
|
# Config
|
||||||
|
parser['config_main'] = argparse.ArgumentParser(add_help=False)
|
||||||
|
parser['config_main'].add_argument(
|
||||||
|
'-c', '--conf-dir',
|
||||||
|
help=('Add configuration directory (can be repeated, '
|
||||||
|
'last one wins)'), action='append')
|
||||||
|
parser['config_main'].add_argument(
|
||||||
|
'-i', '--initial-manifest',
|
||||||
|
help='path to a cdist manifest or \'-\' to read from stdin.',
|
||||||
|
dest='manifest', required=False)
|
||||||
|
parser['config_main'].add_argument(
|
||||||
|
'-j', '--jobs', nargs='?',
|
||||||
|
type=check_positive_int,
|
||||||
|
help=('Specify the maximum number of parallel jobs, currently '
|
||||||
|
'only global explorers are supported'),
|
||||||
|
action='store', dest='jobs',
|
||||||
|
const=multiprocessing.cpu_count())
|
||||||
|
parser['config_main'].add_argument(
|
||||||
|
'-n', '--dry-run',
|
||||||
|
help='do not execute code', action='store_true')
|
||||||
|
parser['config_main'].add_argument(
|
||||||
|
'-o', '--out-dir',
|
||||||
|
help='directory to save cdist output in', dest="out_path")
|
||||||
|
|
||||||
|
# remote-copy and remote-exec defaults are environment variables
|
||||||
|
# if set; if not then None - these will be futher handled after
|
||||||
|
# parsing to determine implementation default
|
||||||
|
parser['config_main'].add_argument(
|
||||||
|
'--remote-copy',
|
||||||
|
help='Command to use for remote copy (should behave like scp)',
|
||||||
|
action='store', dest='remote_copy',
|
||||||
|
default=os.environ.get('CDIST_REMOTE_COPY'))
|
||||||
|
parser['config_main'].add_argument(
|
||||||
|
'--remote-exec',
|
||||||
|
help=('Command to use for remote execution '
|
||||||
|
'(should behave like ssh)'),
|
||||||
|
action='store', dest='remote_exec',
|
||||||
|
default=os.environ.get('CDIST_REMOTE_EXEC'))
|
||||||
|
|
||||||
|
# Config
|
||||||
|
parser['config_args'] = argparse.ArgumentParser(add_help=False)
|
||||||
|
parser['config_args'].add_argument(
|
||||||
|
'host', nargs='*', help='host(s) to operate on')
|
||||||
|
parser['config_args'].add_argument(
|
||||||
|
'-f', '--file',
|
||||||
|
help=('Read additional hosts to operate on from specified file '
|
||||||
|
'or from stdin if \'-\' (each host on separate line). '
|
||||||
|
'If no host or host file is specified then, by default, '
|
||||||
|
'read hosts from stdin.'),
|
||||||
|
dest='hostfile', required=False)
|
||||||
|
parser['config_args'].add_argument(
|
||||||
|
'-p', '--parallel',
|
||||||
|
help='operate on multiple hosts in parallel',
|
||||||
|
action='store_true', dest='parallel')
|
||||||
|
parser['config_args'].add_argument(
|
||||||
|
'-s', '--sequential',
|
||||||
|
help='operate on multiple hosts sequentially (default)',
|
||||||
|
action='store_false', dest='parallel')
|
||||||
|
parser['config'] = parser['sub'].add_parser(
|
||||||
|
'config', parents=[parser['loglevel'], parser['beta'],
|
||||||
|
parser['config_main'],
|
||||||
|
parser['config_args']])
|
||||||
|
parser['config'].set_defaults(func=cdist.config.Config.commandline)
|
||||||
|
|
||||||
|
# Install
|
||||||
|
parser['install'] = parser['sub'].add_parser('install', add_help=False,
|
||||||
|
parents=[parser['config']])
|
||||||
|
parser['install'].set_defaults(func=cdist.install.Install.commandline)
|
||||||
|
|
||||||
|
# Shell
|
||||||
|
parser['shell'] = parser['sub'].add_parser(
|
||||||
|
'shell', parents=[parser['loglevel']])
|
||||||
|
parser['shell'].add_argument(
|
||||||
|
'-s', '--shell',
|
||||||
|
help=('Select shell to use, defaults to current shell. Used shell'
|
||||||
|
' should be POSIX compatible shell.'))
|
||||||
|
parser['shell'].set_defaults(func=cdist.shell.Shell.commandline)
|
||||||
|
|
||||||
|
for p in parser:
|
||||||
|
parser[p].epilog = EPILOG
|
||||||
|
|
||||||
|
return parser
|
||||||
|
|
||||||
|
|
||||||
|
def handle_loglevel(args):
|
||||||
|
if args.debug:
|
||||||
|
retval = "-d/--debug is deprecated, use -vvv instead"
|
||||||
|
args.verbose = 3
|
||||||
|
else:
|
||||||
|
retval = None
|
||||||
|
|
||||||
|
logging.root.setLevel(_verbosity_level[args.verbose])
|
||||||
|
|
||||||
|
return retval
|
2
cdist/conf/explorer/disks
Normal file
2
cdist/conf/explorer/disks
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
cd /dev
|
||||||
|
echo sd? hd? vd?
|
|
@ -39,6 +39,11 @@ if [ -f /etc/cdist-preos ]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -d /gnu/store ]; then
|
||||||
|
echo guixsd
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
### Debian and derivatives
|
### Debian and derivatives
|
||||||
if grep -q ^DISTRIB_ID=Ubuntu /etc/lsb-release 2>/dev/null; then
|
if grep -q ^DISTRIB_ID=Ubuntu /etc/lsb-release 2>/dev/null; then
|
||||||
echo ubuntu
|
echo ubuntu
|
||||||
|
|
|
@ -61,7 +61,11 @@ case "$($__explorer/os)" in
|
||||||
cat /etc/slackware-version
|
cat /etc/slackware-version
|
||||||
;;
|
;;
|
||||||
suse)
|
suse)
|
||||||
cat /etc/SuSE-release
|
if [ -f /etc/os-release ]; then
|
||||||
|
cat /etc/os-release
|
||||||
|
else
|
||||||
|
cat /etc/SuSE-release
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
ubuntu)
|
ubuntu)
|
||||||
lsb_release -sr
|
lsb_release -sr
|
||||||
|
|
31
cdist/conf/type/__apt_mark/explorer/apt_version
Normal file
31
cdist/conf/type/__apt_mark/explorer/apt_version
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2016 Ander Punnar (cdist at kvlt.ee)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
apt_version_is=$(dpkg-query --show --showformat '${Version}' apt)
|
||||||
|
|
||||||
|
# from APT changelog:
|
||||||
|
# apt (0.8.14.2) UNRELEASED; urgency=low
|
||||||
|
# provide a 'dpkg --set-selections' wrapper to set/release holds
|
||||||
|
|
||||||
|
apt_version_should=0.8.14.2
|
||||||
|
|
||||||
|
dpkg --compare-versions $apt_version_should le $apt_version_is \
|
||||||
|
&& echo 0 \
|
||||||
|
|| echo 1
|
30
cdist/conf/type/__apt_mark/explorer/package_installed
Normal file
30
cdist/conf/type/__apt_mark/explorer/package_installed
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2016 Ander Punnar (cdist at kvlt.ee)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -f "$__object/parameter/name" ]; then
|
||||||
|
name="$(cat "$__object/parameter/name")"
|
||||||
|
else
|
||||||
|
name="$__object_id"
|
||||||
|
fi
|
||||||
|
|
||||||
|
dpkg-query --show --showformat '${Status}' $name 2>/dev/null \
|
||||||
|
| grep -q 'ok installed' \
|
||||||
|
&& echo 0 \
|
||||||
|
|| echo 1
|
27
cdist/conf/type/__apt_mark/explorer/state
Normal file
27
cdist/conf/type/__apt_mark/explorer/state
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2016 Ander Punnar (cdist at kvlt.ee)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -f "$__object/parameter/name" ]; then
|
||||||
|
name="$(cat "$__object/parameter/name")"
|
||||||
|
else
|
||||||
|
name="$__object_id"
|
||||||
|
fi
|
||||||
|
|
||||||
|
apt-mark showhold | grep -q $name && echo hold || echo unhold
|
56
cdist/conf/type/__apt_mark/gencode-remote
Normal file
56
cdist/conf/type/__apt_mark/gencode-remote
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2016 Ander Punnar (cdist at kvlt.ee)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -f "$__object/parameter/name" ]; then
|
||||||
|
name="$(cat "$__object/parameter/name")"
|
||||||
|
else
|
||||||
|
name="$__object_id"
|
||||||
|
fi
|
||||||
|
|
||||||
|
apt_version="$(cat "$__object/explorer/apt_version")"
|
||||||
|
|
||||||
|
if [ "$apt_version" != '0' ]; then
|
||||||
|
echo 'APT version not supported' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
package_installed="$(cat "$__object/explorer/package_installed")"
|
||||||
|
|
||||||
|
if [ "$package_installed" != '0' ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
state_should="$(cat "$__object/parameter/state")"
|
||||||
|
|
||||||
|
state_is="$(cat "$__object/explorer/state")"
|
||||||
|
|
||||||
|
if [ "$state_should" = "$state_is" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$state_should" in
|
||||||
|
hold|unhold)
|
||||||
|
echo "apt-mark $state_should $name > /dev/null"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown state: $state_should" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
47
cdist/conf/type/__apt_mark/man.rst
Normal file
47
cdist/conf/type/__apt_mark/man.rst
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
cdist-type__apt_mark(7)
|
||||||
|
=======================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__apt_mark - set package state as 'hold' or 'unhold'
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
See apt-mark(8) for details.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
state
|
||||||
|
Either "hold" or "unhold".
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
name
|
||||||
|
If supplied, use the name and not the object id as the package name.
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
# hold package
|
||||||
|
__apt_mark quagga --state hold
|
||||||
|
# unhold package
|
||||||
|
__apt_mark quagga --state unhold
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Ander Punnar <cdist--@--kvlt.ee>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2016 Ander Punnar. 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.
|
1
cdist/conf/type/__apt_mark/parameter/optional
Normal file
1
cdist/conf/type/__apt_mark/parameter/optional
Normal file
|
@ -0,0 +1 @@
|
||||||
|
name
|
1
cdist/conf/type/__apt_mark/parameter/required
Normal file
1
cdist/conf/type/__apt_mark/parameter/required
Normal file
|
@ -0,0 +1 @@
|
||||||
|
state
|
|
@ -30,7 +30,7 @@ username
|
||||||
|
|
||||||
source
|
source
|
||||||
Select the source from which to clone cdist from.
|
Select the source from which to clone cdist from.
|
||||||
Defaults to "git://github.com/telmich/cdist.git".
|
Defaults to "git://github.com/ungleich/cdist.git".
|
||||||
|
|
||||||
|
|
||||||
branch
|
branch
|
||||||
|
@ -47,7 +47,7 @@ EXAMPLES
|
||||||
__cdist /home/cdist/cdist
|
__cdist /home/cdist/cdist
|
||||||
|
|
||||||
# Use alternative source
|
# Use alternative source
|
||||||
__cdist --source "git://git.schottelius.org/cdist" /home/cdist/cdist
|
__cdist --source "git://github.com/ungleich/cdist" /home/cdist/cdist
|
||||||
|
|
||||||
|
|
||||||
AUTHORS
|
AUTHORS
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
git://github.com/telmich/cdist.git
|
git://github.com/ungleich/cdist.git
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 2011 Daniel Maher (phrawzty+cdist at gmail.com)
|
# Copyright (C) 2011 Daniel Maher (phrawzty+cdist at gmail.com)
|
||||||
#
|
#
|
||||||
# This file is part of cdist (https://github.com/telmich/cdist/).
|
# This file is part of cdist.
|
||||||
#
|
#
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
# cdist is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
48
cdist/conf/type/__chroot_mount/gencode-remote
Executable file
48
cdist/conf/type/__chroot_mount/gencode-remote
Executable file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2012 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
chroot="/$__object_id"
|
||||||
|
|
||||||
|
cat << DONE
|
||||||
|
# Prepare chroot
|
||||||
|
[ -d "${chroot}/proc" ] || mkdir "${chroot}/proc"
|
||||||
|
mountpoint -q "${chroot}/proc" \
|
||||||
|
|| mount -t proc -o nosuid,noexec,nodev proc "${chroot}/proc"
|
||||||
|
|
||||||
|
[ -d "${chroot}/sys" ] || mkdir "${chroot}/sys"
|
||||||
|
mountpoint -q "${chroot}/sys" \
|
||||||
|
|| mount -t sysfs -o nosuid,noexec,nodev sys "${chroot}/sys"
|
||||||
|
|
||||||
|
[ -d "${chroot}/dev" ] || mkdir "${chroot}/dev"
|
||||||
|
mountpoint -q "${chroot}/dev" \
|
||||||
|
|| mount -t devtmpfs -o mode=0755,nosuid udev "${chroot}/dev"
|
||||||
|
|
||||||
|
[ -d "${chroot}/dev/pts" ] || mkdir "${chroot}/dev/pts"
|
||||||
|
mountpoint -q "${chroot}/dev/pts" \
|
||||||
|
|| mount -t devpts -o mode=0620,gid=5,nosuid,noexec devpts "${chroot}/dev/pts"
|
||||||
|
|
||||||
|
[ -d "${chroot}/tmp" ] || mkdir -m 1777 "${chroot}/tmp"
|
||||||
|
mountpoint -q "${chroot}/tmp" \
|
||||||
|
|| mount -t tmpfs -o mode=1777,strictatime,nodev,nosuid tmpfs "${chroot}/tmp"
|
||||||
|
|
||||||
|
if [ ! -f "${chroot}/etc/resolv.conf" ]; then
|
||||||
|
cp /etc/resolv.conf "${chroot}/etc/"
|
||||||
|
fi
|
||||||
|
DONE
|
42
cdist/conf/type/__chroot_mount/man.rst
Normal file
42
cdist/conf/type/__chroot_mount/man.rst
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
cdist-type__chroot_mount(7)
|
||||||
|
===================================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__chroot_mount - mount a chroot
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
Mount and prepare a chroot for running commands within it.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
__chroot_mount /path/to/chroot
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2012 Steven Armstrong. 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.
|
36
cdist/conf/type/__chroot_umount/gencode-remote
Executable file
36
cdist/conf/type/__chroot_umount/gencode-remote
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2012 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
chroot="/$__object_id"
|
||||||
|
|
||||||
|
cat << DONE
|
||||||
|
umount -l "${chroot}/tmp"
|
||||||
|
umount -l "${chroot}/dev/pts"
|
||||||
|
umount -l "${chroot}/dev"
|
||||||
|
umount -l "${chroot}/sys"
|
||||||
|
umount -l "${chroot}/proc"
|
||||||
|
rm -f "${chroot}/etc/resolv.conf"
|
||||||
|
if [ -d "${chroot}/etc/resolvconf/resolv.conf.d" ]; then
|
||||||
|
# ensure /etc/resolvconf/resolv.conf.d/tail is not linked to \
|
||||||
|
# e.g. /etc/resolvconf/resolv.conf.d/original
|
||||||
|
rm -f "${chroot}/etc/resolvconf/resolv.conf.d/tail"
|
||||||
|
touch "${chroot}/etc/resolvconf/resolv.conf.d/tail"
|
||||||
|
fi
|
||||||
|
DONE
|
47
cdist/conf/type/__chroot_umount/man.rst
Normal file
47
cdist/conf/type/__chroot_umount/man.rst
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
cdist-type__chroot_umount(7)
|
||||||
|
============================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__chroot_umount - unmount a chroot mounted by __chroot_mount
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
Undo what __chroot_mount did.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
__chroot_umount /path/to/chroot
|
||||||
|
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
:strong:`cdist-type__chroot_mount`\ (7)
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2012 Steven Armstrong. 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.
|
1
cdist/conf/type/__consul/files/versions/0.7.0/cksum
Normal file
1
cdist/conf/type/__consul/files/versions/0.7.0/cksum
Normal file
|
@ -0,0 +1 @@
|
||||||
|
695240564 24003648 consul
|
1
cdist/conf/type/__consul/files/versions/0.7.0/source
Normal file
1
cdist/conf/type/__consul/files/versions/0.7.0/source
Normal file
|
@ -0,0 +1 @@
|
||||||
|
https://releases.hashicorp.com/consul/0.7.0/consul_0.7.0_linux_amd64.zip
|
1
cdist/conf/type/__consul/files/versions/0.7.1/cksum
Normal file
1
cdist/conf/type/__consul/files/versions/0.7.1/cksum
Normal file
|
@ -0,0 +1 @@
|
||||||
|
3128343188 28402769 consul
|
1
cdist/conf/type/__consul/files/versions/0.7.1/source
Normal file
1
cdist/conf/type/__consul/files/versions/0.7.1/source
Normal file
|
@ -0,0 +1 @@
|
||||||
|
https://releases.hashicorp.com/consul/0.7.1/consul_0.7.1_linux_amd64.zip
|
|
@ -107,7 +107,7 @@ rejoin-after-leave
|
||||||
server
|
server
|
||||||
used to control if an agent is in server or client mode
|
used to control if an agent is in server or client mode
|
||||||
|
|
||||||
syslog
|
enable-syslog
|
||||||
enables logging to syslog
|
enables logging to syslog
|
||||||
|
|
||||||
verify-incoming
|
verify-incoming
|
||||||
|
|
|
@ -98,7 +98,7 @@ for param in $(ls "$__object/parameter/"); do
|
||||||
key="$(echo "${param%-*}" | tr '-' '_')"
|
key="$(echo "${param%-*}" | tr '-' '_')"
|
||||||
printf ' ,"%s": "%s"\n' "$key" "$destination"
|
printf ' ,"%s": "%s"\n' "$key" "$destination"
|
||||||
;;
|
;;
|
||||||
disable-remote-exec|disable-update-check|leave-on-terminate|rejoin-after-leave|server|syslog|verify-incoming|verify-outgoing)
|
disable-remote-exec|disable-update-check|leave-on-terminate|rejoin-after-leave|server|enable-syslog|verify-incoming|verify-outgoing)
|
||||||
# handle boolean parameters
|
# handle boolean parameters
|
||||||
key="$(echo "$param" | tr '-' '_')"
|
key="$(echo "$param" | tr '-' '_')"
|
||||||
printf ' ,"%s": true\n' "$key"
|
printf ' ,"%s": true\n' "$key"
|
||||||
|
|
|
@ -3,6 +3,6 @@ disable-update-check
|
||||||
leave-on-terminate
|
leave-on-terminate
|
||||||
rejoin-after-leave
|
rejoin-after-leave
|
||||||
server
|
server
|
||||||
syslog
|
enable-syslog
|
||||||
verify-incoming
|
verify-incoming
|
||||||
verify-outgoing
|
verify-outgoing
|
||||||
|
|
|
@ -11,7 +11,7 @@ DESCRIPTION
|
||||||
Generate and deploy check definitions for a consul agent.
|
Generate and deploy check definitions for a consul agent.
|
||||||
See http://www.consul.io/docs/agent/checks.html for parameter documentation.
|
See http://www.consul.io/docs/agent/checks.html for parameter documentation.
|
||||||
|
|
||||||
Use either script toghether with interval, or use ttl.
|
Use either script together with interval, or use ttl.
|
||||||
|
|
||||||
|
|
||||||
REQUIRED PARAMETERS
|
REQUIRED PARAMETERS
|
||||||
|
|
|
@ -22,4 +22,9 @@
|
||||||
name="$__object_name"
|
name="$__object_name"
|
||||||
user="$(cat "$__object/parameter/user")"
|
user="$(cat "$__object/parameter/user")"
|
||||||
|
|
||||||
crontab -u $user -l 2>/dev/null | grep "# $name\$" || true
|
if [ -f "$__object/parameter/raw_command" ]; then
|
||||||
|
command="$(cat "$__object/parameter/command")"
|
||||||
|
crontab -u $user -l 2>/dev/null | grep "^$command\$" || true
|
||||||
|
else
|
||||||
|
crontab -u $user -l 2>/dev/null | grep "# $name\$" || true
|
||||||
|
fi
|
||||||
|
|
17
cdist/conf/type/__cron/gencode-remote
Executable file → Normal file
17
cdist/conf/type/__cron/gencode-remote
Executable file → Normal file
|
@ -3,6 +3,7 @@
|
||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
# 2013 Nico Schottelius (nico-cdist at schottelius.org)
|
# 2013 Nico Schottelius (nico-cdist at schottelius.org)
|
||||||
# 2013 Thomas Oettli (otho at sfs.biz)
|
# 2013 Thomas Oettli (otho at sfs.biz)
|
||||||
|
# 2017 Daniel Heule (hda at sfs.biz)
|
||||||
#
|
#
|
||||||
# This file is part of cdist.
|
# This file is part of cdist.
|
||||||
#
|
#
|
||||||
|
@ -26,7 +27,7 @@ command="$(cat "$__object/parameter/command")"
|
||||||
|
|
||||||
if [ -f "$__object/parameter/raw" ]; then
|
if [ -f "$__object/parameter/raw" ]; then
|
||||||
raw="$(cat "$__object/parameter/raw")"
|
raw="$(cat "$__object/parameter/raw")"
|
||||||
entry="$raw $command"
|
entry="$raw $command # $name"
|
||||||
elif [ -f "$__object/parameter/raw_command" ]; then
|
elif [ -f "$__object/parameter/raw_command" ]; then
|
||||||
entry="$command"
|
entry="$command"
|
||||||
else
|
else
|
||||||
|
@ -35,10 +36,9 @@ else
|
||||||
day_of_month="$(cat "$__object/parameter/day_of_month" 2>/dev/null || echo "*")"
|
day_of_month="$(cat "$__object/parameter/day_of_month" 2>/dev/null || echo "*")"
|
||||||
month="$(cat "$__object/parameter/month" 2>/dev/null || echo "*")"
|
month="$(cat "$__object/parameter/month" 2>/dev/null || echo "*")"
|
||||||
day_of_week="$(cat "$__object/parameter/day_of_week" 2>/dev/null || echo "*")"
|
day_of_week="$(cat "$__object/parameter/day_of_week" 2>/dev/null || echo "*")"
|
||||||
entry="$minute $hour $day_of_month $month $day_of_week $command"
|
entry="$minute $hour $day_of_month $month $day_of_week $command # $name"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
entry="$entry # $name"
|
|
||||||
mkdir "$__object/files"
|
mkdir "$__object/files"
|
||||||
echo "$entry" > "$__object/files/entry"
|
echo "$entry" > "$__object/files/entry"
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ state_should="$(cat "$__object/parameter/state" 2>/dev/null || echo "present")"
|
||||||
# These are the old markers
|
# These are the old markers
|
||||||
prefix="#cdist:__cron/$__object_id"
|
prefix="#cdist:__cron/$__object_id"
|
||||||
suffix="#/cdist:__cron/$__object_id"
|
suffix="#/cdist:__cron/$__object_id"
|
||||||
filter="^# DO NOT EDIT THIS FILE|^# \(.* installed on |^# \(Cron version V"
|
filter="^# DO NOT EDIT THIS FILE|^# \(.* installed on |^# \(Cron version V|^# \(Cronie version .\..\)$"
|
||||||
cat << DONE
|
cat << DONE
|
||||||
crontab -u $user -l 2>/dev/null | grep -v -E "$filter" | awk -v prefix="$prefix" -v suffix="$suffix" '
|
crontab -u $user -l 2>/dev/null | grep -v -E "$filter" | awk -v prefix="$prefix" -v suffix="$suffix" '
|
||||||
{
|
{
|
||||||
|
@ -85,7 +85,12 @@ case "$state_should" in
|
||||||
echo ") | crontab -u $user -"
|
echo ") | crontab -u $user -"
|
||||||
;;
|
;;
|
||||||
absent)
|
absent)
|
||||||
echo "( crontab -u $user -l 2>/dev/null | grep -v -E \"$filter\" 2>/dev/null || true ) | \\"
|
if [ -f "$__object/parameter/raw_command" ]; then
|
||||||
echo "grep -v \"# $name\\$\" | crontab -u $user -"
|
echo "( crontab -u $user -l 2>/dev/null | grep -v -E \"$filter\" 2>/dev/null || true ) | \\"
|
||||||
|
echo "grep -v \"^$entry\\$\" | crontab -u $user -"
|
||||||
|
else
|
||||||
|
echo "( crontab -u $user -l 2>/dev/null | grep -v -E \"$filter\" 2>/dev/null || true ) | \\"
|
||||||
|
echo "grep -v \"# $name\\$\" | crontab -u $user -"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
56
cdist/conf/type/__docker/man.rst
Normal file
56
cdist/conf/type/__docker/man.rst
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
cdist-type__docker(7)
|
||||||
|
=====================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__docker - install docker-engine
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
Installs latest docker-engine package from dockerproject.org.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None.
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None.
|
||||||
|
|
||||||
|
|
||||||
|
BOOLEAN PARAMETERS
|
||||||
|
------------------
|
||||||
|
experimental
|
||||||
|
Install the experimental docker-engine package instead of the latest stable release.
|
||||||
|
|
||||||
|
state
|
||||||
|
'present' or 'absent', defaults to 'present'
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
# Install docker
|
||||||
|
__docker
|
||||||
|
|
||||||
|
# Install experimental
|
||||||
|
__docker --experimental
|
||||||
|
|
||||||
|
# Remove docker
|
||||||
|
__docker --state absent
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2016 Steven Armstrong. Free use of this software is
|
||||||
|
granted under the terms of the GNU General Public License version 3 (GPLv3).
|
83
cdist/conf/type/__docker/manifest
Executable file
83
cdist/conf/type/__docker/manifest
Executable file
|
@ -0,0 +1,83 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2016 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
os=$(cat "$__global/explorer/os")
|
||||||
|
state=$(cat "$__object/parameter/state")
|
||||||
|
|
||||||
|
case "$os" in
|
||||||
|
centos)
|
||||||
|
component="main"
|
||||||
|
if [ -f "$__object/parameter/experimental" ]; then
|
||||||
|
component="experimental"
|
||||||
|
fi
|
||||||
|
__yum_repo docker \
|
||||||
|
--name 'Docker Repository' \
|
||||||
|
--baseurl "https://yum.dockerproject.org/repo/$component/centos/\$releasever/" \
|
||||||
|
--enabled \
|
||||||
|
--gpgcheck 1 \
|
||||||
|
--gpgkey 'https://yum.dockerproject.org/gpg' \
|
||||||
|
--state ${state}
|
||||||
|
require="__yum_repo/docker" __package docker-engine --state ${state}
|
||||||
|
;;
|
||||||
|
ubuntu)
|
||||||
|
component="main"
|
||||||
|
if [ -f "$__object/parameter/experimental" ]; then
|
||||||
|
component="experimental"
|
||||||
|
fi
|
||||||
|
__package apparmor --state ${state}
|
||||||
|
__package ca-certificates --state ${state}
|
||||||
|
__package apt-transport-https --state ${state}
|
||||||
|
__apt_key docker --keyid 58118E89F3A912897C070ADBF76221572C52609D --state ${state}
|
||||||
|
export CDIST_ORDER_DEPENDENCY=on
|
||||||
|
__apt_source docker \
|
||||||
|
--uri https://apt.dockerproject.org/repo \
|
||||||
|
--distribution "ubuntu-$(cat "$__global/explorer/lsb_codename")" \
|
||||||
|
--state ${state} \
|
||||||
|
--component "$component"
|
||||||
|
__package docker-engine --state ${state}
|
||||||
|
unset CDIST_ORDER_DEPENDENCY
|
||||||
|
;;
|
||||||
|
debian)
|
||||||
|
component="main"
|
||||||
|
if [ -f "$__object/parameter/experimental" ]; then
|
||||||
|
component="experimental"
|
||||||
|
fi
|
||||||
|
|
||||||
|
__package apt-transport-https --state ${state}
|
||||||
|
__package ca-certificates --state ${state}
|
||||||
|
__package gnupg2 --state ${state}
|
||||||
|
__apt_key docker --keyid 58118E89F3A912897C070ADBF76221572C52609D --state ${state}
|
||||||
|
export CDIST_ORDER_DEPENDENCY=on
|
||||||
|
__apt_source docker \
|
||||||
|
--uri https://apt.dockerproject.org/repo \
|
||||||
|
--distribution "debian-$(cat "$__global/explorer/lsb_codename")" \
|
||||||
|
--state ${state} \
|
||||||
|
--component "$component"
|
||||||
|
__package docker-engine --state ${state}
|
||||||
|
unset CDIST_ORDER_DEPENDENCY
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2
|
||||||
|
echo "Please contribute an implementation for it if you can." >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
1
cdist/conf/type/__docker/parameter/boolean
Normal file
1
cdist/conf/type/__docker/parameter/boolean
Normal file
|
@ -0,0 +1 @@
|
||||||
|
experimental
|
1
cdist/conf/type/__docker/parameter/default/state
Normal file
1
cdist/conf/type/__docker/parameter/default/state
Normal file
|
@ -0,0 +1 @@
|
||||||
|
present
|
1
cdist/conf/type/__docker/parameter/optional
Normal file
1
cdist/conf/type/__docker/parameter/optional
Normal file
|
@ -0,0 +1 @@
|
||||||
|
state
|
0
cdist/conf/type/__docker/singleton
Normal file
0
cdist/conf/type/__docker/singleton
Normal file
31
cdist/conf/type/__docker_compose/gencode-remote
Normal file
31
cdist/conf/type/__docker_compose/gencode-remote
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2016 Dominique Roux (dominique.roux at ungleich.ch)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
version="$(cat "$__object/parameter/version")"
|
||||||
|
state="$(cat "$__object/parameter/state")"
|
||||||
|
|
||||||
|
if [ ${state} = "present" ]; then
|
||||||
|
# Download docker-compose file
|
||||||
|
echo 'curl -L "https://github.com/docker/compose/releases/download/'${version}'/docker-compose-$(uname -s)-$(uname -m)" -o /tmp/docker-compose'
|
||||||
|
echo 'mv /tmp/docker-compose /usr/local/bin/docker-compose'
|
||||||
|
# Change permissions
|
||||||
|
echo 'chmod +x /usr/local/bin/docker-compose'
|
||||||
|
fi
|
58
cdist/conf/type/__docker_compose/man.rst
Normal file
58
cdist/conf/type/__docker_compose/man.rst
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
cdist-type__docker_compose(7)
|
||||||
|
=============================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__docker_compose - install docker-compose
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
Installs docker-compose package.
|
||||||
|
State 'absent' will not remove docker binary itself,
|
||||||
|
only docker-compose binary will be removed
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None.
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
version
|
||||||
|
Define docker_compose version, defaults to "1.9.0"
|
||||||
|
|
||||||
|
state
|
||||||
|
'present' or 'absent', defaults to 'present'
|
||||||
|
|
||||||
|
|
||||||
|
BOOLEAN PARAMETERS
|
||||||
|
------------------
|
||||||
|
None.
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
# Install docker-compose
|
||||||
|
__docker_compose
|
||||||
|
|
||||||
|
# Install version 1.9.0-rc4
|
||||||
|
__docker_compose --version 1.9.0-rc4
|
||||||
|
|
||||||
|
# Remove docker-compose
|
||||||
|
__docker_compose --state absent
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Dominique Roux <dominique.roux--@--ungleich.ch>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2016 Dominique Roux. Free use of this software is
|
||||||
|
granted under the terms of the GNU General Public License version 3 or later (GPLv3+).
|
33
cdist/conf/type/__docker_compose/manifest
Normal file
33
cdist/conf/type/__docker_compose/manifest
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2016 Dominique Roux (dominique.roux at ungleich.ch)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
state="$(cat "$__object/parameter/state")"
|
||||||
|
|
||||||
|
# Needed packages
|
||||||
|
if [ ${state} = "present" ]; then
|
||||||
|
__docker
|
||||||
|
__package curl
|
||||||
|
elif [ ${state} = "absent" ]; then
|
||||||
|
__file /usr/local/bin/docker-compose --state absent
|
||||||
|
else
|
||||||
|
echo "Unknown state: ${state}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
1
cdist/conf/type/__docker_compose/parameter/default/state
Normal file
1
cdist/conf/type/__docker_compose/parameter/default/state
Normal file
|
@ -0,0 +1 @@
|
||||||
|
present
|
|
@ -0,0 +1 @@
|
||||||
|
1.9.0
|
2
cdist/conf/type/__docker_compose/parameter/optional
Normal file
2
cdist/conf/type/__docker_compose/parameter/optional
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
state
|
||||||
|
version
|
0
cdist/conf/type/__docker_compose/singleton
Normal file
0
cdist/conf/type/__docker_compose/singleton
Normal file
|
@ -66,8 +66,15 @@ destination_upload="\$($__remote_exec $__target_host "mktemp $tempfile_template"
|
||||||
DONE
|
DONE
|
||||||
if [ "$upload_file" ]; then
|
if [ "$upload_file" ]; then
|
||||||
echo upload >> "$__messages_out"
|
echo upload >> "$__messages_out"
|
||||||
|
# IPv6 fix
|
||||||
|
if $(echo "${__target_host}" | grep -q -E '^[0-9a-fA-F:]+$')
|
||||||
|
then
|
||||||
|
my_target_host="[${__target_host}]"
|
||||||
|
else
|
||||||
|
my_target_host="${__target_host}"
|
||||||
|
fi
|
||||||
cat << DONE
|
cat << DONE
|
||||||
$__remote_copy "$source" "${__target_host}:\$destination_upload"
|
$__remote_copy "$source" "${my_target_host}:\$destination_upload"
|
||||||
DONE
|
DONE
|
||||||
fi
|
fi
|
||||||
# move uploaded file into place
|
# move uploaded file into place
|
||||||
|
|
|
@ -37,7 +37,7 @@ device
|
||||||
| or /dev/mapper/xxxx
|
| or /dev/mapper/xxxx
|
||||||
|
|
||||||
label
|
label
|
||||||
Label which sould apply on the filesystem.
|
Label which should be applied on the filesystem.
|
||||||
|
|
||||||
mkfsoptions
|
mkfsoptions
|
||||||
Additional options which are inserted to the mkfs.xxx call.
|
Additional options which are inserted to the mkfs.xxx call.
|
||||||
|
@ -46,15 +46,15 @@ mkfsoptions
|
||||||
BOOLEAN PARAMETERS
|
BOOLEAN PARAMETERS
|
||||||
------------------
|
------------------
|
||||||
force
|
force
|
||||||
Normaly, this type does nothing if a filesystem is found
|
Normally, this type does nothing if a filesystem is found
|
||||||
on the target device. If you specify force, it's formated
|
on the target device. If you specify force, it's formatted
|
||||||
if the filesystem type or label differs from parameters.
|
if the filesystem type or label differs from parameters.
|
||||||
Warning: This option can easily lead into data loss!
|
Warning: This option can easily lead into data loss!
|
||||||
|
|
||||||
MESSAGES
|
MESSAGES
|
||||||
--------
|
--------
|
||||||
filesystem <fstype> on <device> \: <discoverd device> created
|
filesystem <fstype> on <device> \: <discoverd device> created
|
||||||
Filesytem was created on <discoverd device>
|
Filesystem was created on <discoverd device>
|
||||||
|
|
||||||
|
|
||||||
EXAMPLES
|
EXAMPLES
|
||||||
|
@ -62,7 +62,7 @@ EXAMPLES
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
# Ensures that device /dev/sdb is formated with xfs
|
# Ensures that device /dev/sdb is formatted with xfs
|
||||||
__filesystem /dev/sdb --fstype xfs --label Testdisk1
|
__filesystem /dev/sdb --fstype xfs --label Testdisk1
|
||||||
# The same thing with btrfs and disk spezified by pci path to disk 1:0 on vmware
|
# The same thing with btrfs and disk spezified by pci path to disk 1:0 on vmware
|
||||||
__filesystem dev_sdb --fstype btrfs --device /dev/disk/by-path/pci-0000:0b:00.0-scsi-0:0:0:0 --label Testdisk2
|
__filesystem dev_sdb --fstype btrfs --device /dev/disk/by-path/pci-0000:0b:00.0-scsi-0:0:0:0 --label Testdisk2
|
||||||
|
|
84
cdist/conf/type/__firewalld_start/gencode-remote
Normal file
84
cdist/conf/type/__firewalld_start/gencode-remote
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2016 Darko Poljak(darko.poljak at ungleich.ch)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
startstate="$(cat "$__object/parameter/startstate")"
|
||||||
|
init=$(cat "$__global/explorer/init")
|
||||||
|
|
||||||
|
os=$(cat "$__global/explorer/os")
|
||||||
|
os_version=$(cat "$__global/explorer/os_version")
|
||||||
|
name="firewalld"
|
||||||
|
|
||||||
|
case "${startstate}" in
|
||||||
|
present)
|
||||||
|
cmd="start"
|
||||||
|
;;
|
||||||
|
absent)
|
||||||
|
cmd="stop"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown startstate: ${startstate}" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "$init" = 'systemd' ]; then
|
||||||
|
# this handles ALL linux distros with systemd
|
||||||
|
# e.g. archlinux, gentoo in some cases, new RHEL and SLES versions
|
||||||
|
echo "systemctl \"$cmd\" \"$name\""
|
||||||
|
else
|
||||||
|
case "$os" in
|
||||||
|
debian)
|
||||||
|
case "$os_version" in
|
||||||
|
[1-7]*)
|
||||||
|
echo "service \"$name\" \"$cmd\""
|
||||||
|
;;
|
||||||
|
8*)
|
||||||
|
echo "systemctl \"$cmd\" \"$name\""
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported version $os_version of $os" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
gentoo)
|
||||||
|
echo service \"$name\" \"$cmd\"
|
||||||
|
;;
|
||||||
|
|
||||||
|
amazon|scientific|centos|fedora|owl|redhat|suse)
|
||||||
|
echo service \"$name\" \"$cmd\"
|
||||||
|
;;
|
||||||
|
|
||||||
|
openwrt)
|
||||||
|
echo "/etc/init.d/\"$name\" \"$cmd\""
|
||||||
|
;;
|
||||||
|
|
||||||
|
ubuntu)
|
||||||
|
echo "service \"$name\" \"$cmd\""
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unsupported os: $os" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
53
cdist/conf/type/__firewalld_start/man.rst
Normal file
53
cdist/conf/type/__firewalld_start/man.rst
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
cdist-type__firewalld_start(7)
|
||||||
|
==============================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__firewalld_start - start and enable firewalld
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
This cdist type allows you to start and enable firewalld.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
startstate
|
||||||
|
'present' or 'absent', start/stop firewalld. Default is 'present'.
|
||||||
|
bootstate
|
||||||
|
'present' or 'absent', enable/disable firewalld on boot. Default is 'present'.
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
# start and enable firewalld
|
||||||
|
__firewalld_start
|
||||||
|
|
||||||
|
# only enable firewalld to start on boot
|
||||||
|
__firewalld_start --startstate present --bootstate absent
|
||||||
|
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
:strong:`firewalld`\ (8)
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Darko Poljak <darko.poljak--@--ungleich.ch>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2016 Darko Poljak. 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.
|
23
cdist/conf/type/__firewalld_start/manifest
Normal file
23
cdist/conf/type/__firewalld_start/manifest
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2016 Darko Poljak (darko.poljak at ungleich.ch)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
bootstate="$(cat "$__object/parameter/bootstate")"
|
||||||
|
|
||||||
|
__package firewalld
|
||||||
|
require="__package/firewalld" __start_on_boot firewalld --state "${bootstate}"
|
|
@ -0,0 +1 @@
|
||||||
|
present
|
|
@ -0,0 +1 @@
|
||||||
|
present
|
2
cdist/conf/type/__firewalld_start/parameter/optional
Normal file
2
cdist/conf/type/__firewalld_start/parameter/optional
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
bootstate
|
||||||
|
startstate
|
0
cdist/conf/type/__firewalld_start/singleton
Normal file
0
cdist/conf/type/__firewalld_start/singleton
Normal file
|
@ -44,7 +44,7 @@ EXAMPLES
|
||||||
__git /home/services/dokuwiki --source git://github.com/splitbrain/dokuwiki.git
|
__git /home/services/dokuwiki --source git://github.com/splitbrain/dokuwiki.git
|
||||||
|
|
||||||
# Checkout cdist, stay on branch 2.1
|
# Checkout cdist, stay on branch 2.1
|
||||||
__git /home/nico/cdist --source git://github.com/telmich/cdist.git --branch 2.1
|
__git /home/nico/cdist --source git://github.com/ungleich/cdist.git --branch 2.1
|
||||||
|
|
||||||
|
|
||||||
AUTHORS
|
AUTHORS
|
||||||
|
|
|
@ -40,7 +40,7 @@ case "$os" in
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
scientific|centos)
|
scientific|centos|openbsd)
|
||||||
if [ "$name_sysconfig" = "$name_should" -a "$name_running" = "$name_should" ]; then
|
if [ "$name_sysconfig" = "$name_should" -a "$name_running" = "$name_should" ]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
@ -64,7 +64,7 @@ else
|
||||||
echo "hostname '$name_should'"
|
echo "hostname '$name_should'"
|
||||||
echo "printf '%s\n' '$name_should' > /etc/hostname"
|
echo "printf '%s\n' '$name_should' > /etc/hostname"
|
||||||
;;
|
;;
|
||||||
centos)
|
centos|openbsd)
|
||||||
echo "hostname '$name_should'"
|
echo "hostname '$name_should'"
|
||||||
;;
|
;;
|
||||||
suse)
|
suse)
|
||||||
|
|
|
@ -23,7 +23,14 @@ os=$(cat "$__global/explorer/os")
|
||||||
if [ -f "$__object/parameter/name" ]; then
|
if [ -f "$__object/parameter/name" ]; then
|
||||||
name_should="$(cat "$__object/parameter/name")"
|
name_should="$(cat "$__object/parameter/name")"
|
||||||
else
|
else
|
||||||
name_should="$(echo "${__target_host%%.*}")"
|
case "$os" in
|
||||||
|
openbsd)
|
||||||
|
name_should="$(echo "${__target_host}")"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
name_should="$(echo "${__target_host%%.*}")"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,6 +52,9 @@ case "$os" in
|
||||||
--key HOSTNAME \
|
--key HOSTNAME \
|
||||||
--value "$name_should" --exact_delimiter
|
--value "$name_should" --exact_delimiter
|
||||||
;;
|
;;
|
||||||
|
openbsd)
|
||||||
|
echo "$name_should" | __file /etc/myname --source -
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
not_supported
|
not_supported
|
||||||
;;
|
;;
|
||||||
|
|
73
cdist/conf/type/__install_bootloader_grub/gencode-remote
Executable file
73
cdist/conf/type/__install_bootloader_grub/gencode-remote
Executable file
|
@ -0,0 +1,73 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
device="$(cat "$__object/parameter/device")"
|
||||||
|
chroot="$(cat "$__object/parameter/chroot")"
|
||||||
|
|
||||||
|
|
||||||
|
cat << DONE
|
||||||
|
os=\$(
|
||||||
|
if grep -q ^DISTRIB_ID=Ubuntu ${chroot}/etc/lsb-release 2>/dev/null; then
|
||||||
|
echo ubuntu
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f ${chroot}/etc/arch-release ]; then
|
||||||
|
echo archlinux
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f ${chroot}/etc/debian_version ]; then
|
||||||
|
echo debian
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
|
||||||
|
# Ensure /tmp exists
|
||||||
|
[ -d "${chroot}/tmp" ] || mkdir -m 1777 "${chroot}/tmp"
|
||||||
|
# Generate script to run in chroot
|
||||||
|
script=\$(mktemp "${chroot}/tmp/__install_bootloader_grub.XXXXXXXXXX")
|
||||||
|
# Link file descriptor #6 with stdout
|
||||||
|
exec 6>&1
|
||||||
|
# Link stdout with \$script
|
||||||
|
exec > \$script
|
||||||
|
|
||||||
|
echo "#!/bin/sh -l"
|
||||||
|
echo "grub-install $device"
|
||||||
|
case \$os in
|
||||||
|
archlinux)
|
||||||
|
# bugfix/workarround: rebuild initramfs
|
||||||
|
# FIXME: doesn't belong here
|
||||||
|
echo "mkinitcpio -p linux"
|
||||||
|
echo "grub-mkconfig -o /boot/grub/grub.cfg"
|
||||||
|
;;
|
||||||
|
ubuntu|debian) echo "update-grub" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Restore stdout and close file descriptor #6.
|
||||||
|
exec 1>&6 6>&-
|
||||||
|
|
||||||
|
# Make script executable
|
||||||
|
chmod +x "\$script"
|
||||||
|
|
||||||
|
# Run script in chroot
|
||||||
|
relative_script="\${script#$chroot}"
|
||||||
|
chroot "$chroot" "\$relative_script"
|
||||||
|
DONE
|
0
cdist/conf/type/__install_bootloader_grub/install
Normal file
0
cdist/conf/type/__install_bootloader_grub/install
Normal file
48
cdist/conf/type/__install_bootloader_grub/man.rst
Normal file
48
cdist/conf/type/__install_bootloader_grub/man.rst
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
cdist-type__install_bootloader_grub(7)
|
||||||
|
======================================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__install_bootloader_grub - install grub2 bootloader on given disk
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
This cdist type allows you to install grub2 bootloader on given disk.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
device
|
||||||
|
The device to install grub to. Defaults to object_id
|
||||||
|
|
||||||
|
chroot
|
||||||
|
where to chroot before running grub-install. Defaults to /target.
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
__install_bootloader_grub /dev/sda
|
||||||
|
|
||||||
|
__install_bootloader_grub /dev/sda --chroot /mnt/foobar
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2011 Steven Armstrong. 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.
|
25
cdist/conf/type/__install_bootloader_grub/manifest
Executable file
25
cdist/conf/type/__install_bootloader_grub/manifest
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# set defaults
|
||||||
|
device="$(cat "$__object/parameter/device" 2>/dev/null \
|
||||||
|
|| echo "/$__object_id" | tee "$__object/parameter/device")"
|
||||||
|
chroot="$(cat "$__object/parameter/chroot" 2>/dev/null \
|
||||||
|
|| echo "/target" | tee "$__object/parameter/chroot")"
|
|
@ -0,0 +1,2 @@
|
||||||
|
device
|
||||||
|
chroot
|
1
cdist/conf/type/__install_chroot_mount/gencode-remote
Symbolic link
1
cdist/conf/type/__install_chroot_mount/gencode-remote
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../__chroot_mount/gencode-remote
|
0
cdist/conf/type/__install_chroot_mount/install
Normal file
0
cdist/conf/type/__install_chroot_mount/install
Normal file
42
cdist/conf/type/__install_chroot_mount/man.rst
Normal file
42
cdist/conf/type/__install_chroot_mount/man.rst
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
cdist-type__install_chroot_mount(7)
|
||||||
|
===================================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__install_chroot_mount - mount a chroot with install command
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
Mount and prepare a chroot for running commands within it.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
__install_chroot_mount /path/to/chroot
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2012 Steven Armstrong. 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.
|
1
cdist/conf/type/__install_chroot_umount/gencode-remote
Symbolic link
1
cdist/conf/type/__install_chroot_umount/gencode-remote
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../__chroot_umount/gencode-remote
|
0
cdist/conf/type/__install_chroot_umount/install
Normal file
0
cdist/conf/type/__install_chroot_umount/install
Normal file
47
cdist/conf/type/__install_chroot_umount/man.rst
Normal file
47
cdist/conf/type/__install_chroot_umount/man.rst
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
cdist-type__install_chroot_umount(7)
|
||||||
|
====================================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__install_chroot_umount - unmount a chroot mounted by __install_chroot_mount
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
Undo what __install_chroot_mount did.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
__install_chroot_umount /path/to/chroot
|
||||||
|
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
:strong:`cdist-type__install_chroot_mount`\ (7)
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2012 Steven Armstrong. 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.
|
48
cdist/conf/type/__install_config/files/remote/copy
Executable file
48
cdist/conf/type/__install_config/files/remote/copy
Executable file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# __remote_copy script to run cdist against a chroot on a remote host via ssh.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# __remote_copy="/path/to/this/script /path/to/your/chroot" cdist config target-id
|
||||||
|
#
|
||||||
|
|
||||||
|
log() {
|
||||||
|
echo "$@" | logger -t "__install_config copy"
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
chroot="$1"; shift
|
||||||
|
target_host="$__target_host"
|
||||||
|
|
||||||
|
scp="scp -o User=root -q"
|
||||||
|
|
||||||
|
# postfix target_host with chroot location
|
||||||
|
code="$(echo "$@" | sed "s|$target_host:|$target_host:$chroot|g")"
|
||||||
|
|
||||||
|
log "target_host: $target_host"
|
||||||
|
log "chroot: $chroot"
|
||||||
|
log "@: $@"
|
||||||
|
log "code: $code"
|
||||||
|
|
||||||
|
# copy files into chroot
|
||||||
|
$scp $code
|
||||||
|
|
||||||
|
log "-----"
|
48
cdist/conf/type/__install_config/files/remote/exec
Executable file
48
cdist/conf/type/__install_config/files/remote/exec
Executable file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011-2013 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# __remote_exec script to run cdist against a chroot on a remote host via ssh.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# __remote_exec="/path/to/this/script /path/to/your/chroot" cdist config target-id
|
||||||
|
#
|
||||||
|
|
||||||
|
log() {
|
||||||
|
echo "$@" | logger -t "__install_config exec"
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
chroot="$1"; shift
|
||||||
|
target_host="$__target_host"
|
||||||
|
# In exec mode the first argument is the __target_host which we already got from env. Get rid of it.
|
||||||
|
shift
|
||||||
|
|
||||||
|
ssh="ssh -o User=root -q $target_host"
|
||||||
|
code="$ssh chroot $chroot sh -c '$@'"
|
||||||
|
|
||||||
|
log "target_host: $target_host"
|
||||||
|
log "chroot: $chroot"
|
||||||
|
log "@: $@"
|
||||||
|
log "code: $code"
|
||||||
|
|
||||||
|
# Run the code
|
||||||
|
$code
|
||||||
|
|
||||||
|
log "-----"
|
50
cdist/conf/type/__install_config/gencode-local
Executable file
50
cdist/conf/type/__install_config/gencode-local
Executable file
|
@ -0,0 +1,50 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
chroot="$(cat "$__object/parameter/chroot")"
|
||||||
|
remote_exec="$__type/files/remote/exec"
|
||||||
|
remote_copy="$__type/files/remote/copy"
|
||||||
|
|
||||||
|
cdist_args="-v"
|
||||||
|
[ "$__debug" = "yes" ] && cdist_args="$cdist_args -d"
|
||||||
|
|
||||||
|
cat << DONE
|
||||||
|
#echo "__apt_noautostart --state present" \
|
||||||
|
# | cdist $cdist_args \
|
||||||
|
# config \
|
||||||
|
# --initial-manifest - \
|
||||||
|
# --remote-exec="$remote_exec $chroot" \
|
||||||
|
# --remote-copy="$remote_copy $chroot" \
|
||||||
|
# $__target_host
|
||||||
|
|
||||||
|
cdist $cdist_args \
|
||||||
|
config \
|
||||||
|
--remote-exec="$remote_exec $chroot" \
|
||||||
|
--remote-copy="$remote_copy $chroot" \
|
||||||
|
$__target_host
|
||||||
|
|
||||||
|
#echo "__apt_noautostart --state absent" \
|
||||||
|
# | cdist $cdist_args \
|
||||||
|
# config \
|
||||||
|
# --initial-manifest - \
|
||||||
|
# --remote-exec="$remote_exec $chroot" \
|
||||||
|
# --remote-copy="$remote_copy $chroot" \
|
||||||
|
# $__target_host
|
||||||
|
DONE
|
0
cdist/conf/type/__install_config/install
Normal file
0
cdist/conf/type/__install_config/install
Normal file
47
cdist/conf/type/__install_config/man.rst
Normal file
47
cdist/conf/type/__install_config/man.rst
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
cdist-type__install_config(7)
|
||||||
|
=============================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__install_config - run cdist config as part of the installation
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
This cdist type allows you to run cdist config as part of the installation.
|
||||||
|
It does this by using a custom __remote_{copy,exec} prefix which runs
|
||||||
|
cdist config against the /target chroot on the remote host.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
chroot
|
||||||
|
where to chroot before running grub-install. Defaults to /target.
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
__install_config
|
||||||
|
|
||||||
|
__install_config --chroot /mnt/somewhere
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2011 Steven Armstrong. 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.
|
23
cdist/conf/type/__install_config/manifest
Executable file
23
cdist/conf/type/__install_config/manifest
Executable file
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# set defaults
|
||||||
|
chroot="$(cat "$__object/parameter/chroot" 2>/dev/null \
|
||||||
|
|| echo "/target" | tee "$__object/parameter/chroot")"
|
1
cdist/conf/type/__install_config/parameter/optional
Normal file
1
cdist/conf/type/__install_config/parameter/optional
Normal file
|
@ -0,0 +1 @@
|
||||||
|
chroot
|
0
cdist/conf/type/__install_config/singleton
Normal file
0
cdist/conf/type/__install_config/singleton
Normal file
1
cdist/conf/type/__install_file/explorer
Symbolic link
1
cdist/conf/type/__install_file/explorer
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../__file/explorer
|
1
cdist/conf/type/__install_file/gencode-local
Symbolic link
1
cdist/conf/type/__install_file/gencode-local
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../__file/gencode-local
|
1
cdist/conf/type/__install_file/gencode-remote
Symbolic link
1
cdist/conf/type/__install_file/gencode-remote
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../__file/gencode-remote
|
0
cdist/conf/type/__install_file/install
Normal file
0
cdist/conf/type/__install_file/install
Normal file
112
cdist/conf/type/__install_file/man.rst
Normal file
112
cdist/conf/type/__install_file/man.rst
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
cdist-type__install_file(7)
|
||||||
|
===========================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__install_file - Manage files with install command.
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
This cdist type allows you to create files, remove files and set file
|
||||||
|
attributes on the target.
|
||||||
|
|
||||||
|
If the file already exists on the target, then if it is a:
|
||||||
|
|
||||||
|
regular file, and state is:
|
||||||
|
present
|
||||||
|
replace it with the source file if they are not equal
|
||||||
|
exists
|
||||||
|
do nothing
|
||||||
|
symlink
|
||||||
|
replace it with the source file
|
||||||
|
directory
|
||||||
|
replace it with the source file
|
||||||
|
|
||||||
|
In any case, make sure that the file attributes are as specified.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None.
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
state
|
||||||
|
'present', 'absent' or 'exists', defaults to 'present' where:
|
||||||
|
|
||||||
|
present
|
||||||
|
the file is exactly the one from source
|
||||||
|
absent
|
||||||
|
the file does not exist
|
||||||
|
exists
|
||||||
|
the file from source but only if it doesn't already exist
|
||||||
|
|
||||||
|
group
|
||||||
|
Group to chgrp to.
|
||||||
|
|
||||||
|
mode
|
||||||
|
Unix permissions, suitable for chmod.
|
||||||
|
|
||||||
|
owner
|
||||||
|
User to chown to.
|
||||||
|
|
||||||
|
source
|
||||||
|
If supplied, copy this file from the host running cdist to the target.
|
||||||
|
If not supplied, an empty file or directory will be created.
|
||||||
|
If source is '-' (dash), take what was written to stdin as the file content.
|
||||||
|
|
||||||
|
MESSAGES
|
||||||
|
--------
|
||||||
|
chgrp <group>
|
||||||
|
Changed group membership
|
||||||
|
chown <owner>
|
||||||
|
Changed owner
|
||||||
|
chmod <mode>
|
||||||
|
Changed mode
|
||||||
|
create
|
||||||
|
Empty file was created (no --source specified)
|
||||||
|
remove
|
||||||
|
File exists, but state is absent, file will be removed by generated code.
|
||||||
|
upload
|
||||||
|
File was uploaded
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
# Create /etc/cdist-configured as an empty file
|
||||||
|
__install_file /etc/cdist-configured
|
||||||
|
# The same thing
|
||||||
|
__install_file /etc/cdist-configured --state present
|
||||||
|
# Use __file from another type
|
||||||
|
__install_file /etc/issue --source "$__type/files/archlinux" --state present
|
||||||
|
# Delete existing file
|
||||||
|
__install_file /etc/cdist-configured --state absent
|
||||||
|
# Supply some more settings
|
||||||
|
__install_file /etc/shadow --source "$__type/files/shadow" \
|
||||||
|
--owner root --group shadow --mode 0640 \
|
||||||
|
--state present
|
||||||
|
# Provide a default file, but let the user change it
|
||||||
|
__install_file /home/frodo/.bashrc --source "/etc/skel/.bashrc" \
|
||||||
|
--state exists \
|
||||||
|
--owner frodo --mode 0600
|
||||||
|
# Take file content from stdin
|
||||||
|
__install_file /tmp/whatever --owner root --group root --mode 644 --source - << DONE
|
||||||
|
Here goes the content for /tmp/whatever
|
||||||
|
DONE
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Nico Schottelius <nico-cdist--@--schottelius.org>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2011-2013 Nico Schottelius. 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.
|
1
cdist/conf/type/__install_file/parameter
Symbolic link
1
cdist/conf/type/__install_file/parameter
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../__file/parameter
|
0
cdist/conf/type/__install_fstab/install
Normal file
0
cdist/conf/type/__install_fstab/install
Normal file
53
cdist/conf/type/__install_fstab/man.rst
Normal file
53
cdist/conf/type/__install_fstab/man.rst
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
cdist-type__install_fstab(7)
|
||||||
|
============================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__install_fstab - generate /etc/fstab during installation
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
Uses __install_generate_fstab to generate a /etc/fstab file and uploads it
|
||||||
|
to the target machine at ${prefix}/etc/fstab.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
prefix
|
||||||
|
The prefix under which to generate the /etc/fstab file.
|
||||||
|
Defaults to /target.
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
__install_fstab
|
||||||
|
|
||||||
|
__install_fstab --prefix /mnt/target
|
||||||
|
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
:strong:`cdist-type__install_generate_fstab`\ (7),
|
||||||
|
:strong:`cdist-type__install_mount`\ (7)
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2011 Steven Armstrong. 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.
|
29
cdist/conf/type/__install_fstab/manifest
Executable file
29
cdist/conf/type/__install_fstab/manifest
Executable file
|
@ -0,0 +1,29 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
prefix="$(cat "$__object/parameter/prefix" 2>/dev/null || echo "/target")"
|
||||||
|
|
||||||
|
[ -d "$__object/files" ] || mkdir "$__object/files"
|
||||||
|
__install_generate_fstab --uuid --destination "$__object/files/fstab"
|
||||||
|
require="__install_generate_fstab" \
|
||||||
|
__install_file "${prefix}/etc/fstab" --source "$__object/files/fstab" \
|
||||||
|
--mode 644 \
|
||||||
|
--owner root \
|
||||||
|
--group root
|
1
cdist/conf/type/__install_fstab/parameter/optional
Normal file
1
cdist/conf/type/__install_fstab/parameter/optional
Normal file
|
@ -0,0 +1 @@
|
||||||
|
file
|
0
cdist/conf/type/__install_fstab/singleton
Normal file
0
cdist/conf/type/__install_fstab/singleton
Normal file
|
@ -0,0 +1 @@
|
||||||
|
# Generated by cdist __install_generate_fstab
|
59
cdist/conf/type/__install_generate_fstab/gencode-local
Executable file
59
cdist/conf/type/__install_generate_fstab/gencode-local
Executable file
|
@ -0,0 +1,59 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
destination="$(cat "$__object/parameter/destination")"
|
||||||
|
cat "$__type/files/fstab.header" > "$destination"
|
||||||
|
|
||||||
|
mkdir "$__object/files"
|
||||||
|
# get current UUID's from target_host
|
||||||
|
$__remote_exec $__target_host blkid > "$__object/files/blkid"
|
||||||
|
|
||||||
|
for object in $(find "$__global/object/__install_mount" -path "*.cdist"); do
|
||||||
|
device="$(cat "$object/parameter/device")"
|
||||||
|
dir="$(cat "$object/parameter/dir")"
|
||||||
|
prefix="$(cat "$object/parameter/prefix")"
|
||||||
|
type="$(cat "$object/parameter/type")"
|
||||||
|
if [ -f "$object/parameter/options" ]; then
|
||||||
|
options="$(cat "$object/parameter/options")"
|
||||||
|
else
|
||||||
|
options="defaults"
|
||||||
|
fi
|
||||||
|
dump=0
|
||||||
|
case "$type" in
|
||||||
|
swap)
|
||||||
|
pass=0
|
||||||
|
dir="$type"
|
||||||
|
;;
|
||||||
|
tmpfs)
|
||||||
|
pass=0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
pass=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [ -f "$__object/parameter/uuid" ]; then
|
||||||
|
uuid="$(grep -w $device "$__object/files/blkid" | awk '{print $2}')"
|
||||||
|
if [ -n "$uuid" ]; then
|
||||||
|
echo "# $dir was on $device during installation" >> "$destination"
|
||||||
|
device="$uuid"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "$device $dir $type $options $dump $pass" >> "$destination"
|
||||||
|
done
|
0
cdist/conf/type/__install_generate_fstab/install
Normal file
0
cdist/conf/type/__install_generate_fstab/install
Normal file
53
cdist/conf/type/__install_generate_fstab/man.rst
Normal file
53
cdist/conf/type/__install_generate_fstab/man.rst
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
cdist-type__install_generate_fstab(7)
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__install_generate_fstab - generate /etc/fstab during installation
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
Generates a /etc/fstab file from information retrieved from
|
||||||
|
__install_mount definitions.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
destination
|
||||||
|
The path where to store the generated fstab file.
|
||||||
|
Note that this is a path on the server, where cdist is running, not the target host.
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
BOOLEAN PARAMETERS
|
||||||
|
-------------------
|
||||||
|
uuid
|
||||||
|
use UUID instead of device in fstab
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
__install_generate_fstab --destination /path/where/you/want/fstab
|
||||||
|
|
||||||
|
__install_generate_fstab --uuid --destination /path/where/you/want/fstab
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2012 Steven Armstrong. 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.
|
|
@ -0,0 +1 @@
|
||||||
|
uuid
|
|
@ -0,0 +1 @@
|
||||||
|
destination
|
0
cdist/conf/type/__install_generate_fstab/singleton
Normal file
0
cdist/conf/type/__install_generate_fstab/singleton
Normal file
53
cdist/conf/type/__install_mkfs/gencode-remote
Executable file
53
cdist/conf/type/__install_mkfs/gencode-remote
Executable file
|
@ -0,0 +1,53 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011-2013 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
device="$(cat "$__object/parameter/device")"
|
||||||
|
type="$(cat "$__object/parameter/type")"
|
||||||
|
|
||||||
|
case "$type" in
|
||||||
|
swap)
|
||||||
|
echo "mkswap $device"
|
||||||
|
;;
|
||||||
|
xfs)
|
||||||
|
command="mkfs.xfs -f -q"
|
||||||
|
if [ -f "$__object/parameter/options" ]; then
|
||||||
|
options="$(cat "$__object/parameter/options")"
|
||||||
|
command="$command $options"
|
||||||
|
fi
|
||||||
|
command="$command $device"
|
||||||
|
if [ -f "$__object/parameter/blocks" ]; then
|
||||||
|
blocks="$(cat "$__object/parameter/blocks")"
|
||||||
|
command="$command $blocks"
|
||||||
|
fi
|
||||||
|
echo "$command"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
command="mkfs -t $type -q"
|
||||||
|
if [ -f "$__object/parameter/options" ]; then
|
||||||
|
options="$(cat "$__object/parameter/options")"
|
||||||
|
command="$command $options"
|
||||||
|
fi
|
||||||
|
command="$command $device"
|
||||||
|
if [ -f "$__object/parameter/blocks" ]; then
|
||||||
|
blocks="$(cat "$__object/parameter/blocks")"
|
||||||
|
command="$command $blocks"
|
||||||
|
fi
|
||||||
|
echo "$command"
|
||||||
|
esac
|
0
cdist/conf/type/__install_mkfs/install
Normal file
0
cdist/conf/type/__install_mkfs/install
Normal file
62
cdist/conf/type/__install_mkfs/man.rst
Normal file
62
cdist/conf/type/__install_mkfs/man.rst
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
cdist-type__install_mkfs(7)
|
||||||
|
===========================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__install_mkfs - build a linux file system
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
This cdist type is a wrapper for the mkfs command.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
type
|
||||||
|
The filesystem type to use. Same as used with mkfs -t.
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
device
|
||||||
|
defaults to object_id
|
||||||
|
|
||||||
|
options
|
||||||
|
file system-specific options to be passed to the mkfs command
|
||||||
|
|
||||||
|
blocks
|
||||||
|
the number of blocks to be used for the file system
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
# reiserfs /dev/sda5
|
||||||
|
__install_mkfs /dev/sda5 --type reiserfs
|
||||||
|
|
||||||
|
# same thing with explicit device
|
||||||
|
__install_mkfs whatever --device /dev/sda5 --type reiserfs
|
||||||
|
|
||||||
|
# jfs with journal on /dev/sda2
|
||||||
|
__install_mkfs /dev/sda1 --type jfs --options "-j /dev/sda2"
|
||||||
|
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
:strong:`mkfs`\ (8)
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2011 Steven Armstrong. 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.
|
31
cdist/conf/type/__install_mkfs/manifest
Executable file
31
cdist/conf/type/__install_mkfs/manifest
Executable file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# set defaults
|
||||||
|
if [ -f "$__object/parameter/device" ]; then
|
||||||
|
device="(cat "$__object/parameter/device")"
|
||||||
|
else
|
||||||
|
device="/$__object_id"
|
||||||
|
echo "$device" > "$__object/parameter/device"
|
||||||
|
fi
|
||||||
|
|
||||||
|
type="(cat "$__object/parameter/type")"
|
||||||
|
|
||||||
|
options="(cat "$__object/parameter/options")"
|
3
cdist/conf/type/__install_mkfs/parameter/optional
Normal file
3
cdist/conf/type/__install_mkfs/parameter/optional
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
device
|
||||||
|
options
|
||||||
|
blocks
|
1
cdist/conf/type/__install_mkfs/parameter/required
Normal file
1
cdist/conf/type/__install_mkfs/parameter/required
Normal file
|
@ -0,0 +1 @@
|
||||||
|
type
|
59
cdist/conf/type/__install_mount/gencode-remote
Executable file
59
cdist/conf/type/__install_mount/gencode-remote
Executable file
|
@ -0,0 +1,59 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 2011-2013 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
get_type_from_mkfs() {
|
||||||
|
_device="$1"
|
||||||
|
for mkfs_object in $(find "$__global/object/__install_mkfs" -path "*.cdist"); do
|
||||||
|
mkfs_device="$(cat "$mkfs_object/parameter/device")"
|
||||||
|
if [ "$_device" = "$mkfs_device" ]; then
|
||||||
|
cat "$mkfs_object/parameter/type"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
unset _device
|
||||||
|
unset mkfs_device
|
||||||
|
unset mkfs_object
|
||||||
|
}
|
||||||
|
|
||||||
|
device="$(cat "$__object/parameter/device")"
|
||||||
|
dir="$(cat "$__object/parameter/dir")"
|
||||||
|
prefix="$(cat "$__object/parameter/prefix")"
|
||||||
|
if [ -f "$__object/parameter/type" ]; then
|
||||||
|
type="$(cat "$__object/parameter/type")"
|
||||||
|
else
|
||||||
|
type="$(get_type_from_mkfs "$device")"
|
||||||
|
# store for later use by others
|
||||||
|
echo "$type" > "$__object/parameter/type"
|
||||||
|
fi
|
||||||
|
[ -n "$type" ] || die "Can't determine type for $__object"
|
||||||
|
if [ "$type" = "swap" ]; then
|
||||||
|
echo "swapon \"$device\""
|
||||||
|
else
|
||||||
|
if [ -f "$__object/parameter/options" ]; then
|
||||||
|
options="$(cat "$__object/parameter/options")"
|
||||||
|
else
|
||||||
|
options=""
|
||||||
|
fi
|
||||||
|
[ -n "$options" ] && options="-o $options"
|
||||||
|
mount_point="${prefix}${dir}"
|
||||||
|
|
||||||
|
echo "[ -d \"$mount_point\" ] || mkdir -p \"$mount_point\""
|
||||||
|
echo "mount -t \"$type\" $options \"$device\" \"$mount_point\""
|
||||||
|
fi
|
0
cdist/conf/type/__install_mount/install
Normal file
0
cdist/conf/type/__install_mount/install
Normal file
65
cdist/conf/type/__install_mount/man.rst
Normal file
65
cdist/conf/type/__install_mount/man.rst
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
cdist-type__install_mount(7)
|
||||||
|
============================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
cdist-type__install_mount - mount filesystems in the installer
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
Mounts filesystems in the installer. Collects data to generate /etc/fstab.
|
||||||
|
|
||||||
|
|
||||||
|
REQUIRED PARAMETERS
|
||||||
|
-------------------
|
||||||
|
device
|
||||||
|
the device to mount
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL PARAMETERS
|
||||||
|
-------------------
|
||||||
|
dir
|
||||||
|
where to mount device. Defaults to object_id.
|
||||||
|
|
||||||
|
options
|
||||||
|
mount options passed to mount(8) and used in /etc/fstab
|
||||||
|
|
||||||
|
type
|
||||||
|
filesystem type passed to mount(8) and used in /etc/fstab.
|
||||||
|
If type is swap, 'dir' is ignored.
|
||||||
|
Defaults to the filesystem used in __install_mkfs for the same 'device'.
|
||||||
|
|
||||||
|
prefix
|
||||||
|
the prefix to prepend to 'dir' when mounting in the installer.
|
||||||
|
Defaults to /target.
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
__install_mount slash --dir / --device /dev/sda5 --options noatime
|
||||||
|
require="__install_mount/slash" __install_mount /boot --device /dev/sda1
|
||||||
|
__install_mount swap --device /dev/sda2 --type swap
|
||||||
|
require="__install_mount/slash" __install_mount /tmp --device tmpfs --type tmpfs
|
||||||
|
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
:strong:`cdist-type__install_mkfs`\ (7),
|
||||||
|
:strong:`cdist-type__install_mount_apply` (7)
|
||||||
|
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
-------
|
||||||
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
COPYING
|
||||||
|
-------
|
||||||
|
Copyright \(C) 2011 Steven Armstrong. 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.
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue