Ruby-LXC is a Ruby binding for liblxc. It allows the creation and management of Linux Containers from Ruby scripts.
Assuming a current installation of LXC is available, to install Ruby-LXC simply run the commands below
sudo apt-get install ruby-dev lxc-dev
bundle install
bundle exec rake compile
bundle exec rake gem
gem install pkg/ruby-lxc-1.2.0.gemor just add this to your Gemfile
gem"ruby-lxc",github: "lxc/ruby-lxc",require: "lxc"- Container lifecycle management (create, start, stop and destroy containers)
require'lxc'c=LXC::Container.new('foo')c.create('ubuntu')# create a container named foo with ubuntu templatec.start# attach to a running containerc.attachdoLXC.run_command('ifconfig eth0')endc.stopc.destroy- Container inspection
c.namec.config_pathc.config_item('lxc.cap.drop')c.cgroup_item('memory.limit_in_bytes')c.init_pidc.interfacesc.ip_addressesc.state- Additional state changing operations (freezing, unfreezing and cloning containers)
c.freezec.unfreezec.rebootc.shutdown- Clone a container
# clone foo into bar. Parent container has to be frozen or stopped.clone=c.clone('bar')- Wait for a state change
# wait until container goes to STOPPED state, else timeout after 10 secondsc.wait(:stopped,10)Check the provided rdoc documentation for a full list of methods. You can generate it running
rake rdoc