On Thu, Feb 11, 2010 at 2:38 AM, Solomon Hykes <[email protected]> wrote: > On Thu, Feb 11, 2010 at 3:18 AM, Paul Querna <[email protected]> wrote: > >> I think an interesting API to provide is the minimum needed to >> kickstart any of the above deployment systems. > > I agree entirely. The less abstraction we can get away with, the better. > >> For example, if we provided a deploy_node() api, which takes a similar >> kwargs to create_node [...] > > Why not simply add kwargs to create_node? See below. > >> after the node is booted, SSHes in, >> installs a few specific things, copies a small number of files into >> the machine, and starts a service. The actual actions could be a >> class for each of the above configuration management systems, with the >> ability to add your own. > > I like the process. It seems to me the only abstraction we need here > is the ability to run commands on the node, with a "runurl" ability to > pull commands from a remote url. > > The result would look like this: > create_node(runurl="http://somewhere.tld/webserver-bootstrap.sh")
Well, not quite, there are a few barriers: - You need to authenticate into the host. Depending on the provider, this is either done by providing a password, an ssh key, or receiving a password after booting, or as Ian mentioned, via an existing ssh key. - You would need to install runurl, this most likely means either just SCPing it up, but you'll still want to use apt or yum or X to install curl or wget etc.
