📡 🛰 (P.D.M) Primitive Deployment Manager
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