DevOps Assignment
CI/CD flow for AWLESS (open source)
Status: ![Build Status](https://camo.githubusercontent.com/a496497b50e64118c370a70ef87d648bb55d4ff112ba674999d336e19d36a261/68747470733a2f2f6170692e7472617669732d63692e6f72672f74616c6b696d68692f61776c6573732e7376673f6272616e63683d6d6173746572)
About AWLESS
awless
is a powerful, innovative and small surface command line interface (CLI) to manage Amazon Web Services.
awless
stands out by providing the following features:
- small and hierarchical set of commands
- create and revert fully-fledged infrastructures through a new simple and powerful templating language
- local log of all your cloud modifications done through
awless
- exploration of your cloud infrastructure and resources relations, even offline using a local graph storage
- greater output's readability with numerous machine and human friendly formats
- ensure smart defaults & security best practices
- connect easily using awless' smart SSH to your private & public instances
Demo
Note that the video above is in APNG and requires a recent browser.
Awards : Top 50 Developer Tools of 2017, InfoWorld Bossie Awards 2017
More information:
Take the tour at Getting Started (wiki). Or read the introductory blog post about awless.
More articles:
- Simplified user management for AWS
- InfoWorld: Production-grade deployment of WordPress
- Easy create & tear down of a multi-AZ CockroachDB cluster
DevOps Assignment // About
Assignment objectives were:
- Choose and "containerize" an existing known open source project which doesn’t have a Docker repository.
- build a CI/CD Flow for the project (must have some level of unit testing).
Tools / Online account(s) required to complete this assignment:
- AWS Account
- Github Account
- Travis-CI Account
- Ansible
- Docker
CI/CD Implementation Guide
Follow this step-by-step tutorial to make your own awless
CI/CD flow.
-
Launch an AWS EC2 Instance with SSM Agent and SSM IAM Role (How-to)
-
Install Docker and Ansible on the instance On Amazon Linux use the following commands :
yum install git
yum install docker
pip uninstall ansible
pip install ansible
pip install docker-py
service docker start
-
Fork the Awless git repository to your account
-
Link your Travis-CI account with your GitHub account.
-
Create IAM programmatic user with SSM run-command privileges.
-
Encrypt the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY vars into your TravisCI project.
-
Add your AWS_REGION and AWS_INSTANCE_ID vars to your TravisCI Project.
Your environment variables should look like this photo:
- Commit and push changes to your Awless repository and check the flow.
- Enjoy !@
Apache License
awless
is an open source project created by Henri Binsztok, Quentin Bourgerie, Simon Caplette and François-Xavier Aguessy at WALLIX.
awless
is released under the Apache License and sponsored by Wallix.
Disclaimer: Awless allows for easy resource creation with your cloud provider;
we will not be responsible for any cloud costs incurred (even if you create a
million instances using awless templates).
Contributors are welcome! Please head to Contributing (wiki) to learn more.
Note that awless
uses triplestore another project developped at WALLIX.