« Previous - Version 38/112 (diff) - Next » - Current version
Paul Kelly, 03/17/2011 03:49 am


Release Notes for 0.2

This release is a major release, it includes many new provisioning features and introduce a new service called Smart proxies within Foreman Architecture. Highlights of this release includes:

New look and feel

Extended restful API

see API for more details.

Full VM/physical host Provisioning

Templates

Starting with 0.2, Foreman supports many different kind of templates, including:

Type Description
Provisioning Kickstart, Preseed, Jumpstart etc
PXElinux PXElinux TFTP configuration templates (such as pxe menus, and plain PXE config files)
gPXE gPXE based configuration files (which can be used as an alternative to TFTP based deployments altogether).
finish Finish scripts (such as a preseed or a jumpstart finish scripts)
scripts Scripts which can manipulate grub configuration on existing hosts
snippets partial templates which can be included within other templates

Templates are now stored within the database - there is no longer a need to restart Foreman after the modification of a template.

If you don't configure any templates, or use the old urls (such as /unattended/kickstart) you will still render your template using the old/legacy way.

Template association to hosts

The guiding principle within Foreman is that we don't want to associate templates with hosts directly.
There are 4 ways to associate a template with a host

  1. Though a host group.
  2. Though an environment.
  3. Though a combination of a host group and an environment (such as web servers in development mode).
  4. Though an operating system.

Therefore, there are few steps which are required in order to relate hosts and templates.

  1. Make sure you define at least one operating systems.
  2. Create each template and associate the valid operating systems to it.
  3. Optionally, associate the template with hostgroups and/or environments.
  4. Edit the relevant operating system and define a default/fallback template for each relevant template type.

A special type of a template is called "PXE Default File" which is the default PXE template.
The included example will setup PXE menus for each configured host group (allowing you to deploy hosts without puppet if you require that functionality).

Safe Rendering of Templates

Foreman by default works in safe rendering mode (restricted access) - see TemplateWriting for more details.

We tried to provide sane default templates which should hopefully get you started.

DNS

Foreman can configure your DNS servers via Smart proxies.
The currently supported DNS servers are BIND and Microsoft DNS server.

Foreman will create a reverse and primary DNS record for each host which is created via Foreman.

If you wish to enable DNS management for selected domains, you may configure smart proxy under domain settings.

Subnets

Foreman now needs to know about your subnets in order to configure the correct DHCP / tFTP servers.

At the moment, Foreman associates subnets with domains (a domain such as company.com has many subnets.) If you have a different layout, please feel free to create a new feature request.

DHCP

Foreman can fully configures DHCP servers via Smart proxies.
The currently supported DHCP servers are ISC and Microsoft DHCP server.

This includes creating a reservation/lease per host with the correct boot configuration based on the TFTP setup

If you wish to enable DHCP management for selected subnets, you may configure smart proxy under the subnet settings.

TFTP

Foreman now can fully populate tFTP file trees via smart proxy.

This includes downloading the relevant media file (such as kernel and initrd) and the machine specific pxelinux configuration file as well as managing pxe default / menus if defined.

If you wish to enable TFTP management for selected subnets, you may configure the smart proxy under the subnets settings.

Auto discovery of un-used IP addresses

The smart proxy which runs the DHCP server can automatically suggest an unused IP address based on subnet.

The user can always override the suggested IP address.

Virtual Machine support

Foreman now can create virtual machines for you.
At the moment we support libvirt , so if you use a hypervisor which is supported via libvirt, you can create new instances though Foreman in a simple and effective way.

Just create a new hypervisor (under the settings tab) and follow the steps at Virtual_Machine_Provisioning

Misc

Support Managed and non-Managed hosts

When deploying Foreman into an existing environment, it makes sense that only some of the machines are managed by Foreman.
For those hosts that are not managed, you can toggle the managed/provisioned status from a link in the host edit page.

This will not require you to key in provisioning related information (such as OS, installation media etc).

Rebuild many hosts at once

Its now possible to set mulitple hosts for rebuild upon their next reboot.

Release Notes for 0.1-6

Puppet Importers

  • The environment and puppet class importer now works in batch and interactive modes
    • In interactive mode, allows the user to select those classes and environments that they wish to import or delete.
    • The environment and puppetclass importer removes the contents of config/ignored_classes_and_environments.yml from the set of changes that are to be applied. A sample file extras/ignored_classes_and_environments.yml.sample is supplied
  • The importer will now obsolete missing puppet classes and environments
  • Support Puppet 2.6.x reports
  • External node import script (from an older external nodes script) now overrides the exists classes in foreman if they exists.

User Authentication and Authorization

  • Added support for internal authentication.
  • Added full Role based Authorization (RBAC) system, see Roles and permissions for more details.
  • All actions are audited as either the logged in user, or the system account named admin, if logins are unused.
  • If you chose to enable authenitcation, the default username is admin, password changme

API

  • Added JSON based API to many common actions, see API for more details
  • Added example scripts to add and remove hosts in extras directory
  • Added YAML support for all host lists, dashboard pages etc.

Web interface

  • Reports are filtered by default so that only reports that contain any changes are displayed. All reports can still be seen by running a suitable search.
  • The user may search for hosts that are using a class, though this only works if the host explicitly names the class as host's hostgroups are not searched.
  • New features, notices and alerts can be presented to users via a new notification pane within the web interface.
  • A single puppetdoc page for an environment's manifest now contains a link to the browser for the whole environment's manifests
  • The settings page has been replaced with a floating dropdown selector box at the right of the screen
  • Improve host edit form in cases when working in mixed mode where some machines were installed via foreman, and others are managed (i.e. class assignments).
  • Added timestamps to facts, this allow users to see if their facts data is up to date.
  • Added links from puppet classes list to see hosts which apply that class.
  • changed many URLS to include a meanful name instead of the internal ID, i.e. foreman/hosts/fqdn instead of foreman/hosts/123
  • updated html pages to be XHTML compliance
  • Added the ability to disable notifications for several hosts, this will not show the hosts in the host list and in the dashboard statistics.
  • Fixed confusing graph labels in the host show page

Provisioning

  • When operating in spoof mode, the output will always be in text/plain instead of html.
  • Foreman can now be programatically interrogated to determine the required bootfiles for a media type. This allows an external tftp source to locate and download these files before a host is built - see API.
  • Auto generate pxe syslinux config files on remote TFTP servers - see API
  • on anaconda based installed (redhat family), Foreman will use the MAC address (from the active interface) to identify the host.
  • It is now possible to cancel a "build host" request.
  • Added new setting to allow Foreman to install the host from a temporary IP range (which is not the final host ip).
    This will avoid scenarios where the IP gets rotated between the entered values and the IP coming from Facter.
  • Added redhat network registration snippet
  • Fixed slipping newlines in the dynamic partition table layouts.

Packaging

  • New repositories for RedHat/Fedora, and Debian/ubuntu are now available at http://yum.theforeman.org or http://deb.theforeman.org, they include stable and testing packages.
  • Foreman now bundle rubygem rack package, this allow the package to be natively installed on many distributions (in various versions).
  • see Installation instructions for more details.
  • Added rack task to build a deb package.

Others

  • Parameter names and values may now contain spaces and other characters, but they must still not end with whitespace
  • In previous version, when entering a FQDN as the hostname, Foreman would automatically create the domain name for the host, however, as its legitimate to have a full stop (".") as part of the hostname, foreman can no longer know what is the correct domain name, and therefore will not create it, if the domain already exists, Foreman would still associate the host to it.
  • (for developers) The rake db:convert:prod2dev task now takes an optional tablename and record count.
  • Foreman now have more test code than actual code.

Important migration notes

In order to support Puppet 2.6.x reports, a major change in the database structure was required, if you are upgrading via a package the database change will happen automatically as part of the package update, however it might take a long time according to the amount of reports you currently have in your database.
therefore its recommended to expire non-required reports (via the rake reports:expire command)

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 RPM 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 and added logrotate support
    • moved db files state dir
    • ...
  • Fact importer now imports the hardware model information

Also available in: HTML TXT