Commands needed: conf/cmd/remote_exec conf/cmd/copy If ! conf/cmd/remote_exec: use builtin If ! conf/cmd/copy: use builtin -> 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_copy'] = ["scp", "-o" "User=root" ] args for __remote_exec $1 = hostname $2 - ... = stuff to be executed in /bin/sh on remote side args for __remote_copy $1 = file here $2 = hostname:destination