87 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 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"
 |