The missing OpsWorks CLI, run commands across stacks (and across regions), check your instances, apps, deployments, ELBs, with a smart filtering system.
npm install -g opsworks
opsworks <command> [args]
The OpsWorks CLI has multiple commands, similar to git
, apt-get
or brew
. When you run opsworks
with no arguments, you get an interactive prompt.
For simple tasks, just use opsworks
without a command and you'll get an interactive prompt.
opsworks
needs to access the AWS API using your credentials. Just like the AWS SDK or CLI, it will look for credentials in two places :
- From the shared credentials file (
~/.aws/credentials
) - From environment variables
To use the credentials file, create a ~/.aws/credentials
file based on the template below :
[default]
aws_access_key_id=your_access_key
aws_secret_access_key=your_secret_key
command | description |
---|---|
stacks | list OpsWorks stacks |
deployments | list OpsWorks deployments |
instances | list instances |
apps | list apps |
elbs | list Elastic Load Balancers |
update | update cookbooks |
setup | run setup recipes |
configure | run configure recipes |
deploy | deploy specified app |
recipes | run specified recipes |
-f
Specify filter (see below)-u
Update cookbooks before running the command-y
Do not ask for confirmation
Note: by default, when you do not specify -y
, the CLI will display a summary of what commands it will run and on which layer of which stacks as a precaution.
Any opsworks
command accepts filters. There are three built-in filters :
field | description |
---|---|
layer | The Shortname of the layer |
stack | The Name of the stack |
region | The stack's region |
The format is field:filter,field2:filter2,...
You can use wildcards, or even use regexes.
For example the command bellow would match all stacks whose name contain wordpress
, and only include their database layer.
opsworks instances -f 'stack:*wordpress*,layer:database'
Using regexes to check ELBs of two wordpress stacks at once :
opsworks instances -f 'stack:(prod|staging)-wordpress'
Additionally, if you use custom JSON on your stacks or layers, you can use arbitrary filters. For example, if your custom JSON has an env variable, this would work :
opsworks instances -f 'env:production'
Please feel free to open an issue if you find a bug or to request a feature. Please make sure to include all relevant logs.
Developed by Tristan Foureur for Plivo
Copyright © Plivo Inc.
All code is licensed under the MIT License. See LICENSE.md
file for details.