ebi
ebi copied to clipboard
Simple CLI tool for ElasticBeanstalk with Docker.
EBI
Elastic Beanstalk Intelligence, Simple CLI tool for ElasticBeanstalk with Docker.
-
Deploying apps more intuitively
- Without git integration
- Switch-able
Dockerrun.aws.json
- Switch-able
docker-compose.yml
- Switch-able
.ebextensions/
Install
::
pip install ebi
Requires Python2.7 or 3.5
Usage
deploy
To deploy app, just type it on project root::
$ ebi deploy <app_name> <env_name>
This will
1. Create zip file including ``Dockerrun.aws.json`` and ``.ebextensions`` or ``docker-compose.yml`` and ``.ebextensions``
2. Uploading zip to S3 as same directory as ``awsebcli``.
3. Deploying app (by calling ``eb deploy`` with uploaded --version)
options:
* ``--version``: version label for app. default is timestamp.
* ``--prefix``: version prefix for app. It is added to timestamp.
* ``--description``: description for this version.
* ``--dockerrun``: File path used as ``Dockerrun.aws.json``.
* ``--docker-compose``: File path used as ``docker-compose.yml``.
* ``--ebext``: Directory path used as ``.ebextensions/``
* ``--profile``: Configured profile for AWS.
* ``--region``: region for AWS.
create
To create app, just type it on project root::
$ ebi create <app_name> <env_name> <cname_prefix>
This will
- Create zip file including
Dockerrun.aws.json
and.ebextensions
ordocker-compose.yml
and.ebextensions
- Uploading zip to S3 as same directory as
awsebcli
. - Creating app (by calling
eb create
with uploaded --version)
options:
-
--version
: version label for app. default is timestamp. -
--prefix
: version prefix for app. It is added to timestamp. -
--description
: description for this version. -
--dockerrun
: File path used asDockerrun.aws.json
. -
--docker-compose
: File path used asdocker-compose.yml
. -
--ebext
: Directory path used as.ebextensions/
-
--profile
: Configured profile for AWS. -
--region
: region for AWS. -
--cfg
: Configuration template to use.
bgdeploy
To Blue-Green deploye app, just type it on project root::
$ ebi bgdeploy <app_name> <blue_env_name> <green_env_name> <primary_env_cname>
This will
1. Create zip file including ``Dockerrun.aws.json`` and ``.ebextensions`` or ``docker-compose.yml`` and ``.ebextensions``
2. Uploading zip to S3 as same directory as ``awsebcli``.
3. Deploy new version to secondary environment which doen't have ``primary_env_cname``
(by calling ``eb deploy`` with uploaded --version)
4. Apply primary cname for deployed (secondary) environment
::
+-------+ +------+
| green | | blue |
+-------+ +------+
pri.elastic...com sec.elastic...com
^
|
3. deploy!
options:
* ``--noswap``: Skip swapping to just deploy secondary environment.
* ``--version``: version label for app. default is timestamp.
* ``--prefix``: version prefix for app. It is added to timestamp.
* ``--description``: description for this version.
* ``--dockerrun``: File path used as ``Dockerrun.aws.json``.
* ``--docker-compose``: File path used as ``docker-compose.yml``.
* ``--ebext``: Directory path used as ``.ebextensions/``
* ``--profile``: Configured profile for AWS.
* ``--region``: region for AWS.
* ``--capacity``: Increase the number of desired instances, the minimum size, and the maximum size of the standby environment to the same as the primary environment.
clonedeploy
To deploy app with cloning, just type it on project root::
$ ebi clonedeploy <app_name> <env_name> <cname_prefix>
This will
- Create clone of master environment for next version environment.
- Create zip file including
Dockerrun.aws.json
and.ebextensions
ordocker-compose.yml
and.ebextensions
- Uploading zip to S3 as same directory as
awsebcli
. - Deploy new version to next version (by calling
eb deploy
with uploaded --version) - Apply master cname for deployed (next version) environment
::
+--------+ +----------+
| master | =1.Clone=> | next ver |
+--------+ +----------+
master.elastic...com master-<timestamp>.elastic...com
^
|
4. deploy!
-
--noswap
: Skip swapping to just deploy secondary environment. -
--version
: version label for app. default is timestamp. -
--prefix
: version prefix for app. It is added to timestamp. -
--description
: description for this version. -
--dockerrun
: File path used asDockerrun.aws.json
. -
--docker-compose
: File path used asdocker-compose.yml
. -
--ebext
: Directory path used as.ebextensions/
-
--profile
: Configured profile for AWS. -
--region
: region for AWS.