jack-eb 1.3.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/CONTRIBUTING.md +56 -0
- data/README.md +39 -150
- data/docs/CNAME +1 -1
- data/docs/README.md +1 -1
- data/docs/_config.yml +3 -2
- data/docs/_docs/conventions.md +48 -0
- data/docs/_docs/install.md +9 -3
- data/docs/_docs/jack-apply.md +13 -6
- data/docs/_docs/jack-create.md +6 -4
- data/docs/_docs/jack-deploy.md +5 -3
- data/docs/_docs/jack-diff.md +10 -2
- data/docs/_docs/jack-get.md +25 -4
- data/docs/_docs/jack-help.md +22 -0
- data/docs/_docs/jack-terminate.md +4 -2
- data/docs/_docs/next-steps.md +4 -3
- data/docs/_docs/settings.md +70 -0
- data/docs/_docs/structure.md +5 -3
- data/docs/_docs/tutorial.md +4 -2
- data/docs/_includes/about.html +2 -2
- data/docs/_includes/css/jack.css +10 -0
- data/docs/_includes/edit-on-github.html +1 -1
- data/docs/_includes/footer.html +3 -2
- data/docs/_includes/google_analytics.html +10 -0
- data/docs/_includes/header.html +2 -2
- data/docs/_includes/js.html +4 -0
- data/docs/_includes/nav.html +1 -1
- data/docs/_includes/subnav.html +26 -23
- data/docs/articles.md +2 -0
- data/docs/docs.md +5 -3
- data/docs/img/logos/jack-logo.png +0 -0
- data/docs/js/nav.js +20 -13
- data/docs/quick-start.md +3 -1
- data/lib/jack/default/settings.yml +1 -1
- data/lib/jack/deploy.rb +1 -2
- data/lib/jack/settings.rb +1 -1
- data/lib/jack/ui.rb +1 -1
- data/lib/jack/util.rb +3 -3
- data/lib/jack/version.rb +1 -1
- data/spec/lib/cli_spec.rb +4 -4
- data/spec/lib/eb_config/create_spec.rb +1 -1
- data/spec/lib/settings_spec.rb +2 -2
- metadata +7 -3
- data/docs/screenshot.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96d7ba0d66a46632ba581171a490b72cf0f1a175
|
4
|
+
data.tar.gz: 70bbd49ab108937debcb4e701224422d75cca808
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d55be4caa29ab9f488b9c59290f63bca4cea6ee32ad672c393bd187bfb4dd4adc9561f7aff15e0ac583e5c787a7b938908dd4167ff9199475057e25c830caef4
|
7
|
+
data.tar.gz: 82a0fdb9d77530c04be1f65dacdd63e088ca1e4518e8e19f9c699d83723384bc99f09d062981546e604cd823c7616699affa9a7fb5ca04988745f3bd50150972
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,11 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [1.4.0]
|
7
|
+
* fix jack deploy, remove debugging
|
8
|
+
* fix embedded_eb lookup
|
9
|
+
* add docs
|
10
|
+
|
6
11
|
## [1.3.0]
|
7
12
|
- flatten cli interface: jack config apply -> jack apply
|
8
13
|
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
# Contributing to Lono
|
2
|
+
|
3
|
+
Contributing is welcomed and encouraged. We love pull requests!
|
4
|
+
|
5
|
+
Here are some ways *you* can contribute:
|
6
|
+
|
7
|
+
* by reporting bugs
|
8
|
+
* by suggesting new features
|
9
|
+
* by writing or editing documentation
|
10
|
+
* by writing specs
|
11
|
+
* by writing code ( **no patch is too small** : fix typos, add comments, clean up inconsistent whitespace )
|
12
|
+
* by refactoring code
|
13
|
+
* by closing [issues][]
|
14
|
+
* by reviewing patches
|
15
|
+
|
16
|
+
[issues]: https://github.com/tongueroo/jack/issues
|
17
|
+
|
18
|
+
## Submitting an Issue
|
19
|
+
|
20
|
+
* We use the [GitHub issue tracker][issues] to track bugs and features.
|
21
|
+
* Before submitting a bug report or feature request, check to make sure it hasn't
|
22
|
+
already been submitted.
|
23
|
+
* When submitting a bug report, please include a [Gist][] that includes a stack
|
24
|
+
trace and any details that may be necessary to reproduce the bug, including
|
25
|
+
your gem version, Ruby version, and operating system. Ideally, a bug report
|
26
|
+
should include a pull request with failing specs.
|
27
|
+
|
28
|
+
[gist]: https://gist.github.com/
|
29
|
+
|
30
|
+
## Cleaning up issues
|
31
|
+
|
32
|
+
* Issues that have no response from the submitter will be closed after 30 days.
|
33
|
+
* Issues will be closed once they're assumed to be fixed or answered. If the
|
34
|
+
maintainer is wrong, it can be opened again.
|
35
|
+
* If your issue is closed by mistake, please understand and explain the issue.
|
36
|
+
We will happily reopen the issue.
|
37
|
+
|
38
|
+
## Submitting a Pull Request
|
39
|
+
1. [Fork][fork] the [official repository][repo].
|
40
|
+
2. [Create a topic branch.][branch]
|
41
|
+
3. Implement your feature or bug fix.
|
42
|
+
4. Add, commit, and push your changes.
|
43
|
+
5. [Submit a pull request.][pr]
|
44
|
+
|
45
|
+
## Notes
|
46
|
+
* Please add tests if you changed code. Contributions without tests won't be accepted.
|
47
|
+
* If you don't know how to add tests, please put in a PR and leave a comment
|
48
|
+
asking for help. We love helping!
|
49
|
+
* Please don't update the Gem version.
|
50
|
+
|
51
|
+
[repo]: https://github.com/tongueroo/jack/tree/master
|
52
|
+
[fork]: https://help.github.com/articles/fork-a-repo/
|
53
|
+
[branch]: https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/
|
54
|
+
[pr]: https://help.github.com/articles/using-pull-requests/
|
55
|
+
|
56
|
+
Inspired by https://github.com/middleman/middleman-heroku/blob/master/CONTRIBUTING.md
|
data/README.md
CHANGED
@@ -4,63 +4,43 @@
|
|
4
4
|
[![CircleCI](https://circleci.com/gh/tongueroo/jack.svg?style=svg)](https://circleci.com/gh/tongueroo/jack)
|
5
5
|
[![Code Climate](https://codeclimate.com/github/tongueroo/jack/badges/gpa.svg)](https://codeclimate.com/github/tongueroo/jack)
|
6
6
|
[![Test Coverage](https://codeclimate.com/github/tongueroo/jack/badges/coverage.svg)](https://codeclimate.com/github/tongueroo/jack)
|
7
|
+
[![Join the chat at https://gitter.im/tongueroo/jack](https://badges.gitter.im/tongueroo/jack.svg)](https://gitter.im/tongueroo/jack?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
8
|
+
[![Support](https://img.shields.io/badge/get-support-blue.svg)](https://boltops.com?utm_source=badge&utm_medium=badge&utm_campaign=jack)
|
7
9
|
|
8
|
-
The documentation for this tool is at [jackandtheelasticbeanstalk.com](http://jackandtheelasticbeanstalk.com).
|
9
10
|
|
10
|
-
Jack
|
11
|
+
Jack allows you to easily manage your AWS Elastic Beanstalk Jack environments.
|
11
12
|
|
12
|
-
Jack provides a `jack
|
13
|
+
Jack provides a `jack apply` command to update the Elastic Beanstalk environment. Before uploading the new configuration Elastic Beanstalk jack first downloads the current configuration and then does a diff on the changes that are about to be applied. This gives a preview of exactly what will be changed. This is particularly helpful when changes are made through the EB GUI and are out of sync with what is stored in the downloaded `jack/cfg` files.
|
13
14
|
|
15
|
+
See [jack-eb.com](http://jack-eb.com) for full documentation.
|
14
16
|
|
15
|
-
|
16
|
-
This blog post also provides a good introduction and shows some useful examples of what you can do with the jack tool: [Jack and the Elastic Beanstalk — Tool to Manage AWS Elastic Beanstalk Environments](https://medium.com/@tongueroo/jack-and-the-elastic-beanstalk-easily-manage-aws-environments-3ab496f08ad2#.o7w3x0yd9).
|
17
|
-
|
18
|
-
For things that this tool does not cover like deploying code, it is recommended that you use use the underlying aws `eb` tool directly. `eb deploy` provides a good deploy command already. This tool has been tested with `EB CLI 3.8.3 (Python 2.7.1)`.
|
17
|
+
This blog post also provides a good introduction and shows off useful examples of what you can do with the jack tool: [Jack and the Elastic Beanstalk — Tool to Manage AWS Elastic Beanstalk Environments](https://medium.com/@tongueroo/jack-and-the-elastic-beanstalk-easily-manage-aws-environments-3ab496f08ad2#.o7w3x0yd9).
|
19
18
|
|
20
19
|
## Use Cases
|
21
20
|
|
22
|
-
*
|
23
|
-
*
|
24
|
-
* Moving EB enviroments from one EB application to another EB application.
|
21
|
+
* Allows codification of the infrastructure by downloading the configuration. You can save the downloaded configs into version control.
|
22
|
+
* Safely upload new configs by previewing the changes before actually uploading and applying the configuration to the infrastructure.
|
23
|
+
* Moving EB enviroments from one EB application to another EB application. EB provides a way to clone environments within an application but is unable to move the enivornment to an entirely new application. This is useful if you want to "rename" the EB application.
|
25
24
|
|
26
25
|
## Installation
|
27
26
|
|
28
|
-
|
29
|
-
$ gem install jack-eb
|
30
|
-
```
|
31
|
-
|
32
|
-
Note that the gem is called jack-eb but the actual command that is installed is called `jack`.
|
33
|
-
|
34
|
-
### Setup
|
35
|
-
|
36
|
-
If the version of `eb` that you are using is not working with jack, here is a way to install the specific version jack has been tested with.
|
37
|
-
|
38
|
-
<pre>
|
39
|
-
cd ~/ && wget https://pypi.python.org/packages/source/a/awsebcli/awsebcli-3.8.3.tar.gz
|
40
|
-
tar -zxvf awsebcli-3.8.3.tar.gz
|
41
|
-
cd awsebcli-3.8.3
|
42
|
-
sudo python setup.py install
|
43
|
-
</pre>
|
44
|
-
|
45
|
-
More detail instructions are on [AWS EB Documentation](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-getting-set-up.html).
|
27
|
+
If you want to quickly install jack without having to worry about jack’s dependencies you can simply install the Bolts Toolbelt which has jack included.
|
46
28
|
|
47
|
-
|
29
|
+
```sh
|
30
|
+
brew cask install boltopslabs/software/bolts
|
31
|
+
```
|
48
32
|
|
49
|
-
|
50
|
-
brew update
|
51
|
-
brew install awsebcli
|
52
|
-
</pre>
|
33
|
+
Or if you prefer you can install ufo with RubyGems
|
53
34
|
|
54
|
-
|
35
|
+
```sh
|
36
|
+
gem install jack-eb
|
37
|
+
```
|
55
38
|
|
56
|
-
|
57
|
-
export AWS_ACCESS_KEY_ID=xxx
|
58
|
-
export AWS_SECRET_ACCESS_KEY=xxx
|
59
|
-
</pre>
|
39
|
+
Note that the gem is called jack-eb but the actual command that is installed is called `jack`. If you are installing jack with RubyGems you will need to handle installing the additional dependencies yourself.
|
60
40
|
|
61
|
-
|
41
|
+
Full installation instructions are on the [Installation docs](http://jack-eb.com/docs/install/).
|
62
42
|
|
63
|
-
|
43
|
+
## Conventions
|
64
44
|
|
65
45
|
Before using the tool, it is good to know that jack follows a convention for the environment and application name. This is done in order to keep the jack commands simple and short. The convention is:
|
66
46
|
|
@@ -76,121 +56,30 @@ environment_name: hi-web-prod
|
|
76
56
|
application_name: hi
|
77
57
|
</pre>
|
78
58
|
|
79
|
-
The example above means the EB application name will be `hi` and the environment name will be `hi-web-prod`. By convention, the first word, separated by a '-', of the environment name is the application name.
|
80
|
-
|
81
|
-
This convention can be overridden easily via by creating a `~/.jack/settings.yml` or `jack/settings.yml` within the project and defining your own regular expression with the `conventions.app_name_pattern` key. The regexp is a ruby regexp and must have 1 capture group. The capture group is used to determine the application name. Here is an example:
|
82
|
-
|
83
|
-
```yaml
|
84
|
-
create:
|
85
|
-
keyname: default
|
86
|
-
platform: "64bit Amazon Linux 2016.09 v2.2.0 running Docker 1.11.2"
|
87
|
-
conventions:
|
88
|
-
app_name_pattern: !ruby/regexp /\w+-(\w+)-\w+/
|
89
|
-
```
|
90
|
-
|
91
|
-
In the example above, the capture group is the second word and this will result in:
|
92
|
-
|
93
|
-
<pre>
|
94
|
-
environment_name: prod-hi-web
|
95
|
-
application_name: hi
|
96
|
-
</pre>
|
97
|
-
|
98
|
-
|
99
|
-
The default setting is located at [lib/jack/default/settings.yml](https://github.com/tongueroo/jack/blob/master/lib/jack/default/settings.yml).
|
100
|
-
|
101
|
-
You can also override the application name convention from the cli with the `--app` flag. Examples are provided below.
|
102
|
-
|
103
|
-
### Creating Environments
|
104
|
-
|
105
|
-
If you do not yet have EB environment simply create an EB environment with jack and then you can download the initial EB config file it afterwards. To create a EB environment using jack without an initial config file.
|
106
|
-
|
107
|
-
```bash
|
108
|
-
$ git clone https://github.com/tongueroo/sinatra
|
109
|
-
$ cd sinatra
|
110
|
-
$ jack create hi-web-stag-1
|
111
|
-
```
|
112
|
-
|
113
|
-
The big benefit of using jack though is the ability to create EB environments based on previously saved configuration files. So now you can download the configuration file from the newly created hi-web-stag-1 environment and version control them.
|
114
|
-
|
115
|
-
```bash
|
116
|
-
$ jack config get hi-web-stag-1
|
117
|
-
```
|
118
|
-
|
119
|
-
This above saves the configuration file at `jack/cfg/hi-web-stag-1.cfg.yml`. Here is an [example](https://gist.github.com/tongueroo/5791a4575a71cb664d48e4e8b29791b3) of what the config file.
|
120
|
-
|
121
|
-
If you would like to save the config file under a different path, you can use the `-c` option.
|
122
|
-
|
123
|
-
```bash
|
124
|
-
$ jack config get hi-web-stag-1 -c my-config
|
125
|
-
```
|
126
|
-
|
127
|
-
This saves the config file to `jack/cfg/my-config.cfg.yml` looks like.
|
128
|
-
|
129
|
-
You can then create different environments using any of the saved config files.
|
130
|
-
|
131
|
-
```bash
|
132
|
-
$ jack create -c my-config hi-web-stag-2 # creates environment using jack/cfg/myconfig.cfg.yml
|
133
|
-
```
|
134
|
-
|
135
|
-
If the project is brand new and has never had `eb init` ran on it before like a project that has been newly git cloned. Then calling any of the jack commands will automatically call `eb init` in the project. `eb init` requires the platform flag in order to avoid prompting. The default platform is "64bit Amazon Linux 2016.09 v2.2.0 running Docker 1.11.2". But you can override that by creating an `~/.jack/settings.yml` or `jack/settings.yml` within the project folder and setting the `create.platform` key.
|
59
|
+
The example above means the EB application name will be `hi` and the environment name will be `hi-web-prod`. By convention, the first word, separated by a '-', of the environment name is the application name. This convention can be overridden easily via by configuring the [settings](http://jack-eb.com/docs/settings/). It is also possible to override the application name convention from the cli with the `--app` flag.
|
136
60
|
|
137
|
-
|
61
|
+
## Quick Usage
|
138
62
|
|
63
|
+
Here's a quick overview of how to use jack:
|
139
64
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
65
|
+
```sh
|
66
|
+
brew cask install boltopslabs/software/bolts
|
67
|
+
git clone https://github.com/tongueroo/hi # demo sinatra app
|
68
|
+
cd hi
|
69
|
+
jack create hi-web-stag # creates a EB App named hi and EB Environment named hi-web-stag
|
70
|
+
jack download hi-web-stag
|
71
|
+
# ... make adjustments to jack/cfg/hi-web-stag.yml ...
|
72
|
+
jack upload hi-web-stag
|
148
73
|
```
|
149
|
-
$ jack config get hi-web-prod-1
|
150
74
|
|
151
|
-
|
152
|
-
```
|
75
|
+
See [jack-eb.com](http://jack-eb.com) for full documentation.
|
153
76
|
|
154
|
-
|
77
|
+
## Contributing
|
155
78
|
|
156
|
-
|
79
|
+
Everyone can contribute to make jack better. Please fork the project and open a pull request! We love your pull requests. Contributions are encouraged and welcomed!
|
157
80
|
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
$ jack config apply hi-web-prod-1 --app customappname
|
164
|
-
```
|
165
|
-
|
166
|
-
This will save the config to `jack/cfg/hi-web-prod-1.cfg.yml`.
|
167
|
-
|
168
|
-
You will notice that the `eb config apply` command prompts you with the diff and asks for confirmation before applying. You can bypass the prompt with the `--sure` option.
|
169
|
-
|
170
|
-
#### Diff Config - Comparing your local config to the live environment config
|
171
|
-
|
172
|
-
You can use the diff command directly to compare your local config to what configs the environment is actually using is useful. To see the diff.
|
173
|
-
|
174
|
-
```
|
175
|
-
$ jack config diff hi-web-prod-1
|
176
|
-
```
|
177
|
-
|
178
|
-
A note about the configs. They are formatted so that the keys are sorted. This has been done so the diffs are actually useful. It is also recommended you install colordiff so you can see the diff output colorized. You can also specify your own diff viewer via the `JACK_DIFF` environment variable.
|
179
|
-
|
180
|
-
To use a your own diff viewer, add this to your `~/.profile`:
|
181
|
-
|
182
|
-
```
|
183
|
-
$ export JACK_DIFF=colordiff
|
184
|
-
```
|
185
|
-
|
186
|
-
### More Help
|
187
|
-
|
188
|
-
You can get help information from the CLI. Examples:
|
189
|
-
|
190
|
-
<pre>
|
191
|
-
$ jack help
|
192
|
-
$ jack create help
|
193
|
-
$ jack config get help
|
194
|
-
$ jack config apply help
|
195
|
-
$ jack config sort help
|
196
|
-
</pre>
|
81
|
+
1. Fork it
|
82
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
83
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
84
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
85
|
+
5. Create new Pull Request
|
data/docs/CNAME
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
jack-eb.com
|
data/docs/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Jack Documentation
|
2
2
|
|
3
|
-
This project powers the jack documementation website: [
|
3
|
+
This project powers the jack documementation website: [jack-eb.com](http://jack-eb.com). It is a static website generated by [Jekyll](https://jekyllrb.com/).
|
4
4
|
|
5
5
|
## Contributing
|
6
6
|
|
data/docs/_config.yml
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
# Site settings
|
2
2
|
title: Jack
|
3
3
|
email: tongueroo@gmail.com
|
4
|
-
url:
|
5
|
-
description: "Manage your AWS Elastic Beanstalk Jack environments easily
|
4
|
+
url: http://jack-eb.com
|
5
|
+
description: "Manage your AWS Elastic Beanstalk Jack environments easily"
|
6
6
|
keywords: "Jack, AWS Elastic Beanstalk, DevOps, Infrastructure, BoltOps, Tools, Producitivity, Documentation"
|
7
7
|
skills: ""
|
8
8
|
meta_author: Tung Nguyen
|
9
9
|
|
10
10
|
# Google webmaster tools
|
11
11
|
google_verify:
|
12
|
+
google_analytics: UA-98684555-5
|
12
13
|
|
13
14
|
# https://ssl.bing.com/webmaster/configure/verify/ownership Option 2 content= goes here
|
14
15
|
bing_verify:
|
data/docs/_docs/conventions.md
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
---
|
2
|
+
title: Installation
|
3
|
+
---
|
4
|
+
|
5
|
+
Jack follows a convention for the environment and application name. This is done in order to keep the jack commands simple and short. The convention is:
|
6
|
+
|
7
|
+
<pre>
|
8
|
+
environment_name: [app]-[role]-[env]
|
9
|
+
application_name: [app]
|
10
|
+
</pre>
|
11
|
+
|
12
|
+
A concrete example is helpful:
|
13
|
+
|
14
|
+
<pre>
|
15
|
+
environment_name: hi-web-prod
|
16
|
+
application_name: hi
|
17
|
+
</pre>
|
18
|
+
|
19
|
+
The example above means the EB application name will be `hi` and the environment name will be `hi-web-prod`. By convention, the first word, separated by a '-', of the environment name is the application name.
|
20
|
+
|
21
|
+
This convention can be overridden easily via by creating a `~/.jack/settings.yml` or `jack/settings.yml` within the project and defining your own regular expression with the `conventions.app_name_pattern` key. The regexp is a ruby regexp and must have 1 capture group. The capture group is used to determine the application name. Here is an example:
|
22
|
+
|
23
|
+
```yaml
|
24
|
+
create:
|
25
|
+
keyname: default
|
26
|
+
platform: "64bit Amazon Linux 2017.03 v2.6.0 running Docker 1.12.6"
|
27
|
+
conventions:
|
28
|
+
app_name_pattern: !ruby/regexp /\w+-(\w+)-\w+/
|
29
|
+
```
|
30
|
+
|
31
|
+
In the example above, the capture group is the second word and this will result in:
|
32
|
+
|
33
|
+
<pre>
|
34
|
+
environment_name: prod-hi-web
|
35
|
+
application_name: hi
|
36
|
+
</pre>
|
37
|
+
|
38
|
+
|
39
|
+
The default setting is located at [lib/jack/default/settings.yml](https://github.com/tongueroo/jack/blob/master/lib/jack/default/settings.yml).
|
40
|
+
|
41
|
+
You can also override the application name convention from the cli with the `--app` flag. Examples are provided below.
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/jack-help.md %}">Back</a>
|
46
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/settings.md %}">Next Step</a>
|
47
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
48
|
+
|
data/docs/_docs/install.md
CHANGED
@@ -10,6 +10,8 @@ If you want to quickly install jack without having to worry about jack's depende
|
|
10
10
|
brew cask install boltopslabs/software/bolts
|
11
11
|
```
|
12
12
|
|
13
|
+
The bolts installer will also automatically install the [aws cli](https://aws.amazon.com/documentation/cli/) and the [aws eb cli3](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3.html) dependencies for you. You don't have to worry about it!
|
14
|
+
|
13
15
|
For more information about the Bolts Toolbelt or to get an installer for another operating system visit: [https://boltops.com/toolbelt](https://boltops.com/toolbelt)
|
14
16
|
|
15
17
|
### Install with RubyGems
|
@@ -26,7 +28,9 @@ Or you can add jack to your Gemfile in your project if you are working with a ru
|
|
26
28
|
gem "jack-eb"
|
27
29
|
{% endhighlight %}
|
28
30
|
|
29
|
-
|
31
|
+
#### Additional Depedencies
|
32
|
+
|
33
|
+
If you are installing jack via RubyGems, you will also need to install jack's additional dependencies: the [aws cli](https://aws.amazon.com/documentation/cli/) and the [aws eb cli3](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3.html). If you have used the bolts installer then you do not have to worry about installing these additional dependencies.
|
30
34
|
|
31
35
|
On a Mac OS system, you can use homebrew:
|
32
36
|
|
@@ -44,5 +48,7 @@ On other operating systems, follow Amazon Web Services' official installation gu
|
|
44
48
|
* [Install the Elastic Beanstalk Command Line Interface (EB CLI)](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html)
|
45
49
|
|
46
50
|
|
47
|
-
<a class="btn btn-basic" href="
|
48
|
-
<a class="btn btn-primary" href="{% link _docs/structure.md %}">Next Step</a>
|
51
|
+
<a id="prev" class="btn btn-basic" href="{% link docs.md %}">Back</a>
|
52
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/structure.md %}">Next Step</a>
|
53
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
54
|
+
|
data/docs/_docs/jack-apply.md
CHANGED
@@ -7,7 +7,7 @@ title: jack apply
|
|
7
7
|
Now let's make some changes to the Elastic Beanstalk environment. Let's change the AutoScaling RollingUpdateEnabled from `true` to `false`. Here is the line for that setting:
|
8
8
|
|
9
9
|
```yaml
|
10
|
-
RollingUpdateEnabled:
|
10
|
+
RollingUpdateEnabled: false
|
11
11
|
```
|
12
12
|
|
13
13
|
|
@@ -39,16 +39,23 @@ Notice that this time when jack compares the configuration you see the changes t
|
|
39
39
|
|
40
40
|
By allowing you to preview the changes and prompting for your confirmation, jack prevents you from accidentally overriding their change. This saves later headaches and confusion when changes "suddenly" disappear.
|
41
41
|
|
42
|
-
|
43
42
|
You can now download the updated configuration first and then re-add your changes.
|
44
43
|
|
45
44
|
```
|
46
|
-
jack
|
45
|
+
jack get hi-web-stag
|
47
46
|
# add back in your changes to `jack/cfg/hi-web-stag.cfg.yml
|
48
|
-
jack
|
47
|
+
jack apply hi-web-stag
|
48
|
+
```
|
49
|
+
|
50
|
+
If you would like to use a different app name you can use the `--app` option.
|
51
|
+
|
52
|
+
```sh
|
53
|
+
jack apply hi-web-stag --app myapp
|
49
54
|
```
|
50
55
|
|
51
56
|
You are now set! Jack allows you codify the infrastructure code and then enables you to apply those changes safely.
|
52
57
|
|
53
|
-
<a class="btn btn-basic" href="{% link _docs/jack-get.md %}">Back</a>
|
54
|
-
<a class="btn btn-primary" href="{% link _docs/jack-diff.md %}">Next Step</a>
|
58
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/jack-get.md %}">Back</a>
|
59
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/jack-diff.md %}">Next Step</a>
|
60
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
61
|
+
|
data/docs/_docs/jack-create.md
CHANGED
@@ -5,10 +5,10 @@ title: jack create
|
|
5
5
|
Run the following command to create an Elastic Beanstalk Environment:
|
6
6
|
|
7
7
|
```sh
|
8
|
-
jack create hi-web-
|
8
|
+
jack create hi-web-stag
|
9
9
|
```
|
10
10
|
|
11
|
-
The above command will automatically create an Elastic Beanstalk application called **hi** and an environment called **hi-web-
|
11
|
+
The above command will automatically create an Elastic Beanstalk application called **hi** and an environment called **hi-web-stag**. Jack follows a naming convention scheme: `[app]-[role]-[env]`. Jack automatically separates the words by dashes and takes the first word using that as the app name. This is how jack knows how to create an Elastic Beanstalk application named **hi** without you having to tell it that. The naming convention can be easily [overridden]({% link _docs/conventions.md %}). The naming conventions helps provide guidance for best practices and dramatically simplies the tools usage. Things just work.
|
12
12
|
|
13
13
|
After a few minutes you should see an environment fully spun up in Elastic Beanstalk's Console:
|
14
14
|
|
@@ -16,5 +16,7 @@ After a few minutes you should see an environment fully spun up in Elastic Beans
|
|
16
16
|
|
17
17
|
In the next step, you'll download the configuration from the newly created environment.
|
18
18
|
|
19
|
-
<a class="btn btn-basic" href="{% link _docs/tutorial.md %}">Back</a>
|
20
|
-
<a class="btn btn-primary" href="{% link _docs/jack-get.md %}">Next Step</a>
|
19
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/tutorial.md %}">Back</a>
|
20
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/jack-get.md %}">Next Step</a>
|
21
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
22
|
+
|
data/docs/_docs/jack-deploy.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
title: jack deploy
|
3
3
|
---
|
4
4
|
|
5
|
-
So far we have been using an empty folder as our project to mainly demonstrate jack's
|
5
|
+
So far we have been using an empty folder as our project to mainly demonstrate jack's ability to download and manage configuration files. Jack can also deploy application code to the Elastic Beanstalk environment. For this next step, we will deploy a small test sinatra app available on GitHub at [tongueroo/sinatra](https://github.com/tongueroo/sinatra).
|
6
6
|
|
7
7
|
Clone the project and cd into it:
|
8
8
|
|
@@ -27,5 +27,7 @@ The jack deploy command simply is a wrapper command to the `eb deploy` command.
|
|
27
27
|
EB_OPTION='--nohang' jack deploy hi-web-stag
|
28
28
|
```
|
29
29
|
|
30
|
-
<a class="btn btn-basic" href="{% link _docs/jack-diff.md %}">Back</a>
|
31
|
-
<a class="btn btn-primary" href="{% link _docs/jack-terminate.md %}">Next Step</a>
|
30
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/jack-diff.md %}">Back</a>
|
31
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/jack-terminate.md %}">Next Step</a>
|
32
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
33
|
+
|
data/docs/_docs/jack-diff.md
CHANGED
@@ -20,5 +20,13 @@ By default, `jack diff` cleans up after itself and removes the originally downlo
|
|
20
20
|
jack diff hi-web-stag --dirty
|
21
21
|
```
|
22
22
|
|
23
|
-
|
24
|
-
|
23
|
+
The diffs are formatted so that their keys are sorted. This has been done so the diffs are actually useful. It is also recommended you install colordiff so you can see the diff output colorized. You can also specify your own diff viewer via the `JACK_DIFF` environment variable. To use a your own diff viewer, add this to your `~/.profile`:
|
24
|
+
|
25
|
+
```sh
|
26
|
+
$ export JACK_DIFF=colordiff
|
27
|
+
```
|
28
|
+
|
29
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/jack-apply.md %}">Back</a>
|
30
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/jack-deploy.md %}">Next Step</a>
|
31
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
32
|
+
|
data/docs/_docs/jack-get.md
CHANGED
@@ -8,7 +8,7 @@ Run the following command to download the configuration from the Elastic Beansta
|
|
8
8
|
jack get hi-web-stag
|
9
9
|
```
|
10
10
|
|
11
|
-
You should something similar to this:
|
11
|
+
You should see something similar to this:
|
12
12
|
|
13
13
|
<img src="/img/tutorials/jack-get.png" class="doc-photo" />
|
14
14
|
|
@@ -45,7 +45,28 @@ Platform:
|
|
45
45
|
Amazon Linux/2.1.0
|
46
46
|
```
|
47
47
|
|
48
|
-
As you can see
|
48
|
+
As you can see the configuration file contains everything there is to know about the Elastic Beanstalk environment. These settings include ELB behavior, VPC, LaunchConfiguration, AutoScaling settings, hard drive size, environment variables, etc. With this file you can completely rebuild the environment and even "clone" it across Elastic Beanstalk applications.
|
49
|
+
|
50
|
+
If you would like to save the config file under a different path, you can use the `-c` option.
|
51
|
+
|
52
|
+
```sh
|
53
|
+
jack get hi-web-stag -c my-config
|
54
|
+
```
|
55
|
+
|
56
|
+
This saves the config file to `jack/cfg/my-config.cfg.yml`. You can also override which config file to use with the `-c` flag when creating EB environments like so:
|
57
|
+
|
58
|
+
```sh
|
59
|
+
jack create hi-web-stag-2 -c my-config
|
60
|
+
```
|
61
|
+
|
62
|
+
If you would like to override the application name convention you can use the `--app` option.
|
63
|
+
|
64
|
+
```sh
|
65
|
+
jack create hi-web-stag-2 --app myapp
|
66
|
+
```
|
67
|
+
|
68
|
+
|
69
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/jack-create.md %}">Back</a>
|
70
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/jack-apply.md %}">Next Step</a>
|
71
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
49
72
|
|
50
|
-
<a class="btn btn-basic" href="{% link _docs/jack-create.md %}">Back</a>
|
51
|
-
<a class="btn btn-primary" href="{% link _docs/jack-apply.md %}">Next Step</a>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
title: jack help
|
3
|
+
---
|
4
|
+
|
5
|
+
You can run help for quick help information right at the cli. Example:
|
6
|
+
|
7
|
+
```sh
|
8
|
+
jack help
|
9
|
+
```
|
10
|
+
|
11
|
+
You can append `help`, `-h` or `--help` to the end of any command to get more help information about that specific command. These all work.
|
12
|
+
|
13
|
+
```sh
|
14
|
+
jack get help
|
15
|
+
jack apply --help
|
16
|
+
jack create -h
|
17
|
+
```
|
18
|
+
|
19
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/jack-terminate.md %}">Back</a>
|
20
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/conventions.md %}">Next Step</a>
|
21
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
22
|
+
|
@@ -16,5 +16,7 @@ jack terminate hi-web-stag --sure
|
|
16
16
|
|
17
17
|
Congratulations! 🍾 You have created Elastic Beanstalk environments, downloaded and applied configuration changes, deployed new code to the environment and cleaned up after youself by terminating the environment. You have successfully used jack to manage an Elastic Beanstalk environment.
|
18
18
|
|
19
|
-
<a class="btn btn-basic" href="{% link _docs/jack-deploy.md %}">Back</a>
|
20
|
-
<a class="btn btn-primary" href="{% link _docs/
|
19
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/jack-deploy.md %}">Back</a>
|
20
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/jack-help.md %}">Next Step</a>
|
21
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
22
|
+
|
data/docs/_docs/next-steps.md
CHANGED
@@ -10,7 +10,8 @@ From here, there are a few resources that can help you continue along:
|
|
10
10
|
* Submit an issue
|
11
11
|
* Write a blog post describing how you are using jack, or an interesting problem jack has allowed you to solve
|
12
12
|
|
13
|
-
Everyone can contribute to make jack better, including the documentation. These docs
|
13
|
+
Everyone can contribute to make jack better, including the documentation. These docs in the jack repo located [docs folder](https://github.com/tongueroo/jack/tree/master/docs). Please fork the project and open a pull request! We love your pull requests. Contributions are encouraged and welcomed!
|
14
14
|
|
15
|
-
<a class="btn btn-basic" href="{% link _docs/
|
16
|
-
<a class="btn btn-primary" href="{% link articles.md %}">Next Step</a>
|
15
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/settings.md %}">Back</a>
|
16
|
+
<a id="next" class="btn btn-primary" href="{% link articles.md %}">Next Step</a>
|
17
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
@@ -0,0 +1,70 @@
|
|
1
|
+
---
|
2
|
+
title: Settings
|
3
|
+
---
|
4
|
+
|
5
|
+
Some of jack's behavior can be configured by creating a `~/.jack/settings.yml` or `jack/settings.yml` within the project. The options from the files get merged with the following precedence:
|
6
|
+
|
7
|
+
1. current folder - The current folder's `jack/settings.yml` values take the highest precedence.
|
8
|
+
2. user - The user's `~/.jack/settings.yml` values take the second highest precedence.
|
9
|
+
3. default - The [default settings](https://github.com/tongueroo/jack/blob/master/lib/jack/default/settings.yml) bundled with the tool takes the lowest precedence.
|
10
|
+
|
11
|
+
Let's take a look at an example jack `settings.yml`:
|
12
|
+
|
13
|
+
```yaml
|
14
|
+
create:
|
15
|
+
keyname: default
|
16
|
+
platform: "64bit Amazon Linux 2017.03 v2.6.0 running Docker 1.12.6"
|
17
|
+
conventions:
|
18
|
+
app_name_pattern: !ruby/regexp /(\w+)-\w+-\w+/
|
19
|
+
```
|
20
|
+
|
21
|
+
The table below covers what each setting does:
|
22
|
+
|
23
|
+
Setting | Description
|
24
|
+
------------- | -------------
|
25
|
+
`create.keyname` | This sets the keyname to use when creating Elastic Beanstalk environment. This is the ssh key you can use to login into the server.
|
26
|
+
`create.platform` | The solution stack to use when launching the EB environment. You can use `aws elasticbeanstalk list-available-solution-stacks` to get a full list of the available EB solution stacks. This is covered in more detail below.
|
27
|
+
`conventions.app_name_pattern` | This allows you to override the jack naming convention and determines how jack extracts the application name from the environment. This is covered in detailed in [Conventions]({% link _docs/conventions.md %}).
|
28
|
+
|
29
|
+
### Override Convention
|
30
|
+
|
31
|
+
Jack follows a convention for the environment and application name. This is done in order to keep the jack commands simple and short. The convention is:
|
32
|
+
|
33
|
+
<pre>
|
34
|
+
environment_name: [app]-[role]-[env]
|
35
|
+
application_name: [app]
|
36
|
+
</pre>
|
37
|
+
|
38
|
+
A concrete example is helpful:
|
39
|
+
|
40
|
+
<pre>
|
41
|
+
environment_name: hi-web-prod
|
42
|
+
application_name: hi
|
43
|
+
</pre>
|
44
|
+
|
45
|
+
The example above means the EB application name will be `hi` and the environment name will be `hi-web-prod`. By convention, the first word, separated by a '-', of the environment name is the application name.
|
46
|
+
|
47
|
+
This convention can be overridden easily via by configuring the the `conventions.app_name_pattern` setting. The value is a ruby regexp and must have 1 capture group. The capture group determines the application name. Here is an example override:
|
48
|
+
|
49
|
+
```yaml
|
50
|
+
create:
|
51
|
+
keyname: default
|
52
|
+
platform: "64bit Amazon Linux 2016.09 v2.2.0 running Docker 1.11.2"
|
53
|
+
conventions:
|
54
|
+
app_name_pattern: !ruby/regexp /\w+-(\w+)-\w+/
|
55
|
+
```
|
56
|
+
|
57
|
+
In the example above, the capture group is the second word and this will result in:
|
58
|
+
|
59
|
+
<pre>
|
60
|
+
environment_name: prod-hi-web
|
61
|
+
application_name: hi
|
62
|
+
</pre>
|
63
|
+
|
64
|
+
### Chosing Solution Stack Platform
|
65
|
+
|
66
|
+
If the project is brand new and has never had `eb init` ran on it before then calling any of the jack commands will automatically call `eb init` in the project. `eb init` sets the platform and defaults to "64bit Amazon Linux 2017.03 v2.6.0 running Docker 1.12.6". You can override that by setting the `create.platform` key.
|
67
|
+
|
68
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/conventions.md %}">Back</a>
|
69
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/next-steps.md %}">Next Step</a>
|
70
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
data/docs/_docs/structure.md
CHANGED
@@ -51,7 +51,9 @@ Platform:
|
|
51
51
|
|
52
52
|
The configuration file provides everything that is required to rebuild the Elastic Beanstalk environment.
|
53
53
|
|
54
|
-
Now that you now where the jack configurations are
|
54
|
+
Now that you now where the jack configurations are located and what they look like. Let use it!
|
55
|
+
|
56
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/install.md %}">Back</a>
|
57
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/tutorial.md %}">Next Step</a>
|
58
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
55
59
|
|
56
|
-
<a class="btn btn-basic" href="{% link _docs/install.md %}">Back</a>
|
57
|
-
<a class="btn btn-primary" href="{% link _docs/tutorial.md %}">Next Step</a>
|
data/docs/_docs/tutorial.md
CHANGED
@@ -6,5 +6,7 @@ In the next sections, we'll walk through using jack in detail. You will create a
|
|
6
6
|
|
7
7
|
Let's start!
|
8
8
|
|
9
|
-
<a class="btn btn-basic" href="{% link _docs/structure.md %}">Back</a>
|
10
|
-
<a class="btn btn-primary" href="{% link _docs/jack-create.md %}">Next Step</a>
|
9
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/structure.md %}">Back</a>
|
10
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/jack-create.md %}">Next Step</a>
|
11
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
12
|
+
|
data/docs/_includes/about.html
CHANGED
@@ -9,10 +9,10 @@
|
|
9
9
|
</div>
|
10
10
|
<div class="row">
|
11
11
|
<div class="col-lg-4 col-lg-offset-2">
|
12
|
-
<p>Jack is a tool to manage AWS Elastic Beanstalk environments. Jack is a wrapper tool around the aws eb cli3 tool. Jack allows you to create environments using the saved template configuration file generated by <code>eb config save</code>. Jack moves these generated config file to the jack/cfg folder of your project and manages the
|
12
|
+
<p>Jack is a tool to manage AWS Elastic Beanstalk environments. Jack is a wrapper tool around the aws eb cli3 tool. Jack allows you to create environments using the saved template configuration file generated by <code>eb config save</code>. Jack moves these generated config file to the jack/cfg folder of your project and manages the config files from there.</p>
|
13
13
|
</div>
|
14
14
|
<div class="col-lg-4">
|
15
|
-
<p>Jack provides a <code>jack apply</code> command to update the Elastic Beanstalk environment. Before uploading the new configuration to Elastic Beanstalk jack first downloads the current configuration and then does a diff on the changes that you are about apply. This gives a helpful preview of exactly will be
|
15
|
+
<p>Jack provides a <code>jack apply</code> command to update the Elastic Beanstalk environment. Before uploading the new configuration to Elastic Beanstalk jack first downloads the current configuration and then does a diff on the changes that you are about apply. This gives a helpful preview of exactly what will be changed. This is particularly helpful when changes are made through the Elastic Beanstalk GUI by multiple developers and are out of sync with what you thought they were.</p>
|
16
16
|
</div>
|
17
17
|
</div>
|
18
18
|
</div>
|
data/docs/_includes/css/jack.css
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
</p>
|
6
6
|
<ul>
|
7
7
|
<li><a href="{{ site.gh_url }}/blob/master/docs/{{ page.path }}" target="_blank">Suggest an edit to this page</a> (here's the <a href="{{ site.gh_url }}/blob/master/CONTRIBUTING.md" target="_blank">contributing guide</a>).</li>
|
8
|
-
<li><a href="{{ site.gh_url }}/issues/new?body=This%20issue%20is%20about%20<http://
|
8
|
+
<li><a href="{{ site.gh_url }}/issues/new?body=This%20issue%20is%20about%20<http://jack-eb.com{{ page.url }}>%20(source%20file%3A%20<{{ site.gh_url }}/blob/master/docs/{{ page.path }}>)" target="_blank">Open an issue about this page</a> to report a problem.</li>
|
9
9
|
</ul>
|
10
10
|
|
11
11
|
</div>
|
data/docs/_includes/footer.html
CHANGED
@@ -6,8 +6,9 @@
|
|
6
6
|
<div class="footer-col col-md-4">
|
7
7
|
<h3>More Tools</h3>
|
8
8
|
<ul class="list-unstyled tools">
|
9
|
+
<li><a href="http://sonic-screwdriver.cloud">Sonic Screwdriver</a></li>
|
9
10
|
<li><a href="http://lono.cloud">Lono</a></li>
|
10
|
-
<li><a href="
|
11
|
+
<li><a href="http://ufoships.com">Ufo</a></li>
|
11
12
|
<li><a href="https://boltops.com/toolbelt">Toolbelt</a></li>
|
12
13
|
</ul>
|
13
14
|
</div>
|
@@ -42,7 +43,7 @@
|
|
42
43
|
|
43
44
|
<!-- Scroll to Top Button (Only visible on small and extra-small screen sizes) -->
|
44
45
|
<div class="scroll-top page-scroll visible-xs visible-sm">
|
45
|
-
<a class="btn btn-primary" href="#page-top">
|
46
|
+
<a id="next" class="btn btn-primary" href="#page-top">
|
46
47
|
<i class="fa fa-chevron-up"></i>
|
47
48
|
</a>
|
48
49
|
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<!-- Google analytics -->
|
2
|
+
<script>
|
3
|
+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
4
|
+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
5
|
+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
6
|
+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
7
|
+
|
8
|
+
ga('create', '{{ site.google_analytics }}', 'auto');
|
9
|
+
ga('send', 'pageview');
|
10
|
+
</script>
|
data/docs/_includes/header.html
CHANGED
@@ -3,11 +3,11 @@
|
|
3
3
|
<div class="container">
|
4
4
|
<div class="row">
|
5
5
|
<div class="col-lg-12">
|
6
|
-
<img class="img-responsive" src="/img/
|
6
|
+
<img class="img-responsive" src="/img/logos/jack-logo.png" alt="">
|
7
7
|
<div class="intro-text">
|
8
8
|
<span class="name">{{ site.title }}</span>
|
9
9
|
<hr class="star-light">
|
10
|
-
<span class="skills">{{ site.
|
10
|
+
<span class="skills">{{ site.description }}</span>
|
11
11
|
</div>
|
12
12
|
</div>
|
13
13
|
</div>
|
data/docs/_includes/js.html
CHANGED
data/docs/_includes/nav.html
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
<span class="icon-bar"></span>
|
10
10
|
<span class="icon-bar"></span>
|
11
11
|
</button>
|
12
|
-
<a class="navbar-brand" href="/#page-top"><img class="navbar-logo" src="/img/logos/
|
12
|
+
<a class="navbar-brand" href="/#page-top"><img class="navbar-logo" src="/img/logos/jack-logo.png" />{{ site.title }}</a>
|
13
13
|
</div>
|
14
14
|
|
15
15
|
<!-- Collect the nav links, forms, and other content for toggling -->
|
data/docs/_includes/subnav.html
CHANGED
@@ -1,23 +1,26 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
1
|
+
<div class="col-md-3 content-nav">
|
2
|
+
<ul>
|
3
|
+
<li><a href="{% link quick-start.md %}">Quick Start</a></li>
|
4
|
+
<li><a href="{% link docs.md %}">Docs</a>
|
5
|
+
<ul>
|
6
|
+
<li><a href="{% link _docs/install.md %}">Installation</a></li>
|
7
|
+
<li><a href="{% link _docs/structure.md %}">Structure</a></li>
|
8
|
+
</ul>
|
9
|
+
</li>
|
10
|
+
<li><a href="{% link _docs/tutorial.md %}">Tutorial</a>
|
11
|
+
<ul class="build-scratch">
|
12
|
+
<li><a href="{% link _docs/jack-create.md %}">jack create</a></li>
|
13
|
+
<li><a href="{% link _docs/jack-get.md %}">jack get</a></li>
|
14
|
+
<li><a href="{% link _docs/jack-apply.md %}">jack apply</a></li>
|
15
|
+
<li><a href="{% link _docs/jack-diff.md %}">jack diff</a></li>
|
16
|
+
<li><a href="{% link _docs/jack-deploy.md %}">jack deploy</a></li>
|
17
|
+
<li><a href="{% link _docs/jack-terminate.md %}">jack terminate</a></li>
|
18
|
+
<li><a href="{% link _docs/jack-help.md %}">jack help</a></li>
|
19
|
+
</ul>
|
20
|
+
</li>
|
21
|
+
<li><a href="{% link _docs/conventions.md %}">Conventions</a></li>
|
22
|
+
<li><a href="{% link _docs/settings.md %}">Settings</a></li>
|
23
|
+
<li><a href="{% link _docs/next-steps.md %}">Next Steps</a></li>
|
24
|
+
<li><a href="{% link articles.md %}">Articles</a></li>
|
25
|
+
</ul>
|
26
|
+
</div>
|
data/docs/articles.md
CHANGED
@@ -3,3 +3,5 @@ title: Articles
|
|
3
3
|
---
|
4
4
|
|
5
5
|
* [Jack and the Elastic Beanstalk —Easy Way to Manage AWS Elastic Beanstalk Environments](https://hackernoon.com/jack-and-the-elastic-beanstalk-easily-manage-aws-environments-3ab496f08ad2)
|
6
|
+
|
7
|
+
<a id="prev" class="btn btn-basic" href="{% link _docs/next-steps.md %}">Back</a>
|
data/docs/docs.md
CHANGED
@@ -6,11 +6,13 @@ title: Docs
|
|
6
6
|
|
7
7
|
Jack is a tool to manage AWS Elastic Beanstalk environments. Jack is a wrapper tool around the aws eb cli3 tool. Jack allows you to create environments using the saved template configuration file generated by eb config save. Jack moves these generated config file to the jack/cfg folder of your project and manages the the config files from there.
|
8
8
|
|
9
|
-
Jack provides a `jack apply` command to update the Elastic Beanstalk environment. Before uploading the new configuration to Elastic Beanstalk jack first downloads the current configuration and then does a diff on the changes that you are about apply. This gives a helpful preview of exactly will be
|
9
|
+
Jack provides a `jack apply` command to update the Elastic Beanstalk environment. Before uploading the new configuration to Elastic Beanstalk jack first downloads the current configuration and then does a diff on the changes that you are about apply. This gives a helpful preview of exactly what will be changed. This is particularly helpful when changes are made through the Elastic Beanstalk GUI by multiple developers and are out of sync with what you thought they were.
|
10
10
|
|
11
11
|
<img src="/img/tutorials/jack-update.png" class="doc-photo" />
|
12
12
|
|
13
13
|
Next we'll cover different ways to install jack.
|
14
14
|
|
15
|
-
<a class="btn btn-basic" href="{% link quick-start.md %}">Back</a>
|
16
|
-
<a class="btn btn-primary" href="{% link _docs/install.md %}">Next Step</a>
|
15
|
+
<a id="prev" class="btn btn-basic" href="{% link quick-start.md %}">Back</a>
|
16
|
+
<a id="next" class="btn btn-primary" href="{% link _docs/install.md %}">Next Step</a>
|
17
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
18
|
+
|
Binary file
|
data/docs/js/nav.js
CHANGED
@@ -8,8 +8,6 @@ function onlyShow(className) {
|
|
8
8
|
}
|
9
9
|
|
10
10
|
$( document ).ready(function() {
|
11
|
-
// onlyShow(); // hides all level 2 links
|
12
|
-
|
13
11
|
var currentPath = $(location).attr('pathname');
|
14
12
|
|
15
13
|
// add active class to the subnav link based on the current page
|
@@ -18,15 +16,24 @@ $( document ).ready(function() {
|
|
18
16
|
});
|
19
17
|
activeLink.addClass("active");
|
20
18
|
|
21
|
-
//
|
22
|
-
|
23
|
-
|
24
|
-
//
|
25
|
-
|
26
|
-
//
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
19
|
+
// allows use to use arrow keys to move back and forward through the docs
|
20
|
+
var keymap = {};
|
21
|
+
|
22
|
+
// LEFT
|
23
|
+
keymap[ 37 ] = "#prev";
|
24
|
+
// RIGHT
|
25
|
+
keymap[ 39 ] = "#next";
|
26
|
+
|
27
|
+
$( document ).on( "keyup", function(event) {
|
28
|
+
var href,
|
29
|
+
selector = keymap[ event.which ];
|
30
|
+
// if the key pressed was in our map, check for the href
|
31
|
+
if ( selector ) {
|
32
|
+
href = $( selector ).attr( "href" );
|
33
|
+
if ( href ) {
|
34
|
+
// navigate where the link points
|
35
|
+
window.location = href;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
});
|
32
39
|
});
|
data/docs/quick-start.md
CHANGED
@@ -18,4 +18,6 @@ Congratulations! You have successfully created a Elastic Beanstalk environment,
|
|
18
18
|
|
19
19
|
Learn more in the next sections.
|
20
20
|
|
21
|
-
<a class="btn btn-primary" href="{% link docs.md %}">Next Step</a>
|
21
|
+
<a id="next" class="btn btn-primary" href="{% link docs.md %}">Next Step</a>
|
22
|
+
<p class="keyboard-tip">Pro tip: Use the <- and -> arrow keys to move back and forward.</p>
|
23
|
+
|
data/lib/jack/deploy.rb
CHANGED
@@ -53,8 +53,7 @@ module Jack
|
|
53
53
|
# source_location/repo/branch
|
54
54
|
# -p, --process enable preprocessing of the application version
|
55
55
|
command = "#{eb_bin} deploy#{eb_base_flags} #{@env_name} #{ENV['EB_OPTIONS']}"
|
56
|
-
|
57
|
-
# sh(command)
|
56
|
+
sh(command)
|
58
57
|
end
|
59
58
|
end
|
60
59
|
end
|
data/lib/jack/settings.rb
CHANGED
@@ -16,7 +16,7 @@ module Jack
|
|
16
16
|
default_file = File.expand_path("../default/settings.yml", __FILE__)
|
17
17
|
default = YAML.load_file(default_file)
|
18
18
|
|
19
|
-
@settings_yaml = default.merge(
|
19
|
+
@settings_yaml = default.merge(user.merge(project))
|
20
20
|
end
|
21
21
|
|
22
22
|
def home
|
data/lib/jack/ui.rb
CHANGED
data/lib/jack/util.rb
CHANGED
@@ -98,7 +98,7 @@ module Jack::Util
|
|
98
98
|
return @@aws_bin = ENV["JACK_AWS_BIN"] if ENV["JACK_AWS_BIN"]
|
99
99
|
|
100
100
|
which_aws = `which aws`.strip
|
101
|
-
return @@aws_bin = which_aws if which_aws
|
101
|
+
return @@aws_bin = which_aws if which_aws != ''
|
102
102
|
|
103
103
|
embedded_aws = "/opt/bolts/embedded/bin/aws"
|
104
104
|
return @@aws_bin = embedded_aws if File.exist?(embedded_aws)
|
@@ -131,10 +131,10 @@ module Jack::Util
|
|
131
131
|
return @@eb_bin = ENV["JACK_EB_BIN"] if ENV["JACK_EB_BIN"]
|
132
132
|
|
133
133
|
which_eb = `which eb`.strip
|
134
|
-
return @@eb_bin = which_eb if which_eb
|
134
|
+
return @@eb_bin = which_eb if which_eb != ''
|
135
135
|
|
136
136
|
embedded_eb = "/opt/bolts/embedded/bin/eb"
|
137
|
-
return @@eb_bin = embedded_eb if File.exist?(
|
137
|
+
return @@eb_bin = embedded_eb if File.exist?(embedded_eb)
|
138
138
|
|
139
139
|
# if reach here we did not detect the eb binary
|
140
140
|
message = "ERROR: Unable to auto detect an eb executable. Please make sure you have installed the eb cli tool.\n"
|
data/lib/jack/version.rb
CHANGED
data/spec/lib/cli_spec.rb
CHANGED
@@ -17,25 +17,25 @@ describe Jack::CLI do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should upload and apply config to environment" do
|
20
|
-
out = execute("bin/jack
|
20
|
+
out = execute("bin/jack apply #{@args}")
|
21
21
|
# puts out
|
22
22
|
expect(out).to include('eb config save')
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should download config from environment" do
|
26
|
-
out = execute("bin/jack
|
26
|
+
out = execute("bin/jack get #{@args}")
|
27
27
|
# puts out
|
28
28
|
expect(out).to include("Config downloaded")
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should diff local config from eb environment config" do
|
32
|
-
out = execute("bin/jack
|
32
|
+
out = execute("bin/jack diff #{@args}")
|
33
33
|
# puts out
|
34
34
|
expect(out).to include("diff")
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should reformat the local config to a sorted yaml format" do
|
38
|
-
out = execute("bin/jack
|
38
|
+
out = execute("bin/jack sort #{@args}")
|
39
39
|
# puts out
|
40
40
|
expect(out).to include("Reformatted the local config")
|
41
41
|
end
|
@@ -28,7 +28,7 @@ describe Jack::EbConfig do
|
|
28
28
|
data = YAML.load_file(create.eb_config_path)
|
29
29
|
global = data['global']
|
30
30
|
expect(global['application_name']).to eq "hi"
|
31
|
-
expect(global['default_platform']).to
|
31
|
+
expect(global['default_platform']).to include("64bit Amazon Linux")
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
data/spec/lib/settings_spec.rb
CHANGED
@@ -20,8 +20,8 @@ describe Jack::Settings do
|
|
20
20
|
|
21
21
|
context "no custom project settings" do
|
22
22
|
it "flags uses defaults provided gem" do
|
23
|
-
project_flags = '--keyname "default" --platform "64bit Amazon Linux
|
24
|
-
expect(settings.create_flags).to
|
23
|
+
project_flags = '--keyname "default" --platform "64bit Amazon Linux'
|
24
|
+
expect(settings.create_flags).to include(project_flags)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jack-eb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -119,6 +119,7 @@ files:
|
|
119
119
|
- ".gitignore"
|
120
120
|
- ".rspec"
|
121
121
|
- CHANGELOG.md
|
122
|
+
- CONTRIBUTING.md
|
122
123
|
- Gemfile
|
123
124
|
- Guardfile
|
124
125
|
- LICENSE.txt
|
@@ -139,8 +140,10 @@ files:
|
|
139
140
|
- docs/_docs/jack-deploy.md
|
140
141
|
- docs/_docs/jack-diff.md
|
141
142
|
- docs/_docs/jack-get.md
|
143
|
+
- docs/_docs/jack-help.md
|
142
144
|
- docs/_docs/jack-terminate.md
|
143
145
|
- docs/_docs/next-steps.md
|
146
|
+
- docs/_docs/settings.md
|
144
147
|
- docs/_docs/structure.md
|
145
148
|
- docs/_docs/tutorial.md
|
146
149
|
- docs/_includes/about.html
|
@@ -158,6 +161,7 @@ files:
|
|
158
161
|
- docs/_includes/css/timeline.css
|
159
162
|
- docs/_includes/edit-on-github.html
|
160
163
|
- docs/_includes/footer.html
|
164
|
+
- docs/_includes/google_analytics.html
|
161
165
|
- docs/_includes/head.html
|
162
166
|
- docs/_includes/header.html
|
163
167
|
- docs/_includes/js.html
|
@@ -181,6 +185,7 @@ files:
|
|
181
185
|
- docs/docs.md
|
182
186
|
- docs/img/logos/boltops-logo-full.png
|
183
187
|
- docs/img/logos/boltops-logo.png
|
188
|
+
- docs/img/logos/jack-logo.png
|
184
189
|
- docs/img/profile.png
|
185
190
|
- docs/img/quotes/ben.jpg
|
186
191
|
- docs/img/tutorials/aws-eb-dashboard.png
|
@@ -205,7 +210,6 @@ files:
|
|
205
210
|
- docs/js/jquery.easing.min.js
|
206
211
|
- docs/js/nav.js
|
207
212
|
- docs/quick-start.md
|
208
|
-
- docs/screenshot.png
|
209
213
|
- docs/style.css
|
210
214
|
- jack.gemspec
|
211
215
|
- lib/jack.rb
|
data/docs/screenshot.png
DELETED
Binary file
|