Giter Site home page Giter Site logo

lxc_ssh's Introduction

lxc_ssh

lxc_ssh is a ruby gem for managing lxc host systems over an ssh connection. Supports LXC version 1.0 and higher. Depends on net-ssh (https://github.com/net-ssh/net-ssh).

Installation

Add this line to your application's Gemfile:

gem 'lxc_ssh'

And then execute:

$ bundle

Or install it yourself as:

$ gem install lxc_ssh

Usage

First create a connection to your system over ssh (currently only the ssh default port is supported) and authenticate as a privileged user (lxc is installed to /usr in this case):

con = LxcSsh::Connection.new
con.connect('my.cool.host', 'root', nil, '/usr')

If no exception occured, you're ready to go.

Get containers

containers = con.manager.containers

Get specific container information

container = con.manager.container 'my-fancy-container-name'

Result:

#<LxcSsh::Container:0x00000000c7ea48 @name="my-fancy-container-name",
                                     @pid="1234",
                                     @state="RUNNING",
                                     @memory_usage=0,
                                     @memory_limit=0,
                                     @cpu_shares=1024,
                                     @cpu_usage="23994168167209",
                                     @ip="192.168.0.2">

Get container config

config = con.manager.container_config 'my-fancy-container-name'
puts config['lxc.network.veth.pair']

Update config items

config = con.manager.container_config 'my-fancy-container-name'
config['lxc.network.veth.pair'] = 'none'
con.manager.write_config 'my-fancy-container-name', config

Create container

con.manager.create_container 'testcontainer', 'gentoo'

Start container

con.manager.start_container 'testcontainer'

Stop container

con.manager.stop_container 'testcontainer'

Destroy container

con.manager.destroy_container 'testcontainer'

Create container

con.manager.create_container 'testcontainer', 'gentoo'

Get templates

con.manager.template_names

Get template help text

puts con.manager.template_help 'archlinux'

Contributing

  1. Fork it ( https://github.com/dprandzioch/lxc_ssh/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.