We are absolutely chuffed to bits to finally announce the general availability of Bcfg2 1.3.0. It is available for download at:
ftp://ftp.mcs.anl.gov/pub/bcfg
This major new release has been a long time coming. It's absolutely packed with new features, tons of bug fixes, and all sorts of goodies. Please read the release notes very thoroughly!
The following are major, backwards-incompatible user-facing changes:
- Reworked service modes to make them more consistent and granular. A tool located at tools/upgrade/1.3/service_modes.py can assist in migrating your old configurations. Due to this change, a Bcfg2 1.3 server will work with Bcfg2 1.2 (and earlier) clients with the ServiceCompat plugin enabled, but a Bcfg2 1.2 (or earlier) server will not work with Bcfg2 1.3 clients. Additionally, services that aren't really services -- i.e., for which the status command is expected to fail (or the equivalent on your OS of choice) -- are not currently supported. That will be fixed in the next release of 1.3. (http://docs.bcfg2.org/server/plugins/generators/rules.html#service-mode-specification)
- Moved configuration for several plugins (Rules, Packages) into base bcfg2.conf file. Reworked database configuration for DBStats to make it more accessible to other plugins. A tool located at tools/upgrade/1.3/migrate_configs.py can assist in migrating your old configurations.
- Changed the 'perms' POSIX attribute to 'mode' for better consistency. A tool located at tools/upgrade/1.3/perms_to_mode.py can assist you in migrating your old configurations. Due to this change, you will need to enable the POSIXCompat plugin to allow older clients to talk to a 1.3 server.
- The server now requires the Python daemon library.
- The YUMng client tool has been renamed to YUM and the RPMng client tool has been renamed to RPM.
- The Bcfg2 client now exits on Probe failure by default.
- The DBStats plugin has been superceded by a new Reporting plugin and subsystem. If using the DBStats plugin, you will need to migrate your data by running the script located at tools/upgrade/1.3/migrate_dbstats.py. In addition, you will need to change DBStats to Reporting in bcfg2.conf.
- The Svn2 and Svn plugins have been merged into a single "Svn" plugin. The new plugin supports both PySVN, or, if not available, using svn commands.
The following plugins and features have been deprecated, and will be removed in a future release, likely 1.4:
- Accounts
- Hostbase
- Snapshots
- Statistics
- TCheetah
- TGenshi
- info and :info files (see tools/upgrade/1.3/migrate_info.py)
- .cat and .diff files
- Packages 'magic groups'
- YUM24 tool
- Paths with perms='inherit'
- FAM filemonitor
The following deprecated plugins have been removed:
- BB
- SGenshi
- Svcmgr
The following is a non-exhaustive list of new features:
- Reports web interface improvements
- Inotify filemonitor (drop-in replacement for gamin/fam)
- DB2 support for reports
- Encryption support (http://docs.bcfg2.org/server/encryption.html)
- Ability to store encrypted Cfg/TGenshi/TCheetah files (http://docs.bcfg2.org/server/plugins/generators/cfg.html#encrypted-files)
- Properties element encryption (http://docs.bcfg2.org/server/plugins/connectors/properties.html#encrypted-properties-data)
- bcfg2-crypt utility for encrypting Properties and Cfg files
- Support for on-the-fly or on-demand Cfg file syntax checking (http://docs.bcfg2.org/server/plugins/generators/cfg.html#content-validation)
- Much improved Genshi error handling
- New Properties convenience method, XMLMatch(), and automatch attribute allow you to write structured Properties files and then automatically access only data apropos to a client in templates rendered for that client (http://docs.bcfg2.org/server/plugins/connectors/properties.html#automatch)
- Implemented "service removal" (via status attribute #1075)
- Improvements to bcfg2-admin interface
- OpenCSW client tool
- Support for Puppet External Node Classifiers (http://docs.bcfg2.org/server/plugins/connectors/puppetenc.html)
- SELinux support (http://docs.bcfg2.org/server/selinux.html)
- IPV6 support
- Ability to query by bundle name in bcfg2-admin query
- Metadata enhancements
- Client tags, nested Group tags, and negated Group and Client tags in groups.xml (http://docs.bcfg2.org/server/plugins/grouping/metadata.html#metadata-groups-xml)
- Database-backed plugin for storage (http://docs.bcfg2.org/server/plugins/grouping/metadata.html#clients-database)
- Ability to store probe data in database instead of probed.xml (http://docs.bcfg2.org/server/plugins/probes/index.html#data-storage)
- Support for ACLs (on filesystems that support them) (http://docs.bcfg2.org/server/plugins/generators/rules.html#acls)
- New TemplateHelper plugin allows storing and versioning Python snippets used in templates along with the rest of your Bcfg2 specification (http://docs.bcfg2.org/server/plugins/connectors/templatehelper.html)
- Added lots of unit tests and started using http://travis-ci.org for Continuous Integration testing
- Improvements to XInclude handling (includes-of-includes, relative include fixes, XInclude support in more files)
- Fixed and made configurable XML-RPC retries
- Server-side client metadata object caching (http://docs.bcfg2.org/server/caching.html)
- Loads of documentation improvements
- Update reports to work with Django 1.4
- New bcfg2-info subcommands: automatch, probes
- Allow server to drop privileges (http://docs.bcfg2.org/server/configuration.html#steps-on-bcfg2-1-3-0)
- Launchd support for OS X 10.7 and 10.8
- Support for JSON and YAML properties files
- New bcfg2_local.py tool to run bcfg2 against a local specification
- Git plugin improvements:
- (Optional) support for GitPython library
- Git.Update RMI to allow updating the local working copy
- Built-in support for managing POSIX users and groups (http://docs.bcfg2.org/server/plugins/generators/rules.html#posixuser-tag)
- Built-in support for generating SSH keys (http://docs.bcfg2.org/server/plugins/generators/cfg.html#ssh-keys)
- SSLCA improvements
- Support for Group and Client tags in cert.xml and key.xml (http://docs.bcfg2.org/server/plugins/generators/sslca.html#cert-xml)
- Support for explicitly specifying subjectAltNames for certificates (http://docs.bcfg2.org/server/plugins/generators/sslca.html#element:subjectAltName)
- Cheetah and Genshi templates now get nearly identical variable sets
- Templates now have an additional variable, repo, which holds the repository root
- Svn plugin supports conflict resolution
- Debugging improvements
Special thanks to everyone who contributed code to 1.3.0: Andy Brody, Arto Jantunen, Brent Bloxam, Calvin Cheng, Carl Jackson, Chris Brinker, Christopher 'm4z' Holm, DongInn Kim, Fabian Affolter, Jake Davis, Jason Kincl, Jeroen Dekkers, John Morris, John 'Skip' Reddy, Jonathan Billings, Luke Cyca, Matt Kemp, Phillip Steinbachs, s19n, Tim Laszlo, Torsten Rehn
And, of course, to everyone who tried out 1.3.0 in the prereleases and release candidates and helped us find and squash bugs.