wiki:TrackingDevelopmentTrunk

Version 24 (modified by solj, 12 years ago) (diff)

Modify prereq goals

Tracking Development Releases of Bcfg2

Currently, we are in the process of working on 1.0. The roadmap is located at source:trunk/bcfg2/doc/1.0-roadmap

User visible changes

In bcfg2-1.0, the following minimal versions of python will be required:

python 2.4 - server
python 2.3 - client

SSL Changes

We have switched to the in-tree ssl module included with python 2.6. A backport exists for 2.3, 2.4, and 2.5. With this, M2Crypto is not needed, and tlslite is no longer included with bcfg2 sources.

With this change, SSL certificate based client authentication is supported. In order to use this, based CA-type capabilities are required. A central CA needs to be created, with each server and all clients getting a signed cert. See Authentication? for details.

bcfg2.conf changes

The generators/structures lines of bcfg2.conf have been merged into a single plugins line. Bcfg2-admin init has been updated to generate a new-style bcfg2.conf. A minimal configuration may look something like this:

[server]
repository = /var/lib/bcfg2
plugins = Base,Bundler,Cfg,Metadata,Pkgmgr,Rules,SSHbase

[communication]
protocol = xmlrpc/ssl
password = foobat
key = /etc/bcfg2.key
# fingerprint of server (from bcfg2-admin fingerprint)
#fingerprint = [server fingerprint]

[components]
bcfg2 = https://localhost:6789

svn = yes is also deprecated. You can get the same functionality by adding Svn to your plugins line (see Svn?).

Snapshots

Snapshots?

New plugins

Service Changes

  • New overall client service mode
    • default
      • perform all service manipulations
    • disabled
      • perform no service manipulations
    • build
      • attempt to stop all services started
      • deprecates/replaces -B
  • New per service mode
    • mode='manual'
      • do not start/stop/restart this service
    • mode='default'
      • perform appropriate service ops
    • mode='supervised'
      • default + ensure service is running when verification is performed
      • deprecates supervised='true'
    • mode='custom'
      • set non-default restart target in conjunction with target attr

Release Information

Since 1.0pre2

  • Fix Portage Tool Driver traceback (See Ticket #649)
  • Initial IPS (Opensolaris driver)
  • BB plugin updates/bugfix
  • YUMng
    • Fix version=auto for epoch-sensitive packages
    • Fix multi-arch yum sources
  • Packages
    • Implement proper support for provides targets with multiple providers
  • Implement ssl certificate split, in preparation for SSL client cert auth
  • Specfile fixes
  • Snapshots
    • command line interface enhancements
    • fix Statistics data location in importer
  • Packages
    • patch from Tim Laszlo for redhat 4 repos
  • Chkconfig client tool driver
    • patch to properly disable services from Ti Leggett

1.0pre2

  • Snapshots -- New reporting system backend
    • New data model
    • Importer plugin
    • basic command line interface
  • Improve priority conflict error message
  • Schema improvements
  • Client Tool Driver Updates
    • YUMng
      • version=auto/any support
      • switch to native yum calls (improved speed, decreased code cruddyness)
    • RPMng version=any support
    • launchd update for 10.5
    • Portage driver update
  • bcfg2-info
    • pretty print generated configs
    • add profiling support
  • Packages: implement yum support
  • Init script fixes
  • doc updates
  • Server-side checksum support (client side remains to be done)
  • Cfg: delta fixes
  • Bcfg2-admin viz bugfix
  • Solaris packaging updates
  • Annotate client configurations with bind failure information
  • Refine plugin interface to include partial metadata sources
  • Tickets

1.0pre1

  • Modular version control support for repositories (plus new Git support)
  • Plugin architecture revamp (described in trunk/bcfg2/doc/plugin-roles)
    • Switch probes and properties to connector interface
  • Add new Packages plugin
  • Add support for out of tree plugins
  • Add Genshi Bundler (will be replaced by genshi support in Bundler)
  • version=any/auto support for APT/SYSV/Blast client tool drivers
  • new logo
  • Python 3k fixes

Tracking Development Releases of Bcfg2 (< 1.0)

This page provides an overview of issues users should be aware of when running Bcfg2 prereleases.

Fixed Issues

Version Description Severity Fix Revision
0.9.5pre5
Cfg state machine error Serious [3784]
importscript performance problems Serious [3795]
apt-get update is run before updates to sources.list Workaround [3785]
create-debian-pkglist mishandles arch-specific packages
when packages are only available on one arch
Workaround [3779]
YUMng traceback with incomplete Package entries
during entry reverification
Cosmetic [3656]
0.9.5pre3
SSHbase traceback upon new entry addition Serious [3617]
Diffs not displayed in interactive client mode Serious [3618]
Failure on error path in POSIX driver Cosmetic [3622]

Release Information

0.9.6rc1

  • Bugfixes over 0.9.6pre3
  • Model support for django 1.0

0.9.6pre3

  • NagiosGen? plugin
  • Centralized per-entry installation decision support
  • Static file monitoring infrastructure
  • Reporting system SchemaEvolution support
  • Tons of bugfixes

0.9.6pre2

  • bcfg2-reports (command line client to the reporting system)
  • Editor plugin
  • Plugin interface for metadata and statistics backends
  • bcfg2-admin query (command line interface to metadata)
  • FreeBSD rc support
  • Pkgmgr optimizations (10X speedup on python2.4+)
  • Switch server startup operations to process filesystem updates before listening on network
  • Add direct logging support for bcfg2 and bcfg2-server

0.9.6pre1

  • Refactor Cfg/TCheetah/TGenshi/SGenshi/Metadata to use common client- and group-specific entries
    • client- and group-specific entries can now be used as
      • Probes
      • TGenshi templates
      • SGenshi templates
      • TCheetah templates
  • bcfg2-admin refactor
    • Mainly conversions
    • Implement non-interactive mode for bcfg2-admin pull
  • Simplify client-side proxy code
  • Implement Multi-fingerprint support
  • Rework option handling (everything is now flat, and all option parsing occurs in the outermost calling script)
  • A variety of trunk-specific bugfixes

0.9.5pre5

  • importscript performance improvements
  • Implement pruned directories
  • APT.py - move apt-get update call to be effective during the run
  • Cfg.py bugfix - deal properly with fam event trace we previously messed up (important for some cases)
  • create-debian-pkglist - deal properly with multiarch packages when packages aren't available for all architectures
  • rpmlisting.py patch from solj (to deal with athlon arch systems)
  • YUMng/RPMng bugfixes
  • Pkgmgr - deal with comments properly in multiarch situations

0.9.5pre4

  • infoxml support has been included in TCheetah and TGenshi (now group-based file permissions and ownership can be trivially specified for any ConfigFile plugin)
  • TCheetah error information is now presented upon templating failures.
  • Probedata is now written to disk, for use with bcfg2-info (This, in conjunction with improved TCheetah templating error display should remove probe-based TCheetah templates from the "black art" category)
  • altsrc consistency checking is implemented (ie an error is produced if a configuration containing the same entry with different altsrc tags is generated for a client)
  • RPMng: Improved debug output when required attributes are not present
  • Schema updates
  • Fix diff display for non-binary ConfigFiles in interactive mode
  • Fix sshbase bug
  • Fix POSIX driver error paths

0.9.5pre3

  • support for info.xml files (described here?)
  • support for package instance mappings. (described here?)
  • added output options to bcfg2-query suitable for use with pdsh
  • fixed binary file uploads and bcfg2-admin pull
  • removed spurious -q in RPM.py
  • Improve client error message when entries are incomplete (print missing fields)
  • child process management fix in server
  • dynamic reporting system tb fix

0.9.5pre2

  • changed django reports admin to dev e-mail address
  • Add secondary config file for webservers (so that webservers don't need access to bcfg2.conf)
  • updated init script for agent mode
  • Add support for altsrc bindings to TGenshi
  • Implementing selective forking server, which runs read-only requests in child processes. Should dramatically improve scalability
  • merge realname into path for altsrc templates in TCheetah
  • Switch default to RPMng/YUMng (RPM/Yum are still around just not enabled by default)
  • quiet down RPMng a little (patch from lueningh)
  • Implement bcfg2-remote -H -
  • Add a realname attribute in altsrc bound entries and add TCheetah support
  • Add default attribute to basic group in default config
  • Fix use of altsrc when using Package entries with file attributes
  • Improve error handling in bcfg2-admin (Step towards resolving Ticket #469)
  • Switch DebInit to use invoke-rc.d (Resolves Ticket #434)
  • Fix bcfg2-info build command
  • add altsrc to schema

0.9.5pre1

  • Reporting System Features:
    • Hosts may be "expired" to prevent them from showing up in reports. Data still exists for them, so if one views a calendar date before they were expired, they'll still show up.
    • requires action The config file for reports has changed locations from the inappropriate location inside the bcfg2 python module, to be part of bcfg2.conf. Please look at the included example bcfg2.conf to see the new format
    • requires action Reporting System may be installed at any URL, that is, it can be installed in a sub directory and not at the root of a virtual host. Django 0.96 is now required.
  • Bcfg2 Agent Mode:
    • Initial release of this functionality
    • Client may run in an idle mode waiting for reconfiguration command from the server
    • Use bcfg2-remote to initiate a client's reconfiguration operation
    • Uses fingerprint based authentication for https xml-rpc connection
    • Useful for instant reconfiguration of client without ssh'ing to host
    • still need to add daemonize code and init script support (next pre)
  • Binary diff uploads now work properly
  • Added the TGenshi plugin (contributed by Jeff Ollie)
  • Added the SGenshi plugin
    • is intended for use as a structure, like bundler or base.
    • only uses the genshi xml format
    • results in completely programmable bundles
    • this could eventually replace both bundler and base, as it is
    • more powerful
  • Added entry remapping support
    • with the addition of an extra altsrc attribute, entries can be remapped to a different source.
    • For example, if you have the same config file with different paths on different architectures, you can add altsrc to use the same plugin and repository on all architectures. ie: <ConfigFile name='/etc/inet/hosts' altsrc='/etc/hosts'/> will cause all linux and solaris systems to use the same plugin source for data on all clients.
    • This feature was motivated by the need manage a bunch of config files using the same template