Skip to content

Repository files navigation

Ruby-LXC

Build Status

Introduction

Ruby-LXC is a Ruby binding for liblxc. It allows the creation and management of Linux Containers from Ruby scripts.

Build and installation

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.gem

or just add this to your Gemfile

gem"ruby-lxc",github: "lxc/ruby-lxc",require: "lxc"

Usage

  • 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

About

ruby bindings for liblxc

Topics

Resources

Stars

137 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages