cdist/doc/dev/logs/2011-06-21.execute_remote

62 lines
1.2 KiB
Text
Raw Normal View History

Steven, Nico:
Problem:
How to execute a function instead of binary
Solutions:
1)
(
cat $lib/*
cat bin/cdist-config
echo $function $args
) | ssh foo
Works partly, does not work for export = ...
Needs to copy over lib every time again!
2)
scp $dir/lib.sh root@foo:/tmp/lib.sh
cat << DONE | ssh root@foo sh
source /tmp/lib.sh
export foo=bla
function args
DONE
Caches lib directory
3) follow up to 1)
__run_remote()
{
cat << eof | ssh foo
. /cdist-config
"$@" # NOT USABLE, no export = export = lines possible!
eof
4) final solution
- write for every remote job a new function
- this functions prepares env + reuses ssh header
__cdist_remote_explorer()
{
cat << eof
$__cdist_remote_header
export foo1=bar
export foo2=bar
export foo3=bar
"$@"
eof | __cdist_ssh
}
Problems found and solved:
- remote shell cannot work due to multi line variable export
- caching library directory with scp
- create function for every remote action
-> prepares environment