A cluster package manager
npm install cpm
|2||downloads in the last week|
|7||downloads in the last month|
|Version||0.1.0 last updated 4 months ago|
|Keywords||coreos, etcd, docker|
Cluster Package Manager (cpm)
What is cpm?
cpm is a command-line package manager for fetching and installing services onto your own cluster of remote machines.
cpm is espired by my experience with
npm. While package managers such as
bower install code libraries and modules to be included as a compile-time or run-time component of a program,
cpm installs a running service. In most cases, there is zero configuration. In some cases, things like api key/secrets or a default username/password might be required in order to bootstrap the service.
cpm install ghost
Boom. Ghost is running on your cluster. If ghost depended on other services, it would install those as well. If ghost required configuration parameters it would pull those from your cluster if the values were already set.
How does it work?
cpm connects to your cluster for each command it executes. Your cluster runs a daemon (
cpd) which receives
cpm commands and deploys services.
cpd is built on top of
etcd. To make things easier, I am directly building on top of a CoreOS cluster for now. However you can try getting things to run on whatever cluster system you like as long as it has
cpm will only ever be as good as the packages available in its repositories. I am going to build a core set of packages based on things I depend on (mostly developer tools). These will be things like:
- continuous integration/deployment
- blog publishing engines
- load testing services
- mobile build services (remote xcode)
- ios and android beta-test managers
- real-time coding or chat collaboration
- source code repositories
npm install -g cpm