|
|
|
Commands needed:
|
|
|
|
conf/cmd/remote_exec
|
|
|
|
conf/cmd/copy
|
|
|
|
|
|
|
|
If ! conf/cmd/remote_exec:
|
|
|
|
use builtin
|
|
|
|
If ! conf/cmd/copy:
|
|
|
|
use builtin
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
--cmd-dir?
|
|
|
|
$__cdist_cmd_dir
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
-> Depend on session!
|
|
|
|
|
|
|
|
Builtin:
|
|
|
|
cdist.exec.run_or_fail(["scp", "-qr", source,
|
|
|
|
self.remote_user + "@" +
|
|
|
|
self.target_host + ":" +
|
|
|
|
destination])
|
|
|
|
|
|
|
|
self.remote_prefix = ["ssh", self.remote_user + "@" + self.target_host]
|
|
|
|
|
|
|
|
self.remote_user = remote_user
|
|
|
|
self.remote_prefix = remote_prefix
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
What is in a session?
|
|
|
|
|
|
|
|
base_dir
|
|
|
|
target_host
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
remote_user
|
|
|
|
pseudo-static, can be hardcoded again
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
Result:
|
|
|
|
|
|
|
|
os.environ['__remote_exec'] = ["ssh", "-l", "root" ]
|
|
|
|
|
|
|
|
os.environ['__remote_exec'] = ["ssh", "-o", "User=root" ]
|
|
|
|
os.environ['__remote_copy'] = ["scp", "-o", "User=root" ]
|
|
|
|
|
|
|
|
|
|
|
|
__remote_exec=~/sudossh __remote_copy=... cdist config localhost
|
|
|
|
|
|
|
|
~/sudossh hostname $@...
|
|
|
|
~/sudocopy a hostname:b
|
|
|
|
|
|
|
|
~/chrootssh
|
|
|
|
~/chrootcopy
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a)
|
|
|
|
3 cmd verzeichnnise: cdist, sudo, chroot
|
|
|
|
pro aufruf variable ändern
|
|
|
|
|
|
|
|
b)
|
|
|
|
1 dir, mit zeug
|
|
|
|
pro aufruf variablen ändern
|
|
|
|
|
|
|
|
|
|
|
|
conf/cmd/remote_exec
|
|
|
|
|
|
|
|
args for __remote_exec
|
|
|
|
$1 = hostname
|
|
|
|
$2 - ... = stuff to be executed in /bin/sh on remote side
|
|
|
|
$2 - $7 = env
|
|
|
|
$7 - 12 = cmd
|
|
|
|
|
|
|
|
|
|
|
|
args for __remote_copy
|
|
|
|
$1 = file here
|
|
|
|
$2 = hostname:destination
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
There needs to be an easy way to change those cmds!
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
Env-Passing:
|
|
|
|
_a=b test -> test can access $_a
|
|
|
|
_a=b test $_a -> $1 = "", because _a is *not* set within the shell
|
|
|
|
_a=b; test -> can access $_a
|
|
|
|
_a=b; test $_a -> $1 == "b"
|