Nepho is a command-line tool that orchestrates the creation of complete working application stacks on virtual infrastructure. Initially targeting Amazon Web Services as well as Vagrant, Nepho abstracts datacenter creation, instance configuration, and application deployment into portable "cloudlets" that can be shared between developers and teams.
With Nepho, DevOps engineers can construct complete infrastructure-as-code bundles ("cloudlets") that anyone can easily spin up with a single command. Nepho is in active development.
To learn more about the key concepts and vocabulary of Nepho, please view the structure of a cloudlet page.
This project is new but being actively developed by the Cloud Engineering team within Harvard University Information Technology. We have released a stable 1.0 release that is being used by teams within Harvard. We welcome your feedback and contributions!
Currently there are two main code branches:
- master - refactoring into a generic core, vendor-specific providers, and cloudlets for each individual application/service environment.
- legacy - legacy code for constructing CloudFormation stacks using Jinja2 templated JSON files, slowly being merged into master.
View our getting started guide for complete instructions for setting up Nepho and its dependencies.
On Windows, you will need to install Python in addition to the other requirements, more detailed instructions for Windows users are coming soon.
If you plan to develop on the Nepho codebase you will want to follow the instructions for developer setup using virtualenv.
By default Nepho will create a hidden configuration directory in your
home directory (~/.nepho
) although you can specify a different
location in the configuration file. Running the nepho scope
command
will create a configuration file for you (~/.nepho/config
) if one
does not exist, but in general you will not need to modify any of the
default configuration options.
Nepho passed configuration information into providers (i.e. AWS,
Vagrant) through a parameter management system. Each provider, cloudlet,
and blueprint may specify required or optional parameters. You can view
and manipulate parameters using the nepho parameter
subcommand.
Examples of some common parameters (which use the CamelCase format):
- AWSRegion: us-east-1
- VagrantBackend: virtualbox
- UpdatePackages: False
Consult the built-in documentation (nepho --help
) for the latest
information about commands and arguments. Nepho supports the following
five subcommands:
nepho cloudlet
- find, download, and manage cloudletsnepho blueprint
- list and view individual cloudlet deployment blueprintsnepho stack
- create, manage, and destroy stacks built from blueprintsnepho parameter
- list, view and modify parameter settingsnepho scope
- set a cloudlet (and optionally blueprint) scope for future commands
Find out more about each subcommand by running
nepho <subcommand> --help