0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Open PaaS provisioning on cloud providers from JSON manifest file
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 3.6.0, ~> 3.6

Runtime

>= 2.1.0, ~> 2.1
>= 1.4.0, ~> 1.4
>= 0.3.0, ~> 0.3
>= 1.3.0, ~> 1.3
>= 4.1.0, ~> 4.1
>= 2.2.0, ~> 2.2
>= 2.1.0, ~> 2.1
 Project Readme

Provisioning.rb

Open PaaS provisioning.

This gem will install a provision command for provisioning an open platform-as-a-service (PaaS) from a JSON manifest file.

Currently limited to dokku or flynn apps on AWS or DigitalOcean servers.

Installation

$ gem install provisioning

Alternatively you can build the gem from its repository:

$ git clone git://github.com/vinc/provisioning.rb.git
$ cd provisioning
$ gem build provisioning.gemspec
$ gem install provisioning-0.0.1.gem

Usage

Provision a manifest file:

$ provision manifest.sample.json
Reading provisioning manifest file 'manifest.sample.json'
==> Provisioning digitalocean compute
Uploading SSH key to DigitalOcean
Creating server 'dokku1.sfo1.example.net'
==> Provisioning digitalocean dns
Creating zone 'sfo1.example.net'
Creating domain record A '@' to '104.131.186.241'
Configue 'sfo1.example.net' with the following DNS servers:
  - ns1.example.net
  - ns2.example.net
Creating domain record CNAME '*' to 'sfo1.example.net.'
Configue 'example.com' to point to 'sfo1.example.net'
Configue 'www.example.com' to point to 'sfo1.example.net'
==> Provisioning dokku platform
Installing dokku v0.10.4 on '104.131.186.241'
Creating dokku app 'example' on '104.131.186.241'
Run `gem install dokku-cli` to get dokku client on your computer
Adding dokku to git remotes
Uploading SSH key to DigitalOcean
Run `git push dokku master` to deploy your code

Sample manifest file (in JSON format)

{
  "manifest": {
    "app": {
      "name": "example",
      "domains": ["example.com", "www.example.com"],
      "services": ["postgres", "redis"]
    },
    "platform": {
      "provider": "dokku",
      "version": "v0.10.4",
      "domain": "sfo1.example.net"
    },
    "compute": {
      "provider": "digitalocean",
      "region": "sfo1",
      "image": "ubuntu-16-04-x64",
      "size": "1gb"
    },
    "dns": {
      "provider": "digitalocean"
    }
  }
}

License

Copyright (C) 2017 Vincent Ollivier. Released under MIT.