commit
7758bcd930
54
README.md
54
README.md
|
@ -5,14 +5,58 @@
|
||||||
Ruby-LXC is a Ruby binding for liblxc. It allows the creation and management
|
Ruby-LXC is a Ruby binding for liblxc. It allows the creation and management
|
||||||
of Linux Containers from Ruby scripts.
|
of Linux Containers from Ruby scripts.
|
||||||
|
|
||||||
|
|
||||||
## Build and installation
|
## Build and installation
|
||||||
|
|
||||||
Clone this repository and run the commands below.
|
Currently the binding is developed and tested against liblxc 1.0.0 build. To build ruby-lxc you need
|
||||||
|
- ubuntu 14.04
|
||||||
|
- lxc ipackage
|
||||||
|
```sh
|
||||||
|
sudo apt-get install lxc liblxc0 lxc-dev
|
||||||
|
```
|
||||||
|
|
||||||
$ rake native gem
|
- Build essential for compiling the bindings
|
||||||
# gem install pkg/ruby-lxc-0.1.0.gem
|
```sh
|
||||||
|
sudo apt-get install build-essential
|
||||||
|
```
|
||||||
|
|
||||||
|
- Clone this repository and run the commands below (assuming you have bundler).
|
||||||
|
```sh
|
||||||
|
bundle install
|
||||||
|
bundle exec rake compile
|
||||||
|
gem install pkg/ruby-lxc-0.1.0.gem
|
||||||
|
```
|
||||||
|
or just add this to your ```Gemfile```
|
||||||
|
```ruby
|
||||||
|
gem "ruby-lxc", github: "andrenth/ruby-lxc"
|
||||||
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
TODO :) For now see the tests in the `test` directory to see how the API
|
- Container lifecycle management (create, start, stop and destroy containers)
|
||||||
works.
|
```ruby
|
||||||
|
c = LXC::Container.new('foo')
|
||||||
|
c.create('ubuntu') # create a container named foo with ubuntu template
|
||||||
|
c.start
|
||||||
|
c.stop
|
||||||
|
c.destroy
|
||||||
|
```
|
||||||
|
|
||||||
|
- Additional state changing operations (freezing, unfreezing and cloning containers)
|
||||||
|
```ruby
|
||||||
|
c.freeze
|
||||||
|
c.unfreeze
|
||||||
|
c.reboot
|
||||||
|
c.shutdown
|
||||||
|
```
|
||||||
|
|
||||||
|
- Clone a container
|
||||||
|
```ruby
|
||||||
|
c.clone('bar') # clone foo into bar. parent container has to bee in freeze or stopped state.
|
||||||
|
```
|
||||||
|
|
||||||
|
- Wait for a state change
|
||||||
|
```ruby
|
||||||
|
c.wait('STOPPED', 10) # wait till container goes to STOPPED state, else timeout after 10 seconds
|
||||||
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue