Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

94 Commits

Repository files navigation

Restacker

Restacker is the DevSecOps deployment swiss army knife. You can use it safely & securely deploy, update, migrate, and/or remove AWS stacks.
Although not feature complete yet, you can begin using it to deploy or re-stack your existing AWS accounts/instances.

Install it:

git clone https://github.com/devsecops/restacker.git
cd restacker/source
gem install bundler
bundle install
gem build restacker.gemspec
gem install restacker
# if you're using rbenv, then: rbenv rehash

Use it:

$ restacker
Please specify an ACTION
Usage: restacker [ACTION] [OPTONS]
ACTIONS
list	Lists current stack names
describe	Describes a stack parameters and template
restack	Restacks a given deployment
deploy	Deploys a new stack
migrate	Migrates from green to blue stack
remove	Removes the given deployment
configure	Configure the target account in the restacker.yml file
dump	Dumps the default configuration for a given template or module
console	Opens the AWS Console
OPTIONS
-c, --credentials=PROFILE Specify the AWS profile credential (~/.aws/config) to use
-d, --debug Show stack traces
-e, --environment-params=PARAMS Parameters to add to the instance environment (/etc/profile.d) in the form of
k1=v1,k2=v2. E.g., -p SCORING_URL=https://scoring...
-h, --help Prints these wonderful lines...
-l, --location=LOCATION Location to deploy
-m, --migrate-module=MODULE Migration module to execute
-n, --name=NAME Stack prefix stack name (alphanumeric with dashes)
-o, --migrate-options=OPTIONS Options required by migration module to migrate from green to
blue stack in the form of k1=v1,k2=v2. E.g., -p EIP=1.2.3.4
-p, --params=PARAMS Parameters to override current stack parameters in the form of
k1=v1,k2=v2. E.g., -p AmiId=ami-a4jd7928
-P, --parameters-file=FILE YAML formated parameters file (as generated by the dump command) containing parameters to override stack parameters
-r, --region=REGION The region where the stack to be restacked exists
-t, --template=PATH Template file path to override current stack template
-u, --username=USERNAME Your username, defaults to $USER
-v, --verbose Show more output
-V, --version Display the version
Notes:
- If no template file path is provided when restacking restacker will use the same
template as if currently deployed.
- Deployed stack name will be in the form of NAME-DATE using today's date

Configure it

  • restacker configure -l <location>
  • Or copy the restacker-example.yml to ~/.restacker/restacker.yml & update the configurations The below configuration is an example of MyApp1 and MyApp2 as target accounts and CTRL as master.
$ cat ~/.restacker/restacker.yml
:default:
:label: myapp1
:ctrl: &ctrl_default
:label: ctrlAcct
:account_number: '123456789012'
:role_name: ctrl-ctrl-DeployAdmin
:role_prefix: "/dso/ctrl/ctrl/"
:bucket:
:name: my-bucket
:prefix: "s3/bucket/prefix/"
:ami_key: ami_object_key
:ctrlAcct:
:region: us-west-2
:ctrl:
<<: *ctrl_default
:target:
<<: *ctrl_default
:myapp1:
:region: us-west-2
:ctrl:
<<: *ctrl_default
:role_name: ctrl-myapp1-DeployAdmin
:target:
:label: myapp1
:account_number: '098765432123'
:role_name: myapp1-dso-DeployAdmin
:role_prefix: "/dso/human/"
:myapp2:
:region: us-west-2
:ctrl:
<<: *ctrl_default
:role_name: ctrl-myapp2-DeployAdmin
:target:
:label: myapp2
:account_number: '123098456765'
:role_name: myapp2-dso-DeployAdmin
:role_prefix: "/dso/human/"
...

More Info

Checkout the docs for detailed information.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages