📡 🛰 (P.D.M) Primitive Deployment Manager

Author Alex Best Version 0.0.1 Python 3.5

Primitive Deployment Manager is designed to quickly provision application servers.

Built Using

Application Structure

  • .env Environment variables
  • src
    • primitive.py The Application
    • deply.json Deployment configuration
    • deploy Deployment Assets
      • config System and App configs
      • codebase -helloworld Project to deploy

Server support

  • Tested on Ubuntu 14.04 LTS

Setup

  • Install Python Dependencies via PIP pip3 install -r requirements.txt
  • Rename .env-sample to .env and set server password.
  • Define project configuration in src/deploy.json
    • Nodes List of nodes IP, USERNAME and PROJECT_NAME that P.D.M will use to deploy the application.
    • Package List of packages to install. (Currently only packages that can be install via APT)
    • Codebase Name and path to the application to deploy.
    • Config Server config files to deploy.

Example config:

{
    "nodes": [
        {
            "ip": "192.168.1.149",
            "username": "alexb",
            "project_name": "helloworld"
        }
    ],
    "package": [
        {
            "name": "apache2"
        }
    ],
    "codebase": [
        {
            "name": "Hello World",
            "dir": "deploy/codebase/helloworld",
            "deploy_to": "/var/www/helloworld"
        }
    ],
    "config": [
        {
            "name": "php.ini",
            "template": "/deploy/config/php.ini",
            "deploy_to": "/etc/php5/apache2/",
            "service": "php"
        },
        {
            "name": "helloworld.conf",
            "template": "/deploy/config/helloworld.conf",
            "deploy_to": "/etc/apache2/sites-available/",
            "service": "apache2"
        }
    ]
}

Usage

  • Start via the command line python3 src/primitive.py