Skip to main content

Automated Deployment of Lab Environments System (ADLES)

Project description

PyPI Version Build Status Dependency Status Code Climate License

Overview

Automated Deployment of Lab Environments System (ADLES)

ADLES automates the creation of virtualized environments for the purpose of cybersecurity and 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.

The system is a proof of concept implementation of my thesis research as part of the requirements for a Master of Computer Science at the University of Idaho.

Getting started

pip3 install adles
adles -h
  • Read some of the examples, and try running a fews

  • Read the exercise specification at specifications/exercise-specification.yaml

  • Try writing your own! You can check it’s syntax using adles -c example.yaml

System Requirements

Client Software

Python: 2.7+, 3.4, 3.5, 3.6 (Reccomended)

Python Packages

See requirements.txt for specific versions

  • pyvmomi

  • docopt

  • pyyaml

  • netaddr

  • colorlog

  • setuptools (If you are installing manually or developing)

Virtualization Platforms

VMware vSphere

  • vSphere >= 6.0

  • ESXi >= 6.0

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

Project Goals

The short-term goal is to create a 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.

Current Goals

Currently, I am focusing on implementing the following components:

  • Overall system

    • Interface module system

    • Specification injestion, parsing, and semantic checking

    • Master-creation phase

    • Deployment phase

    • Post-phase cleanups

    • User interface, logging, and basic result collection

  • Specifications

    • Exercise specification (The core spec that defines the exercise environment)

    • Package specification

    • Infrastructure specification

  • VMware vSphere Interface module

  • Documentation of API, system, and examples

  • Basic Unit and Functional tests

  • Packaging for PyPI

Future Goals

  • Interfaces

    • Docker (Good for simulating large environments, with low resource overhead and quick load times)

    • Hyper-V server (Free, good for schools that are heavily invested in the Microsoft ecosystem)

    • Vagrant (Enables interaction with VirtualBox, desktop Hyper-V, and VMware Workstation)

    • Xen (Rich introspection possibilities for monitoring extensions using the Xen API)

    • KVM (LibVMI provides rich introspecition possibilities for this as well)

  • Environment specification

    • Monitoring extensions

    • Resource extensions for testbeds (ICS/SCADA, Wireless, USB devices, car computers, etc.)

    • Lab connectors

  • Vagrantfile that builds a lightweight VM running the system

  • Dockerfile that builds a lightweight image running the system

  • Public repository of packages

  • More example tutorials

  • Improved documentation on how to make a package, how to setup a platform for system, etc.

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

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for ADLES-0.10.1.tar.gz
Algorithm Hash digest
SHA256 e444fa4ada29cb5a70e65703f15ca9e97bff43c8ff4baf54d1b062df8496321c
MD5 ba02487dfc245df5601c1e5133d48b07
BLAKE2b-256 47f49a9a98b976dbccd92706965d3c85b168f3ff9d8ce1c19bdb7afdf4ac95d9

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