Blog

Foreman 0.1-5 is out

Added by Ohad Levy about 1 month ago

New Foreman Release - checkout the Release Notes at http://theforeman.org/projects/foreman/wiki/ReleaseNotes

Have fun!
Ohad

New features for the upcoming Foreman release

Added by Ohad Levy 2 months ago

Hi all,

Its been a while since we got a new Foreman release out, just to keep you updated, a new release will come up shortly, in the meanwhile, here are the highlights – for a full list – checkout http://theforeman.org/versions/show/7

Release Notes for 0.1-5

Web interface

Most of the pages have been rewritten, there are many changes:

Search options
  • Hosts (filter based on facts, based on host groups etc
  • Facts (all hosts with fact x or with value y etc)
  • Reports (show me all failed reports in the last 3 months etc)
  • Audits (per user, per type – e.g. all hosts, per action – e.g. delete)

Improved Graphs for dashboard and per host

Host edit page now has a lot of logic
  • Class selection depends on your chosen environment
  • Class selection breaks down into modules, making it easy to navigate
  • Inherited classes (via hostgroups), are also visible.
  • Unattended settings will only show selection based on the os (e.g. no debian disk templates will be shown to redhat based os etc).
  • Clone existing hosts (instead of choosing all of the options again)
Perform changes on many hosts at once
  • change a parameter for many hosts
  • change host group for many hosts
  • change environment for many hosts

Import new puppetclasses from the interface

Unattended installations

  • added support for dynamic disk layout
  • added kickstart/preseed compatibility with Ubuntu 10.04, RHEL6 beta, Fedora 13
  • support for customized kickstart files (e.g. if you use a package like rpm, you can create your own kickstart which will not be replaced on next update).
  • medias can now be shared with many operating systems (e.g. with replacing variables for $arch or $version)
  • x-rhn-provisioning headers support for booting from other devices than eth0

Query interface

  • added verbose mode, which will return all of hosts classes, facts and external node parameters.
  • added query based on a hostgroup

Others

  • Host ownership (via a user or a user group) base infrastructure for per host authorization (e.g. who can change what) and sending the reports to the right people.
  • Speed optimization when keeping many reports in the db
  • Puppetdoc integration
    • Foreman can generate puppetdoc (via a rack task, so you can add it to your repo post commits scripts), and links to the docs via the puppet classes page.
  • Improved PRM packaging
    • added startup script for foreman (uses webrick)
    • moved all config files to /etc/foreman and /etc/sysconfig/foreman
    • moved log files to /var/log
    • moved db files state dir
    • ...

Please try out the latest develop branch (or nighty snapshot) for any feedback before the official release

Join our irc channel #theforeman at freenode

Foreman rpm is now available

Added by Ohad Levy 4 months ago

I've created RPM (RHE5) for foreman, to install, please create a yum repo

Puppet manifest

yumrepo { 'foreman':
    descr => 'Foreman Repo',
    baseurl => 'http://theforeman.org/repo',
    gpgcheck => '0',
    enabled => '1'
}

Quick and dirty

cat > /etc/yum.repos.d/foreman.repo << EOF
[foreman]
name=Foreman Repo
baseurl=http://theforeman.org/repo
gpgcheck=0
enabled=1
EOF
yum install foreman

Update: Additional rpms might be required from epel repo's

if you just want to get the rpms:

http://theforeman.org/repo/el5/noarch/foreman-0.1.4-3.noarch.rpm
http://theforeman.org/repo/el5/noarch/rubygem-rack-1.0.1-1.noarch.rpm
and
http://theforeman.org/repo/el5/SRPM/foreman-0.1.4-2.src.rpm

feedback / comments are welcomed.

Ohad

Foreman 0.1-4 is out

Added by Ohad Levy 5 months ago

Hello All,

Its been a while since last release.. so I'm happy to announce the next stable release of Foreman (0.1-4).

Main new features include:
  • host report graphs, this hopefully removes the need for the RRD graphs.
  • support for customized run interval
  • support to browse and filter hosts based on facts
  • extlookup variables store (can replace extlookup csv files)
  • support to trigger puppetrun from the web interface
  • added state to query interface (e.g. get all hosts which are not running puppet)
  • Summary Email Supports facts or environment restrictions
  • upgraded rails to 2.3.5 (mostly because of security patches)

As usual, many bugs were fixed - many thanks to all reporters, and those of you who keep on sending patches :-)

For a complete change log, please visit http://theforeman.org/projects/changelog/foreman#0.1-4

Note that now there is also a foreman users group (http://groups.google.com.sg/group/foreman-users) and an IRC channel #theforeman on freenode

If you already have Foreman installed, make sure you go through http://theforeman.org/wiki/foreman/Upgrade_instructions.

latest version can be fetched from here - http://theforeman.org/attachments/download/60/foreman-0.1-4.tar.bz2

Note - because of rails upgrade you now require rack 1.0.1 gem
e.g.: gem install rack -v 1.0.1 (as foreman user)

For feature requests, bugs, wiki etc, visit: http://theforeman.org

Foreman 0.1-3 is out

Added by Ohad Levy 8 months ago

Hello All,

As we try to release every month, I'm happy to announce the next stable release of Foreman (0.1-3):

Main new features include:

As usual, many bugs were fixed - many thanks to all reporters, and those of you who keep on sending patches :-)
For a complete change log, please visit:http://theforeman.org/projects/changelog/foreman
For feature requests, bugs, wiki etc, visit: http://theforeman.org

If you already have Foreman installed, make sure you go through http://theforeman.org/wiki/foreman/Upgrade_instructions.

latest version can be fetched from here - http://theforeman.org/attachments/download/53/foreman-0.1-3.tar.bz2

Happy new year!
Ohad

manitest - a simple script to help your puppet development

Added by Ohad Levy 8 months ago

If it happened to you before that someone broke your manifest because of simple change (e.g. didn't test it on all hosts/classes external nodes ... combinations) this tool might be useful to you.

The idea is very simple, just try to compile the manifest based on customized facts, classes, environments and external nodes parameters (if you use it) .
You need to run this script only were you develop your manifests (e.g. your puppetmaster), there is no need to try out a puppet run on each and every system type that you have.

You might also find it useful to run this script in some sort of a cron or via a repo hook, to find out any broken manifests running around..

This script was originally written by a colleague of mine (Paul Kelly), however, I've adjusted it to hopefully common usage.

Its brand new, so any comments / improvements (which I'm sure there are plenty) are welcomed.

Hopefully you'll find it useful,
Ohad

http://github.com/ohadlevy/manitest

Foreman 0.1-2 is released

Added by Ohad Levy 9 months ago

I'm happy to announce the next stable release of Foreman (0.1-2), main new features include:

  • General
    • LDAP / AD Authentication support.
    • Audit Log - keeps information about changed host values (e.g. host environment, external node parameters etc).
    • Added Puppet module for installing/managing foreman
  • Puppet Reports
    • Added a basic dashboard, allows you to know your puppet client status at a glance.
    • Added retention rules to expire old reports
  • Added query interface
    • Similar mini functionally like storeconfigs, allows puppet clients to collect list of hosts based on a class or a fact groups
    • Provide host list to external tools e.g. Capistrano, *ssh etc
  • Unattended installations
    • allow to have reusable configurations (snippets) across operating systems (e.g. for puppet.conf)

Additionally a lot of bugs were fixed, if you are using foreman, it is highly recommended to upgrade.

For a complete change log, please visit: http://theforeman.org/projects/changelog/foreman

For feature requests, bugs, wiki etc, visit: http://theforeman.org

If you already have Foreman installed, make sure you go through http://theforeman.org/wiki/foreman/Upgrade_instructions.

if you are using external nodes, please note that the URL has changed - please review the foreman puppet module for examples.

Cheers,
Ohad

My Puppetcamp Presentation

Added by Ohad Levy 10 months ago

Foreman 0.1-1 is released!

Added by Ohad Levy 10 months ago

I'm happy to announce the next stable release of Foreman, main new features include:
  • Integration of Puppet Reports, once enabled you would see a real time overview of all of yours hosts status.
  • Improved support for multiple Puppet Masters (e.g. import facts and reports from remote servers over http)
  • Simplified migration from existing external nodes setup, now its possible to import your existing classifier data into Foreman.

For a complete change log, please visit: http://theforeman.org/projects/changelog/foreman
For feature requests, bugs, wiki etc, visit: http://theforeman.org

If you already have Foreman installed, make sure you go through http://theforeman.org/wiki/foreman/Upgrade_instructions.

Cheers,
Ohad

Automating ISC DHCP

Added by Ohad Levy 11 months ago

using omapi (omshell):

Add a server

server 192.168.2.99 (my remote DHCP server)
connect
new host
set name = "nx" 
set hardware-address = 54:52:00:13:21:a4
set hardware-type = 1
set ip-address = 192.168.2.105
set statements = "next-server = c0:a8:02:7d; filename = \"pxelinux.0\";option host-name \"nx.lan\";" 
create

next-server has to be in hex, a simple method that converts IP's to hex:

def self.ip2hex ip
  ip.split(".").map{|i| "%02x" % i }.join(":")
end

Remove a server

server 192.168.2.99
connect
new host
set ip-address =  192.168.2.106
open
remove

More complex setup with gpxelinux.0

server 192.168.2.99
connect
new host
set name = "u904" 
set hardware-address = 54:52:00:4b:a5:38
set hardware-type = 1
set ip-address = 192.168.2.106
set statements = "next-server = c0:a8:02:7d; filename = \"gpxelinux.0\"; option host-name \"u904.lan\"; vendor-option-space = \"pxelinux\"; option pxelinux.magic = f1:00:74:7e; option pxelinux.pathprefix = \"http://foreman/\"; option pxelinux.configfile = \"unattended/pxe\";" 

create