So there's something here that propellor doesn't yet have a concept of,
and that's spinning up a VM. Propellor can deploy itself to an existing VM
pretty well, but getting the VM running isn't something it tries to do.
I imagine that --spin could be extended to support this though.
Make a Property like vm AWS, which tells propellor that the host
is a VM, and that the VM is hosted on AWS. Then when you run propellor
--spin, it could set up the VM if it doesn't exist yet.
I don't use AWS currently, so don't have plans to work on this myself,
although I think it would be a great direction to move in. Happy to help
with advice, code review, etc.
It just so happens I have a use case for this, and it'll also involve specifics for VPCs, Encryption at Rest, public vs private subnets, and a whole lot of other compliance stuff that would be great to be able to express as properties. I'll start in on something probably shortly. It's either that or try and make Chef compliant, and that's literally completely unappealing.
Amazonka is really thorough, and I think I'm going to start writing some properties to spin up some things tomorrow. I wrote some PKI stuff today for work so we can start launching things without SSH open to the world, and this is definitely a good next step.
I've already got a hand-mashed set of subnets I'm really itching to automate.
I'm going to start working with it outside Propellor for a bit to configure our infrastructure, then I think we can really have a good sense of what we can do to start moving bits back into Propellor. To give an idea of just how much is going on, even just building amazonka-ec2 takes around 30 minutes on my laptop. A lot of it is (rightly-so) auto-generated from the AWS API descriptions, and it relies heavily on lenses. One of my goals with my current work is getting our AWS infrastructure built using Amazonka, and with a similar model as Propellor, and I think that'll ultimately be something we'll be able to merge (with a lot of merging effort of course).
So there's something here that propellor doesn't yet have a concept of, and that's spinning up a VM. Propellor can deploy itself to an existing VM pretty well, but getting the VM running isn't something it tries to do.
I imagine that --spin could be extended to support this though. Make a Property like
vm AWS
, which tells propellor that the host is a VM, and that the VM is hosted on AWS. Then when you run propellor --spin, it could set up the VM if it doesn't exist yet.I don't use AWS currently, so don't have plans to work on this myself, although I think it would be a great direction to move in. Happy to help with advice, code review, etc.
http://hackage.haskell.org/package/aws or http://hackage.haskell.org/package/amazonka are good haskell libraries for working with AWS.
I forgot to mention that as well. Scheduling Docker containers with the container service on dedicated instances with AWS.
I have needs, and a lot of stubbornness.
Well Evan, I know you already have been in the guts of the spin code, so I know you can manage it! Looking forward to this.
Amazonka is really thorough, and I think I'm going to start writing some properties to spin up some things tomorrow. I wrote some PKI stuff today for work so we can start launching things without SSH open to the world, and this is definitely a good next step.
I've already got a hand-mashed set of subnets I'm really itching to automate.
Thanks