shipit-ec2
v0.0.1
Published
Obtain a list of aws ec2 instances using tags to configure shipit
Readme
shipit-ec2
shipit-ec2 is a simple async task to obtain a list of aws ec2 instances for use in configuring shipit-cli.
While at the time of writing, this module could be used elsewhere, it is written for the purpose of shipit-cli and may create dependencies in the future depending on desired features.
Usage
Example shipitfile.js
var ec2 = require('shipit-ec2');
module.exports = function (shipit) {
return ec2.getFromTags({
env: ['prod'],
tags: {
env: 'shipit.env',
app: 'shipit.app'
},
values: {
app: 'my-app'
},
simple: true
}).then(function(instances) {
shipit.initConfig({
default: {
key: '/path/to/key.pem'
},
prod: {
servers: instances.prod.map(function(instance) { return 'ubuntu@' + instance; })
}
});
shipit.task('pwd', function () {
return shipit.remote('pwd');
});
});
};Options
env
Type: Array
The environments we wish to obtain servers for. This will be returned as properties of the resolved instances variable (see the above example).
tags
Type: Object<String, String>
An object defining the tag names used with ec2 instances.
With exception of env which defines the tag name for the env configuration values, the keys should match the values defined within the values configuration.
values
Type: Object<String, String>
An object defining the corresponding values for the tags defined with the tags configuration.
simple
Type: Boolean
If true, the list of resolved servers (see instances variable in the above example) will be a simple structure of environment name against an array of servers. If false, a more complex object structure giving more details about the instance.
AWS Configuration
Aws configuration, should reside within the file aws.json in the current working directory, alongside shipitfile.js.
The IAM user should have list privileges for ec2 instances.
{
"accessKeyId": "<access key>",
"secretAccessKey": "<secret access key>",
"region": "<region>"
}The aws credentials may be omitted from this file, in favour of the environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
