forked from ungleich-public/cdist
		
	Merge branch 'remote_prefix'
This commit is contained in:
		
				commit
				
					
						7833d4d64c
					
				
			
		
					 14 changed files with 131 additions and 31 deletions
				
			
		
							
								
								
									
										11
									
								
								bin/cdist
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								bin/cdist
									
										
									
									
									
								
							| 
						 | 
					@ -69,6 +69,15 @@ def commandline():
 | 
				
			||||||
         help='Operate on multiple hosts sequentially (default)',
 | 
					         help='Operate on multiple hosts sequentially (default)',
 | 
				
			||||||
         action='store_false', dest='parallel')
 | 
					         action='store_false', dest='parallel')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    parser['configinstall'].add_argument('--remote-copy',
 | 
				
			||||||
 | 
					         help='Command to use for remote copy (should behave like scp)',
 | 
				
			||||||
 | 
					         action='store', dest='remote_copy',
 | 
				
			||||||
 | 
					         default="scp -o User=root -q")
 | 
				
			||||||
 | 
					    parser['configinstall'].add_argument('--remote-exec',
 | 
				
			||||||
 | 
					         help='Command to use for remote execution (should behave like ssh)',
 | 
				
			||||||
 | 
					         action='store', dest='remote_exec',
 | 
				
			||||||
 | 
					         default="ssh -o User=root -q")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Config
 | 
					    # Config
 | 
				
			||||||
    parser['config'] = parser['sub'].add_parser('config',
 | 
					    parser['config'] = parser['sub'].add_parser('config',
 | 
				
			||||||
        parents=[parser['loglevel'], parser['configinstall']])
 | 
					        parents=[parser['loglevel'], parser['configinstall']])
 | 
				
			||||||
| 
						 | 
					@ -160,6 +169,8 @@ def configinstall_onehost(host, args, mode, parallel):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        context = cdist.context.Context(
 | 
					        context = cdist.context.Context(
 | 
				
			||||||
            target_host=host,
 | 
					            target_host=host,
 | 
				
			||||||
 | 
					            remote_copy=args.remote_copy,
 | 
				
			||||||
 | 
					            remote_exec=args.remote_exec,
 | 
				
			||||||
            initial_manifest=args.manifest,
 | 
					            initial_manifest=args.manifest,
 | 
				
			||||||
            base_path=args.cdist_home,
 | 
					            base_path=args.cdist_home,
 | 
				
			||||||
            exec_path=sys.argv[0],
 | 
					            exec_path=sys.argv[0],
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,6 +10,7 @@ Changelog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2.0.11: 2012-05-23
 | 
					2.0.11: 2012-05-23
 | 
				
			||||||
	* Fix insecure file/directory creation: Use umask 077
 | 
						* Fix insecure file/directory creation: Use umask 077
 | 
				
			||||||
 | 
						* Add support for --remote-exec and --remote-copy parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2.0.10: 2012-05-18
 | 
					2.0.10: 2012-05-18
 | 
				
			||||||
	* Cleanup __group: No getent gshadow in old Redhat, use groupmod -g
 | 
						* Cleanup __group: No getent gshadow in old Redhat, use groupmod -g
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,23 +41,29 @@ CONFIG
 | 
				
			||||||
Configure a system
 | 
					Configure a system
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-h, --help::
 | 
					-h, --help::
 | 
				
			||||||
   Show the help screen
 | 
					    Show the help screen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-c CDIST_HOME, --cdist-home CDIST_HOME::
 | 
					-c CDIST_HOME, --cdist-home CDIST_HOME::
 | 
				
			||||||
   Instead of using the parent of the bin directory as cdist home,
 | 
					    Instead of using the parent of the bin directory as cdist home,
 | 
				
			||||||
   use the specified directory
 | 
					    use the specified directory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-d, --debug::
 | 
					-d, --debug::
 | 
				
			||||||
   Enable debug output
 | 
					    Enable debug output
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-i MANIFEST, --initial-manifest MANIFEST::
 | 
					-i MANIFEST, --initial-manifest MANIFEST::
 | 
				
			||||||
   Path to a cdist manifest or - to read from stdin
 | 
					    Path to a cdist manifest or - to read from stdin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-p, --parallel::
 | 
					-p, --parallel::
 | 
				
			||||||
   Operate on multiple hosts in parallel
 | 
					    Operate on multiple hosts in parallel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-s, --sequential::
 | 
					-s, --sequential::
 | 
				
			||||||
   Operate on multiple hosts sequentially
 | 
					    Operate on multiple hosts sequentially
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--remote-copy REMOTE_COPY:
 | 
				
			||||||
 | 
					    Command to use for remote copy (should behave like scp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--remote-exec REMOTE_EXEC:
 | 
				
			||||||
 | 
					    Command to use for remote execution (should behave like ssh)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXAMPLES
 | 
					EXAMPLES
 | 
				
			||||||
| 
						 | 
					@ -69,7 +75,12 @@ cdist config -d ikq05.ethz.ch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Configure hosts in parallel and use a different home directory
 | 
					# Configure hosts in parallel and use a different home directory
 | 
				
			||||||
cdist config -c ~/p/cdist-nutzung \
 | 
					cdist config -c ~/p/cdist-nutzung \
 | 
				
			||||||
   -p ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch
 | 
					    -p ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Use custom remote exec / copy commands
 | 
				
			||||||
 | 
					cdist config --remote-exec /path/to/my/remote/exec \
 | 
				
			||||||
 | 
					    --remote-copy /path/to/my/remote/copy \
 | 
				
			||||||
 | 
					    -p ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Display banner
 | 
					# Display banner
 | 
				
			||||||
cdist banner
 | 
					cdist banner
 | 
				
			||||||
| 
						 | 
					@ -98,7 +109,7 @@ The following exit values shall be returned:
 | 
				
			||||||
0::
 | 
					0::
 | 
				
			||||||
    Successful completion
 | 
					    Successful completion
 | 
				
			||||||
1::
 | 
					1::
 | 
				
			||||||
    One or more host configuration failed.
 | 
					    One or more host configurations failed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SEE ALSO
 | 
					SEE ALSO
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										46
									
								
								doc/man/man7/cdist-remote-exec-copy.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								doc/man/man7/cdist-remote-exec-copy.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,46 @@
 | 
				
			||||||
 | 
					cdist-remote-exec-copy(7)
 | 
				
			||||||
 | 
					=========================
 | 
				
			||||||
 | 
					Nico Schottelius <nico-cdist--@--schottelius.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-remote-exec-copy - How to use remote exec and copy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INTRO
 | 
				
			||||||
 | 
					-----
 | 
				
			||||||
 | 
					Cdist interacts with the target host in two ways:
 | 
				
			||||||
 | 
					- it executes code (__remote_exec)
 | 
				
			||||||
 | 
					- and it copies files (__remote_copy)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					By default this is accomplished with ssh and scp respectively.
 | 
				
			||||||
 | 
					The default implementations used by cdist are:
 | 
				
			||||||
 | 
					__remote_exec: ssh -o User=root -q
 | 
				
			||||||
 | 
					__remote_copy: scp -o User=root -q
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The user can override these defaults by providing custom implementations and
 | 
				
			||||||
 | 
					passing them to cdist with the --remote-exec and/or --remote-copy arguments.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For __remote_exec, the custom implementation must behave as if it where ssh.
 | 
				
			||||||
 | 
					For __remote_copy, it must behave like scp.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					With this simple interface the user can take total control of how cdist
 | 
				
			||||||
 | 
					interacts with the target when required, while the default implementation 
 | 
				
			||||||
 | 
					remains as simple as possible.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------------
 | 
				
			||||||
 | 
					See cdist/other/examples/remote/ for some example implementations.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist(7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2011-2012 Nico Schottelius. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
| 
						 | 
					@ -35,6 +35,8 @@ class Context(object):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self,
 | 
					    def __init__(self,
 | 
				
			||||||
        target_host,
 | 
					        target_host,
 | 
				
			||||||
 | 
					        remote_copy,
 | 
				
			||||||
 | 
					        remote_exec,
 | 
				
			||||||
        initial_manifest=False,
 | 
					        initial_manifest=False,
 | 
				
			||||||
        base_path=False,
 | 
					        base_path=False,
 | 
				
			||||||
        exec_path=sys.argv[0],
 | 
					        exec_path=sys.argv[0],
 | 
				
			||||||
| 
						 | 
					@ -70,10 +72,18 @@ class Context(object):
 | 
				
			||||||
        self.initial_manifest = (initial_manifest or
 | 
					        self.initial_manifest = (initial_manifest or
 | 
				
			||||||
            os.path.join(self.local.manifest_path, "init"))
 | 
					            os.path.join(self.local.manifest_path, "init"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Remote
 | 
					        self._init_remote(remote_copy, remote_exec)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Remote stuff
 | 
				
			||||||
 | 
					    def _init_remote(self, remote_copy, remote_exec):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.remote_base_path = os.environ.get('__cdist_remote_out_dir', "/var/lib/cdist")
 | 
					        self.remote_base_path = os.environ.get('__cdist_remote_out_dir', "/var/lib/cdist")
 | 
				
			||||||
        self.remote_exec = os.environ.setdefault('__remote_exec', "ssh -o User=root -q")
 | 
					        self.remote_copy = remote_copy
 | 
				
			||||||
        self.remote_copy = os.environ.setdefault('__remote_copy', "scp -o User=root -q")
 | 
					        self.remote_exec = remote_exec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        os.environ['__remote_copy'] = self.remote_copy
 | 
				
			||||||
 | 
					        os.environ['__remote_exec'] = self.remote_exec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.remote = remote.Remote(self.target_host, self.remote_base_path,
 | 
					        self.remote = remote.Remote(self.target_host, self.remote_base_path,
 | 
				
			||||||
            self.remote_exec, self.remote_copy)
 | 
					            self.remote_exec, self.remote_copy)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -77,12 +77,7 @@ class Remote(object):
 | 
				
			||||||
        self.log.debug("Remote transfer: %s -> %s", source, destination)
 | 
					        self.log.debug("Remote transfer: %s -> %s", source, destination)
 | 
				
			||||||
        self.rmdir(destination)
 | 
					        self.rmdir(destination)
 | 
				
			||||||
        command = self._copy.split()
 | 
					        command = self._copy.split()
 | 
				
			||||||
        # support rsync by appending a "/" to the source if it's a directory
 | 
					        command.extend(["-r", source, self.target_host + ":" + destination])
 | 
				
			||||||
        if os.path.isdir(source):
 | 
					 | 
				
			||||||
           command.extend(["-r", source + "/", self.target_host + ":" + destination])
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
           command.extend(["-r", source, self.target_host + ":" + destination])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        self._run_command(command)
 | 
					        self._run_command(command)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def run_script(self, script, env=None, return_output=False):
 | 
					    def run_script(self, script, env=None, return_output=False):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@
 | 
				
			||||||
# to a remote target host.
 | 
					# to a remote target host.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Usage:
 | 
					# Usage:
 | 
				
			||||||
#  __remote_copy="/path/to/this/script /path/to/your/chroot" cdist config target-id
 | 
					#  cdist config --remote-copy "/path/to/this/script /path/to/your/chroot" target-id
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log() {
 | 
					log() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@
 | 
				
			||||||
# on a remote target host.
 | 
					# on a remote target host.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Usage:
 | 
					# Usage:
 | 
				
			||||||
#  __remote_exec="/path/to/this/script /path/to/your/chroot" cdist config target-id
 | 
					#  cdist config --remote-exec "/path/to/this/script /path/to/your/chroot" target-id
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log() {
 | 
					log() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# 2012 Matt Coddington (mcoddington at gmail.com)
 | 
					# 2012 Matt Coddington (mcoddington at gmail.com)
 | 
				
			||||||
 | 
					# 2012 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# This file is part of cdist.
 | 
					# This file is part of cdist.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -24,7 +25,25 @@
 | 
				
			||||||
# at /etc/passwd~cdist.
 | 
					# at /etc/passwd~cdist.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Usage:
 | 
					# Usage:
 | 
				
			||||||
#  __remote_copy="/path/to/this/script" cdist config target_host
 | 
					#  cdist config --remote-copy /path/to/this/script target_host
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# For rsync to do the right thing, the source has to end with "/" if it is
 | 
				
			||||||
 | 
					# a directory. The below preprocessor loop takes care of that.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# second last argument is the source
 | 
				
			||||||
 | 
					source_index=$(($#-1))
 | 
				
			||||||
 | 
					index=0
 | 
				
			||||||
 | 
					for arg in $@; do
 | 
				
			||||||
 | 
					   if [ $index -eq 0 ]; then
 | 
				
			||||||
 | 
					      # reset $@
 | 
				
			||||||
 | 
					      set --
 | 
				
			||||||
 | 
					   fi
 | 
				
			||||||
 | 
					   index=$((index+=1))
 | 
				
			||||||
 | 
					   if [ $index -eq $source_index -a -d "$arg" ]; then
 | 
				
			||||||
 | 
					      arg="${arg%/}/"
 | 
				
			||||||
 | 
					   fi
 | 
				
			||||||
 | 
					   set -- "$@" "$arg"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
rsync --backup --suffix=~cdist -e 'ssh -o User=root' $@
 | 
					rsync --backup --suffix=~cdist -e 'ssh -o User=root' $@
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/sh -e
 | 
					#!/bin/sh -e
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
					# 2012 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# This file is part of cdist.
 | 
					# This file is part of cdist.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -21,8 +21,10 @@
 | 
				
			||||||
# __remote_{exec,copy} script to run cdist against a schroot target uri
 | 
					# __remote_{exec,copy} script to run cdist against a schroot target uri
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Usage:
 | 
					# Usage:
 | 
				
			||||||
#  __remote_exec="/path/to/this/script exec" cdist config target_uri
 | 
					#  cdist config \
 | 
				
			||||||
#  __remote_copy="/path/to/this/script copy" cdist config target_uri
 | 
					#     --remote-exec "/path/to/this/script exec" \
 | 
				
			||||||
 | 
					#     --remote-copy "/path/to/this/script copy" \
 | 
				
			||||||
 | 
					#     target_uri
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# # target_uri examples:
 | 
					# # target_uri examples:
 | 
				
			||||||
# schroot:///chroot-name
 | 
					# schroot:///chroot-name
 | 
				
			||||||
| 
						 | 
					@ -49,7 +51,8 @@ my_name="${0##*/}"
 | 
				
			||||||
mode="$1"; shift
 | 
					mode="$1"; shift
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log() {
 | 
					log() {
 | 
				
			||||||
   echo "$@" | logger -t "cdist-$my_name-$mode"
 | 
					   # uncomment me for debugging
 | 
				
			||||||
 | 
					   #echo "$@" | logger -t "cdist-$my_name-$mode"
 | 
				
			||||||
   :
 | 
					   :
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -109,6 +112,9 @@ else
 | 
				
			||||||
   copy_prefix="cp"
 | 
					   copy_prefix="cp"
 | 
				
			||||||
   copy_destination_prefix=""
 | 
					   copy_destination_prefix=""
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					log "exec_prefix: $exec_prefix"
 | 
				
			||||||
 | 
					log "copy_prefix: $copy_prefix"
 | 
				
			||||||
 | 
					log "copy_destination_prefix: $copy_destination_prefix"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$mode" in
 | 
					case "$mode" in
 | 
				
			||||||
   exec)
 | 
					   exec)
 | 
				
			||||||
| 
						 | 
					@ -118,8 +124,9 @@ case "$mode" in
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
   copy)
 | 
					   copy)
 | 
				
			||||||
      # get directory for given chroot_name
 | 
					      # get directory for given chroot_name
 | 
				
			||||||
      schroot_directory="$($exec_prefix schroot $chroot_name --config | awk -F = '/directory=/ {print $2}')"
 | 
					      schroot_directory="$($exec_prefix schroot -c $schroot_name --config | awk -F = '/directory=/ {print $2}')"
 | 
				
			||||||
      [ -n "$schroot_directory" ] || die "Failed to retreive schroot directory for schroot: $schroot_name"
 | 
					      [ -n "$schroot_directory" ] || die "Failed to retreive schroot directory for schroot: $schroot_name"
 | 
				
			||||||
 | 
					      log "schroot_directory: $schroot_directory"
 | 
				
			||||||
      # prefix destination with chroot
 | 
					      # prefix destination with chroot
 | 
				
			||||||
      code="$copy_prefix $(echo "$@" | sed "s|$uri:|${copy_destination_prefix}${schroot_directory}|g")"
 | 
					      code="$copy_prefix $(echo "$@" | sed "s|$uri:|${copy_destination_prefix}${schroot_directory}|g")"
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,7 +21,7 @@
 | 
				
			||||||
# __remote_copy script to run cdist against a chroot on the target host over ssh.
 | 
					# __remote_copy script to run cdist against a chroot on the target host over ssh.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Usage:
 | 
					# Usage:
 | 
				
			||||||
#  __remote_copy="/path/to/this/script schroot-chroot-name" cdist config target_host
 | 
					#  cdist config --remote-copy "/path/to/this/script schroot-chroot-name" target_host
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log() {
 | 
					log() {
 | 
				
			||||||
| 
						 | 
					@ -33,7 +33,7 @@ chroot_name="$1"; shift
 | 
				
			||||||
target_host="$__target_host"
 | 
					target_host="$__target_host"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# get directory for given chroot_name
 | 
					# get directory for given chroot_name
 | 
				
			||||||
chroot="$(ssh -o User=root -q $target_host schroot $chroot_name --config | awk -F = '/directory=/ {print $2}')"
 | 
					chroot="$(ssh -o User=root -q $target_host schroot -c $chroot_name --config | awk -F = '/directory=/ {print $2}')"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# prefix destination with chroot
 | 
					# prefix destination with chroot
 | 
				
			||||||
code="$(echo "$@" | sed "s|$target_host:|$target_host:$chroot|g")"
 | 
					code="$(echo "$@" | sed "s|$target_host:|$target_host:$chroot|g")"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,7 +21,7 @@
 | 
				
			||||||
# __remote_exec script to run cdist against a chroot on the target host over ssh.
 | 
					# __remote_exec script to run cdist against a chroot on the target host over ssh.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Usage:
 | 
					# Usage:
 | 
				
			||||||
#  __remote_exec="/path/to/this/script schroot-chroot-name" cdist config target_host
 | 
					#  cdist config --remote-exec "/path/to/this/script schroot-chroot-name" target_host
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log() {
 | 
					log() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,7 +21,7 @@
 | 
				
			||||||
# same as cdist default
 | 
					# same as cdist default
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Usage:
 | 
					# Usage:
 | 
				
			||||||
#  __remote_copy="/path/to/this/script" cdist config target_host
 | 
					#  cdist config --remote-copy "/path/to/this/script" target_host
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#echo "$@" | logger -t "cdist-ssh-copy"
 | 
					#echo "$@" | logger -t "cdist-ssh-copy"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,7 +21,7 @@
 | 
				
			||||||
# same as cdist default
 | 
					# same as cdist default
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Usage:
 | 
					# Usage:
 | 
				
			||||||
#  __remote_exec="/path/to/this/script" cdist config target_host
 | 
					#  cdist config --remote-exec "/path/to/this/script" target_host
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#echo "$@" | logger -t "cdist-ssh-exec"
 | 
					#echo "$@" | logger -t "cdist-ssh-exec"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue