Skip to main content

Automated Deployment of Lab Environments System (ADLES)

Project description

Latest version on PyPI Travis CI build status Dependency Status Code Climate Documentation DOI Reference

Overview

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.

Complete documentation can be found at ReadTheDocs.

Publication describing the system.

Getting started

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

Usage

Creating an environment using ADLES:

  • 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.
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)

ADLES will run on any platform supported by Python. It has been tested on:

  • Windows 10 (Anniversary and Creators)
  • Ubuntu 14.04 and 16.04 (Including Bash on Ubuntu on Windows)
  • CentOS 7

Python packages

See requirements.txt for specific versions

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

Platforms

VMware vSphere

  • vCenter Server: 6.0+
  • ESXi: 6.0+

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.

If you have questions about the system, don't hesitate to contact me by email or Twitter. (Email is in init.py, Twitter handle is same as GitHub).

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.3.7.tar.gz (69.5 kB view details)

Uploaded Source

Built Distribution

ADLES-1.3.7-py2.py3-none-any.whl (87.4 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for ADLES-1.3.7.tar.gz
Algorithm Hash digest
SHA256 47e725a401e7189275a18dafc074e9228d503503c8826e88e9adf4fa6b9d2562
MD5 11f5d8f121fe747595560336849b5a6e
BLAKE2b-256 8e0df08479308cd295bb70cdf6063734c82fb194100b28bffaa3e245c12fd54f

See more details on using hashes here.

File details

Details for the file ADLES-1.3.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ADLES-1.3.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 fd10579c9788a652208f9b3d1ebd5cd93179f8fed94125434250d143b33ca0e2
MD5 f93b550c3f2d00d08998d574210a156f
BLAKE2b-256 fbd40f59d9781dce44d82dece3f1614a18555012bff7b3ecb1414ec2964400a4

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