================== v1.4 Release Notes ================== This release focused mainly on improving TKLBAM's usability, making it more robust, and improving it as an independent general purpose tool. Motivation: more people would find TKLBAM useful if... ------------------------------------------------------ * If it worked on other Linux distributions (e.g., Debian and Ubuntu to begin with) * If users understood how it worked and realized they were in control. Magic is scary in a backup tool. * If it worked without the TurnKey Hub or better yet without needing a network connection at all. * If users realized that TKLBAM works with all the usual non-cloud storage back-ends such as the local filesystem, rsync, ftp, ssh, etc. * If users could more easily tell when something is wrong, diagnose the problem and fix it without having to go through TKLBAM's code or internals * If users could mix and match different parts of TKLBAM as required (e.g., the part that identifies system changes, the part that interfaces with Duplicity to incrementally update their encrypted backup archives, etc.) * If users could embed TKLBAM in their existing backup solutions * If users realized TKLBAM allowed them to backup different things at different frequencies (e.g., the database every hour, the code every day, the system every week) Monolithic all-or-nothing system-level backups are not the only way to go. * If it could help with broken migrations (e.g., restoring a backup from TurnKey Redmine 12 to TurnKey Redmine 13) * If it worked more robustly, tolerated failures, and with fewer bugs Changes ------- * TKLBAM no longer needs the TurnKey Hub or even a network connection - tklbam-init --solo option - tklbam-backup and tklbam-restore can now work without being linked to the TurnKey Hub * More powerful --force-profile option in init, backup and restore - The --force-profile=empty option allows you to force an empty profile, which is useful if: * you don't want TKLBAM to do a full system backup (e.g., you only want to backup a single directory) * TKLBAM can't download a profile to auto-configure itself (e.g., unsupported appliance or Linux distribution) * you want full control over the configuration of the backup * don't want to link TKLBAM to a Hub account (tklbam-init --solo) - The --force-profile option accepts appliance codenames (e.g., --force-profile=core). This makes --force-profile much easier to use. Previously the only option was to give it the exact profile version (e.g., ---force-profile=turnkey-core-13.0-wheezy-amd64) - The --force-profile option now accepts custom profiles such as those created by the "tklbam-internal create-profile" command. - tklbam-init and tklbam-restore now support the --force-profile option for setting a non-default backup profile. Previously, only tklbam-backup accepted the --force-profile option. * Increase the robustness of MySQL backup/restore by detecting and working around broken debian.cnf files, which can sometimes get out of sync with the mysql user database. * Improved logging - Log backup/restore output in real-time to /var/log Previously the logfile would only be written when backup/restore finished, which made it hard to diagnose problems with non-interactive runs of tklbam-backup (e.g., /etc/cron.daily/tklbam-backup) - Log exception tracebacks - Added a log rotation script * Usability improvements make TKLBAM more verbose and self-documenting Goals: - make TKLBAM easier to understand, less magical - make it easier to tell when something is wrong, diagnose the problem and fix it without having to go through TKLBAM's code or internals - explain that TKLBAM works with all the usual non-cloud storage back-ends such as the local filesystem, rsync, ftp, ssh, etc. many users probably didn't realize these worked - better explain the things users don't realize are possible don't expect users to read every bit of documentation first Highlights: - tklbam-backup now explains what files and packages have changed, what databases will be backed up, etc. - illustrative usage examples - run help output through pager - list URLs for custom --address storage backends we know work - replace cryptic error messages with more helpful suggestions - embedded usage help goes through pager (e.g., less) * better --debug behavior - print an explanation before dropping you into the debug shell - fix a PATH override issue which prevented duplicity from working in the debug shell - added another "breakpoint" when using restore --debug, right before duplicity is executed * Cryptographically signed profile-level hooks are now supported. It's a generic mechanism but the original motivation for this was to allow us to automatically fix migrations between two versions of an appliance (E.g., TurnKey Redmine 12 and TurnKey Redmine 13) * At least 17 bugfixes including... - restore --simulate would overwrite debian.cnf, breaking mysql - chmod 700 /TKLBAM