Skip to content
This repository has been archived by the owner on Jul 8, 2020. It is now read-only.

sts/ruby-openvz

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 

OpenVZ API

OpenVZ is a container based virtualization for Linux. This API will allow you to easily write tools to manipulate containers on a host.

Full and up to date ruby doc available at: http://rubydoc.info/github/sts/ruby-openvz/master/frames

USAGE

Here are some examples on how you can use the API.

container = OpenVZ::Container.new('110')
container.start

UBC Access

To get the current value of privvmpages you can use the config accessor.

container = OpenVZ::Container.new('110')
puts container.config.privvmpages

Also in case you would like to update a UBC, use the same config accessor.

 container = OpenVZ::Container.new('110')
 container.config.kmemsize = '5505024:5872024'

Inventory

 # Create an inventoy of all containers
 inventory = OpenVZ::Inventory.new()
 inventory.load
 # Print a certain containers configuration option
 inventory['110'].config.privvmpages
 # Restart
 inventory['110'].restart

Provisioning

You can as well use the build in functions to provision a new container.

 container = OpenVZ::Container.new('110')

 container.create( :ostemplate => 'centos-5-x86_64-minimal',
                   :config     => 'vps.basic' )

 container.start

Debootstrapping Containers

If your host is running Debian and you want to bootstrap a new Debian container, you do not have to use a template, just use debootstrap.

 container = OpenVZ::Container.new('110')

 container.create( :ostemplate => 'debain-6.0-bootstrap',
                   :config     => 'vps.basic' )

 container.debootstrap( :dist   => 'squeeze',
                       :mirror => 'http://cdn.debian.net/debian' )

 container.set( :nameserver => '8.8.8.8',
                :ipadd      => '10.0.0.2',
                :hostname   => 'mia.ono.at' )

 container.file( '/etc/bash.bashrc', :source => '/etc/vz/template/bashrc' )

 container.start

 # Update the system
 container.command('aptitude update ; aptitude -y upgrade ; apt-key update')

 # Install puppet
 container.command('aptitude -o Aptitude::Cmdline::ignore-trust-violations=true -y install puppet')

NOTE: You need to create an empty template for this to work. Here is how you do that:

 mkdir /tmp/empty-template
 # We need a file in the tarball since vzcreate barfs on empty tarballs
 touch /tmp/empty-template/BOOSTRAPPED
 tar -zc -C /tmp/empty-template . -f debian-6.0-bootstrap.tar
 gzip debian-6.0-bootstrap.tar
 mv debian-6.0-bootstrap.tar.gz /var/lib/vz/template/cache

BUGS

For bugs or feature requests, please use the GitHub issue tracker.

https://github.com/sts/ruby-openvz/issues

WHO

Stefan Schlesinger / sts@ono.at / @stsonoat / http://sts.ono.at

About

Ruby OpenVZ API

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages