rubic / shaker Goto Github PK
View Code? Open in Web Editor NEWCreate and launch EC2 instances as Salt minions
License: BSD 2-Clause "Simplified" License
Create and launch EC2 instances as Salt minions
License: BSD 2-Clause "Simplified" License
I now think Shaker should probably not bother trying to guess the AMI. If there are no objections, I'll remove ubuntu_release and ami.py from the project.
In order to automatically bootstrap a minion with salt (ie: salt-call state.highstate), the minion's key needs to be accepted by the master first.
One possible solution might be creating the minion key with shaker, feeding it to the minion using user-data or cloud-init, and then somehow feeding the salt-minion's public key to the salt-master, followed by an accept command.
This would force the design of shaker to be run from the salt-master, or somehow have access to the salt master in order to be able to add the new minion's public key or tell it to accept the key.
I am one of the maintainers of Boto. A few weeks ago we began to merge backward-compatible Python 3.3 and 3.4 support into our develop branch. Most modules now support Python 3 with passing unit and integration tests, and I am hoping to do a release soon. I am reaching out to you to ask if you would test our develop branch with Shaker.
Testing against Python 2.x will help to ensure that we don't accidentally break third party modules like Shaker. If you would like, you may also try out the Python 3 support and let us know any feedback. More information about the Python 3 support can be found in this boto-users post:
https://groups.google.com/forum/#!topic/boto-users/vcvoy8zrfP8
I appreciate any time that you can put into helping the Boto project with this.
This request is part of boto/boto#2437
Installation on both Mac OS X 10.8.4 and Ubuntu 12.04 fails.
On OS X:
running install
running build
running build_py
running build_ext
building 'M2Crypto.__m2crypto' extension
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
swig -python -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/usr/include -includeall -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
unable to execute swig: Permission denied
error: command 'swig' failed with exit status 1
Command /Users/andres/.virtualenvs/salty-tote-server-setup/bin/python -c "import setuptools;file='/Users/andres/.virtualenvs/salty-tote-server-setup/build/M2Crypto/setup.py';exec(compile(open(file).read().replace('\r\n', '\n'), file, 'exec'))" install --single-version-externally-managed --record /var/folders/nj/f0w1hbqj383c25998dp4kntc0000gn/T/pip-01i6zk-record/install-record.txt --install-headers /Users/andres/.virtualenvs/salty-tote-server-setup/include/site/python2.7 failed with error code 1 in /Users/andres/.virtualenvs/salty-tote-server-setup/build/M2Crypto
Storing complete log in /Users/andres/.pip/pip.log
On Ubuntu:
copying M2Crypto/PGP/init.py -> build/lib.linux-x86_64-2.7/M2Crypto/PGP
running build_ext
building 'M2Crypto.__m2crypto' extension
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
swig -python -I/usr/include/python2.7 -I/usr/include -includeall -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
unable to execute swig: No such file or directory
error: command 'swig' failed with exit status 1
Command /home/vagrant/.virtualenvs/salty-tote-server-setup/bin/python -c "import setuptools;file='/home/vagrant/.virtualenvs/salty-tote-server-setup/build/M2Crypto/setup.py';exec(compile(open(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /tmp/pip-yWMt27-record/install-record.txt --single-version-externally-managed --install-headers /home/vagrant/.virtualenvs/salty-tote-server-setup/include/site/python2.7 failed with error code 1 in /home/vagrant/.virtualenvs/salty-tote-server-setup/build/M2Crypto
Storing complete log in /home/vagrant/.pip/pip.log
Add an option to register Salt minion with with Amazon's Route53 DNS. Fold in the slick53 code into Shaker (with Brad's blessing).
Prerequisite: Three values must be declared in the profile or command-line:
Verify: Account is subscribed to AWS Route53 services.
Add the ability for shaker to define grains in the profiles and pass them on to the minions.
If cli args can be used in lieu of a profile, they should be able to generate a whole profile from those same args.
We should have the ability to specify EC2 tags in the minion profile as a yaml dict of key/value pairs. Shaker currently makes an implicit assignment to the Name tag based on the hostname value (if the hostname isn't already assigned as a tag).
@roncohen raises an interesting point in issue #13 of how EC2 tags may relate to grain roles. There may often be some overlap but I don't think Shaker should implicitly conflate tags into roles. However, I would have no problem with adding a tags attribute to grains.
grains:
tags:
key1: value1
key2: value2
ec2-run-instances provides the -s flag for telling your instance what subnet to launch into. Could this be added to Shaker?
i am thinking of adding aws credentials info to shaker profiles.
it would be neat if you can create boxes in multiple aws accounts
just based on what profile you select - not mangling with ~/.boto
or env variables.
boto is prepared for that (there are params in the connection constructor)
and of course we can fallback to current behavior if not defined.
what would you think about this?
ps>
i believe i can even provide a patch, i just didn't want to send
pull request without asking - as it is a feature, not a bug ;)
Currently templates are hard-wired to:
There should be an option for the user to specify a custom template.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.