An alternative CLI for Amazon OpsWorks, focused on managing a large number of similarly provisioned stacks.
Installation
Install the gem:
gem install 'opsworks-cli'
Configuration
The gem expects to have access to your AWS access key ID and secret access key. You may set the following environment variables:
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
To avoid manually setting these ENV variables each time, you may use the Omnivault gem to store and configure your credentials once, then access them later by running e.g.
omnivault exec opsworks [...]
Usage
$ opsworks help
Commands:
opsworks apps:create APP [--stack STACK] # Create a new OpsWorks app
opsworks apps:deploy APP [--stack STACK] # Deploy an OpsWorks app
opsworks apps:status APP [--stack STACK] # Display the most recent deployment of an app
opsworks chef:configure [--stack STACK] # Configure Chef/Berkshelf
opsworks chef:sync [--stack STACK] # Sync OpsWorks custom cookbooks
opsworks config:get KEY [--stack STACK] # Get a single config value
opsworks config:set KEY VALUE [--stack STACK] # Set a config value
opsworks config:unset KEY [--stack STACK] # Unset a config value
opsworks help [COMMAND] # Describe available commands or one specific command
opsworks iam:allow USER [--stack STACK] # Allow an IAM user on a stack
opsworks iam:lockdown [--stack STACK] # Remove all stack permissions
opsworks recipes:add LAYER EVENT RECIPE [--stack STACK] # Add a recipe to a given layer and lifecycle event
opsworks recipes:rm LAYER EVENT RECIPE [--stack STACK] # Remove a recipe from a given layer and lifecycle event
opsworks recipes:run RECIPE [--stack STACK] # Execute a Chef recipe
opsworks version # Print OpsWorks CLI version
Contributing
- Fork the project.
- Commit your changes, with specs.
- Ensure that your code passes specs (
rake spec
) and meets Aptible's Ruby style guide (rake rubocop
). - Create a new pull request on GitHub.
Copyright and License
MIT License, see LICENSE for details.
Copyright (c) 2019 Aptible and contributors.