Git Product home page Git Product logo

cobbler's Introduction

cobbler

License Build Status

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with cobbler
  4. Usage - Configuration options and additional functionality
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module

Overview

This module manages Cobbler.

Cobbler is a Linux installation server that allows for rapid setup of network installation environments.

Module Description

The Cobbler module provides a simplified way of setting up Cobbler and managing internal Cobbler resources like distro, profile and system. This allows admin to forget long and cumbersome cobbler CLI commands with dozens of switches and options.

Setup

What the module affects

  • cobbler package
  • cobbler configuration files
  • cobbler service
  • cobbler's internal database records (distro, repo, profile, system)

Getting started with cobbler

To install and configure Cobbler with the default parameters, declare the cobbler class:

include ::cobbler

To set up Cobbler Web User Interface:

include ::cobbler::web

Usage

Configure Cobbler global options

Cobbler defaults are determined depending on operating system. Module will install cobbler, tftp and syslinux. It will use Apache module to set up Apache httpd with mod_wsgi, which will serve cobbler and /distros context in Apache. When declaring the cobbler class, you can control many parameters relating to the package and service, path for storing distributions, DHCP options, etc:

class cobbler {
  distro_path    => '/data/distro',
  manage_dhcp    => True,
  server_ip      => '10.100.0.111',
  next_server_ip => '10.100.0.111',
  purge_profile  => True,
  purge_system   => True,
}

Cobbler distro

Distro is an object in Cobbler representing Linux distribution, with its own kernel, installation and packages.

You can easily add distros to your Cobbler installation just by specifying download link of ISO image and distro name:

cobbler::add_distro { 'CentOS-6.5-x86_64':
  arch    => 'x86_64',
  isolink => 'http://mi.mirror.garr.it/mirrors/CentOS/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso',
}

If you want to use 'cobbler import' style, you can add a distro other way:

cobblerdistro { 'SL-6.5-x86_64':
  ensure  => present,
  path    => '/distro/SL64/x86_64/os',
  ks_meta => {
   'tree' => 'http://repos.theory.phys.ucl.ac.uk/mirrors/SL/6.5/x86_64/os',
  },
}

ks_meta parameter's 'tree' value is used as --available-as option.

Cobbler repo

Repo is a Cobbler object representing a distribution package repository (for example yum repository).

If you wish to mirror additional repositories for your kickstart installations, it's as easy as:

cobblerrepo { 'PuppetLabs-6-x86_64-deps':
  ensure         => present,
  arch           => 'x86_64',
  mirror         => 'http://yum.puppetlabs.com/el/6/dependencies/x86_64',
  mirror_locally => false,
  priority       => 99,
  require        => [ Service[$cobbler::service_name], Service[$cobbler::apache_service] ],
}

Cobbler profile

Profile is a Cobbler object representing a pre-configured set of distro/repos/settings for kickstarting a node.

Simple profile definition looks like:

cobblerprofile { 'CentOS-6.5-x86_64':
  ensure      => present,
  distro      => 'CentOS-6.5-x86_64',
  nameservers => $cobbler::nameservers,
  repos       => ['PuppetLabs-6-x86_64-deps', 'PuppetLabs-6-x86_64-products' ],
  kickstart   => '/somepath/kickstarts/CentOS-6.5-x86_64-static.ks',
}

Cobbler system

System is a Cobbler object that maps physical or virtual machine with the cobbler profile which is assigned to run on it.

Typical definition looks like:

cobblersystem { 'somehost':
  ensure     => present,
  profile    => 'CentOS-6.5-x86_64',
  interfaces => { 'eth0' => {
                    mac_address      => 'AA:BB:CC:DD:EE:F0',
                    interface_type   => 'bond_slave',
                    interface_master => 'bond0',
                    static           => true,
                    management       => true,
                  },
                  'eth1' => {
                    mac_address      => 'AA:BB:CC:DD:EE:F1',
                    interface_type   => 'bond_slave',
                    interface_master => 'bond0',
                    static           => true,
                  },
                  'bond0' => {
                    ip_address     => '192.168.1.210',
                    netmask        => '255.255.255.0',
                    static         => true,
                    interface_type => 'bond',
                    bonding_opts   => 'miimon=300 mode=1 primary=em1',
                  },
  },
  netboot    => true,
  gateway    => '192.168.1.1',
  hostname   => 'somehost.example.com',
  require    => Service[$cobbler::service_name],
}

Limitations

This module was on:

  • CentOS 6/7
  • Ubuntu LTS 12.04/14.04

Module depends on:

RHEL/CentOS

Ensure the EPEL repo (or another repo containing a suitable Cobbler version) is present.

SELinux

This module is not tested on a system with SELinux in enforcing mode. Please set the SELinux to permissive.

Development

This module is maintained by Lutak Srce. Lutak Srce welcomes new contributions to this module, especially those that include documentation and rspec tests. We are happy to provide guidance if necessary.

Please see CONTRIBUTING for more details.

Authors

cobbler's People

Contributors

jsosic avatar znikac avatar

Watchers

James Cloos avatar  avatar Ivan Rako avatar  avatar

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.