Crate tsunami [−] [src]
tsunami
provides an interface for running short-lived jobs and experiments on EC2 spot block
instances. Most interaction with this library happens through
TsunamiBuilder
.
Examples
let mut b = TsunamiBuilder::default(); b.use_term_logger(); b.add_set( "server", 1, MachineSetup::new("m5.large", "ami-e18aa89b", |ssh| { ssh.cmd("yum install nginx").map(|out| { println!("{}", out); }) }), ); b.add_set( "client", 3, MachineSetup::new("m5.large", "ami-e18aa89b", |ssh| { ssh.cmd("yum install wget").map(|out| { println!("{}", out); }) }), ); b.run(|vms: HashMap<String, Vec<Machine>>| { println!("==> {}", vms["server"][0].private_ip); for c in &vms["client"] { println!(" -> {}", c.private_ip); } // ... Ok(()) }).unwrap();
Live-coding
The crate is under development as part of a live-coding stream series intended for users who are already somewhat familiar with Rust, and who want to see something larger and more involved be built.
You can find the recordings of past sessions below:
Structs
Machine |
A handle to an instance currently running as part of a tsunami. |
MachineSetup |
A template for a particular machine setup in a tsunami. |
Session |
An established SSH session. |
TsunamiBuilder |
Use this to prepare and execute a new tsunami. |