Add a logo for the project.
Add -p command line argument to specify playbook(s) on command line.
RightScale
- Update dependency to python-rightscale==0.1.3.
- Tag the rightscale server, not just the instance. This insures instances that launch from the same server definition also get tagged.
- Allow instance type, AZ, secgroups to be optional for RightScale servers.
- Expose details of RightScale API error response.
Add hostvars directly to --list output.
- As an optimization to avoid exec-ing the inventory script for every host, Ansible >= 1.3 accepts the hostvars in the initial inventory dump under a _meta key.
Fix up more python2.6 incompatibilities.
- This includes addressing the warning about BaseException.message deprecation
Gracefully handle when $HOME is not in environment.
RightScale
Switch to using public_dns_names.
This means that in the inventory provided to ansible, hosts will be defined by their public DNS name instead of their public IP address. For RightScale hosts in AWS, this gives you names like ec2-54-123-45-67.compute-1.amazonaws.com which gets the magic EC2 DNS resolution (i.e. translates to private address within EC2, translates to public address from outside EC2).
Expose bang server attributes to playbooks. E.g. in an ansible template, {{bang_server_attributes.instance_type}} might resolve to the value t1.micro.
AWS
- Fix security group handler. Thanks Sol Reynolds!
RightScale
- Support all input types. E.g. key:, cred:, env:, etc...
AWS
- Add support for creating S3 buckets (Thanks to Sol Reynolds).
- Add support for IAM roles and other provider-specific server attributes.
RightScale
BREAKING CHANGE: Inputs are now nested one level deeper in a server config stanza.
This was done as part of adding support for provider-specific server attributes. Prior to this change, one would specify the server template inputs in a rightscale server config like this:
servers: my_rs_server: # other server attributes omitted for brevity provider: rightscale inputs: DOMAIN: foo.net SOME_OTHER_INPUT: blah blahProvider-specific attributes needed to create/launch servers will now be nested one level deeper in an attribute named after the provider. With this new structure, the corresponding configuration for the example above would look like this:
servers: my_rs_server: # other server attributes omitted for brevity provider: rightscale rightscale: inputs: DOMAIN: foo.net SOME_OTHER_INPUT: blah blahPropagate rs deployment and server name to ec2 tags.
Issues addressed
- Fix handling of localhost in inventory
- #11: Return sorted host lists for bang --list.
Ansible integration
Allow setting some ansible options via bang config or ~/.bangrc:
Verbosity (especially for ssh debugging):
ansible: verbosity: 4Vault:
ansible: # ask_vault_pass: true # vault_pass: "thisshouldfail" vault_pass: "bangbang"Test against ansible 1.7.2
Add --no-deploy arg to only use existing infrastructure.
Switch to yaml.safe_load.
Improve compatibility with Python 2.6, including adding 2.6 as a Travis CI target.
Update to ansible >= 1.6.3.
- Allow ansible vars plugins to work.
Add RightScale provider.
- Add server creation and launch support.
- Expose underlying RightScale response for errors.
- Implement create_stack() to create RightScale deployments.
Reuse existing servers if possible. Some scenarios allow a server instance to be found and usable as a deployment target (e.g. bang run failed but server instance launched successfully).
Allow configuration of logging via ~/.bangrc.
Add backwards support for python 2.6.
Reorganize and add new examples.
HP Cloud provider
- BREAKING CHANGE: Separate HP Cloud v12 and v13 providers. Users of HP Cloud services must now distinguish between the 2 different API versions of their resources.
- Add new LB nodes before removing old; fixes error caused by HPCS’ rule that a LB must have at least one node.
Allow load balancers to be region-specific.
Update dependencies. Now using:
- Ansible 1.2
- logutils >= 3.2
Fix #4: Set value for “Name” tag on EC2 servers
Fix EC2 server provisioning
AWS provider
- Create and manage EC2 security groups and their rules.
BREAKING CHANGE: In a stack config file, the top-level resource definition containers were lists. From 0.7 onward, they must be defined as dictionaries. This allows resource definitions to be deep-merged. The just_run_a_playbook.yml example was updated to demonstrate the new config format.
This change extends the reuse of common config stanzas that was previously only available for general stack properties and for configuration scopes to resource definitions. Prior to this change, the main purpose for this deep-merge behaviour was to allow sysadmins to use a known working dev stack config file and specify a subset config file to override secrets (e.g. encryption keys) when deploying production stacks. With the deep-merging of resource definitions, deployers can override any part of the config file and break up their stack configurations into multiple reusable subset config files as is most convenient for them. For example, one could easily deploy stack clones in multiple public cloud regions using a single base stack config and a subset stack config for each target region overriding region_name in the server definitions.
HP Cloud provider
- Add LBaaS support.
Add “127.0.0.1” to the inventory to enable local plays.
Add deployer for externally-deployed servers (e.g. physical servers in a traditional server room, unmanaged virtual servers).
Reuse ssh connections when running playbooks.
Allow setting ssh username+password as command-line arguments.
AWS provider
- Compute (EC2)
Inline configuration scopes for server definitions
Separate regions from availability zones
Fix multi-region stacks
Core Ansible playbook runner
Parallel cloud resource deployment
Generic OpenStack provider
HP Cloud provider
Compute (Nova)
- Including security groups
Object Storage (Swift)
DBaaS (RedDwarf)