evo-garage v0.0.6
Development Cluster Management
Usage
npm install evo-garage -gCreate a containing folder for your cluster, e.g. $HOME/myCluster.
Create a simple YAML file $HOME/myCluster/cluster.yml with
---
script: lxc
env:
ROOTFS: full-path-to-your-rootfs.squashfsYou can use stemcell to build a rootfs.
Now start server (remeber to use sudo as lxc requires root privilege):
sudo garage-server --clusters=$HOME/myClusterUse the following command to list all clusters:
garage-cli clustersOr you can add a new cluster on the fly:
garage-cli add-cluster path-to-dir-which-contains-cluster.ymlLet's get excited now!
garage-cli start myCluster 1-16It will create and start 16 nodes with IDs from 1 to 16. You can also create nodes with any IDs you like:
garage-cli start myCluster 20 25 46-50Use lxc-console to attach to a node:
sudo lxc-console -n "myCluster-20" -t 1You can check the nodes status:
garage-cli nodes myClusterYou can stop any nodes in the cluster as simple as start
garage-cli stop myCluster 1 5 7 9 10-20Special configuration for Linux Container
The default Linux Container support requires something to be pre-configured.
- One bridge for accessing external network with DHCP, NAT enabled, the name should be
lxcbr0 - One bridge for cluster private network, no DHCP configured on host, the name should be
evobr0
Supported Containers
It only supports Linux Container at present, but it is very easy to add other containers like QEMU, VirtualBox etc if you can build rootfs in virtual disk files. There are only 4 script files you need to add:
nodesit prints created node IDs one per linestatusit accepts one parameter as node ID and displays node status as onekey:valuepair per linestartit accepts one parameter as node ID for starting the nodestopit accepts one parameter as node ID for stopping the node
License
MIT