A puppet/facter plugin to expose EC2 instance details as facts.
The plugin is written in (almost*) vanilla/stdlib ruby to make it suitable for initial bootstrap without the aws-sdk gem installed.
* Has a soft dependency on the json gem. At the time of writing, it can get by
with a builtin mini parser but JSON.parse
will be used if available.
Facts currently include:
- EC2 version string from
/etc/ec2_version
(ec2_version
) - EC2 instance tags (
ec2_tag_*
) - CloudFormation stack name (
cloudformation_stack_name
) - CloudFormation stack parameters (
cfn_stack_param_*
) - Autoscaling group name (
autoscaling_group_name
) - Autoscaling group min/max/desired size (
autoscaling_(min|max)_size
,autoscaling_desired_capacity
) - Autoscaling group ELBs (
autoscaling_elb
) - Autoscaling group tags (
autoscaling_tag_*
) - Lifecycle (spot) (
ec2_lifecycle
)
The facts are cached in /tmp/ec2_facts.json
to save on excessive AWS API lookups.
TODO: Currently uses the simpler v2 signing process for REST API requests. This should be updated to the v4 signing process.