Skip to main content

Automated Deployment of Lab Environments System (ADLES)

Project description

.. image:: https://badge.fury.io/py/ADLES.svg
:target: https://badge.fury.io/py/ADLES
:alt: PyPI Version
.. image:: https://travis-ci.org/GhostofGoes/ADLES.svg?branch=master
:target: https://travis-ci.org/GhostofGoes/ADLES
:alt: Build Status
.. image:: https://www.versioneye.com/user/projects/589eac206a7781003b24318b/badge.svg
:target: https://www.versioneye.com/user/projects/589eac206a7781003b24318b
:alt: Dependency Status
.. image:: https://codeclimate.com/github/GhostofGoes/ADLES/badges/gpa.svg
:target: https://codeclimate.com/github/GhostofGoes/ADLES
:alt: Code Climate
.. image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
:target: https://opensource.org/licenses/Apache-2.0
:alt: License

Overview
========

.. image:: documentation/system-overview-diagram.png
:alt: Overview of the system
:align: center

Automated Deployment of Lab Environments System (ADLES)

| ADLES automates the deterministic creation of virtualized environments for use in
Cybersecurity and Information Technology (IT) education.
| The system enables educators to easily build deterministic and
portable environments for their courses, saving significant amounts of
time and effort, and alieviates the requirement of possessing advanced IT knowledge.


Getting started
===============

.. code:: bash


pip3 install adles
adles -h
adles --print-spec exercise
adles --print-spec infra
adles --list-examples
adles --print-example competition


Usage
=====

.. image:: documentation/usage-flowchart.png
:alt: Usage flowchart
:align: center

- Read the exercise and infrastructure specifications and examples of them
- Write an infrastructure specification for your platform (Currently, VMware vSphere is the only platform supported)
- Write an exercise specification with the environment you want created
- Check its syntax, run the mastering phase, make your changes, and then run the deployment phase.

.. code:: bash


adles -c my-competition.yaml
adles -m -s my-competition.yaml
adles -d -s my-competition.yaml


System requirements
===================

**Python**: 3.4+ (Recommended), 2.7.6+ (Will be deprecated in the future)


Python packages
~~~~~~~~~~~~~~~

See ``requirements.txt`` for specific versions

- pyvmomi
- docopt
- pyyaml
- netaddr
- colorlog
- setuptools (If you are installing manually or developing)

Platforms
---------

VMware vSphere
~~~~~~~~~~~~~~

- **vSphere** >= 6.0
- **ESXi** >= 6.0

vSphere/ESXi 5.5 should work as well, but is untested.

Docker
~~~~~~

Docker is currently in a pre-alpha development state. Eventually, the DockerInterface will
support Docker Machine, Docker Compose, and potentially Docker Swarm.


Contributing
============

Contributions are most definitely welcome! See ``TODO.md`` for a list of what needs to be done.
Before submitting a pull request, do ensure you follow the general style and conventions used.
Just read the code for a bit to get a feel for how things are done, and stay consistent with that.


Goals and TODO
==============
The overall goal of ADLES is to create a easy to use and rock-solid system that allows instructors
and students teaching using virtual environments to automate their workloads.

Long-term, I’d like to see the creation of a open-source repository, similiar to
Hashicorp’s Atlas and Docker’s Hub, where educators can share packages
and contribute to improving cyber education globally.


Main things on the radar (see ``TODO.md`` for full list):

- User and group implementation for Vsphere
- Post-phase cleanups
- Result collection
- Provisioners
- Automated testing for utils and ideally Vsphere
- Working Docker platform implementation
- Implement a cloud platform interface, with Amazon AWS or Microsoft Azure being the easiest picks


License
=======

This project is licensed under the Apache License, Version 2.0. See
LICENSE for the full license text, and NOTICES for attributions to
external projects that this project uses code from.


Project History
===============

The system began as a proof of concept implementation of my Master's thesis research at the
University of Idaho in Fall of 2016. It was originally designed to run on the RADICL lab.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ADLES-1.1.6.tar.gz (65.9 kB view details)

Uploaded Source

File details

Details for the file ADLES-1.1.6.tar.gz.

File metadata

  • Download URL: ADLES-1.1.6.tar.gz
  • Upload date:
  • Size: 65.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ADLES-1.1.6.tar.gz
Algorithm Hash digest
SHA256 975c80c8618d9f1c4a1fd3d98ab538ce30b41466ad4c0c4d8aaea421f747183c
MD5 1caf94eaadd5b2aa4f3e9c4edd54756d
BLAKE2b-256 68c05acbbf5807519138cb033d89b566a38b801b5a20f3a7c45d37ffcf2a1988

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page