Skip to content

Latest commit

 

History

History
476 lines (444 loc) · 22.6 KB

History.rdoc

File metadata and controls

476 lines (444 loc) · 22.6 KB

2.11.0 (TBD)

2.10.1 (2018-9-7)

  • SyncWrap::PostgreSQL; Update component and postgresql.conf for support of version 10. Changes are mostly cosmetic and remain backward compatible with Postgres 9.4+

  • SyncWrap::Ubuntu; Versions ≥ 18.4 (LTS, “bionic”) knows its debian_version is (atleast) 10.

  • SyncWrap::CRubyVM

    • Add hashes of 2.2.9, 2.2.10, 2.3.6, 2.3.7, 2.4.3, 2.4.4, 2.5.1

    • Install libssl1.0-dev with ruby < 2.4 when on debian ≥ 10

  • SyncWrap::JRubyVM; Add hashes of 9.1.14, 9.1.15, 9.1.17

  • SyncWrap::AmazonLinux; Finally has systemd as of 2017.12

2.10.0 (2017-10-26)

  • SyncWrap::Debian; dist_update condition based on local context hasn’t worked properly since 2.7.0, when remote conditional install was implemented. Fix this by using a remote lock file and running prior to any install (inside install conditional) if it hasn’t been run in last 1 hour by syncwrap.

  • Add SyncWrap::Component#sh_if, sudo_if, and rudo_if helper methods for common bash conditionals. Using these where applicable to simplify various internal components.

  • Add SyncWrap::SystemDService#enable and disable commands

  • Add SyncWrap::TimeChecker utility component

  • SyncWrap::CRubyVM

    • Add hashes for 2.2.8, 2.3.5 and 2.4.2

    • Update default version to 2.3.5

  • SyncWrap::JRubyVM; Add hash for 9.1.13.0 and make it the default

  • SyncWrap::TarpitGem; default version 2.1.2

  • SyncWrap::RakeGem; default version 12.1.0, support user_install

  • Expand transitive dependency constraints for new releases: term-ansicolor, tins, json and nokogiri. The latest of tins and nokogiri are incompatible with jruby 1.7.x (in 1.9 mode) which prompts dropping jruby 1.7.x from syncwrap’s Travis CI. Compatible earlier versions are still available to users however.

2.9.1 (2017-8-4)

  • SyncWrap::JRubyVM

    • Avoid setting GEM_HOME environment var in the jruby 9.x installed profile by default. In 2.9.0, this was added as a substitute for the jruby.gem.home system property, which when set caused incessant warnings with 9.x. However setting GEM_HOME also undesirably effects gem bin wrapper install location. Instead just use the default in-dist path of jruby 9.x, and system gems will need to be re-installed with a jruby upgrade.

    • Add support for fast path gem user_install (no-op if same version specification is found)

  • Fix error message for CLI -S (session) with host not found

2.9.0 (2017-7-18)

  • SyncWrap::Debian

    • Fix Debian#dist_if_installed? grep pattern. Was previously giving some (so far harmless) false positives for known but not-installed packages.

    • Make the dist_if_installed? and dist_if_not_installed? methods more friendly for external use, with default arguments.

    • Expose a dist_update for external/explicit use, including :update_required option with dist_install.

  • SyncWrap::Arch, SyncWrap::RHEL; dist_if_* default arguments parity

  • SyncWrap::Network; Add name to /etc/hosts if necessary on Debian

  • SyncWrap::CRubyVM

    • Add hashes for 2.2.7 and 2.3.4

    • Update default version to 2.2.7

    • Preemptively add 2.4 to distro rubies to uninstall

  • SyncWrap::JRubyVM

    • Add hash for 1.7.27

    • Add hash and support for 9.1.12.0

  • SyncWrap::LVMCache

    • Add –yes flag to final lvconvert call, required by later versions, compatible with earlier

    • Add thin-provisioning-tools as dependency on Debian, as the included cache_check command is needed for reboot.

  • SyncWrap::Sudoers

    • Collect all sudoers config details here. This was previously spread between SyncWrap::Users and SyncWrap::UserData.

    • Add always_set_home option (was only default on RHEL)

    • Use common ordering of secure_path

  • SyncWrap::PostgreSQL

    • Make the stop after Debian package install conditional

    • Make Debian move of pg_data_dir conditional

    • Use the more obvious pg_data_dir with etc config on Debian

  • SyncWrap::OpenJDK support for Ubuntu 16.04 package openjdk-8-jdk-headless

  • Add SyncWrap::SystemD#systemctl_status with filtering of end-of-line whitespace in output, as has been oberved when calling ‘systemctl status` remotely over SSH.

2.8.3 (2017-1-31)

  • Upgrade SyncWrap::CRubyVM default version to 2.2.6 (+ hash for 2.3.3)

  • Upgrade SyncWrap::JRubyVM default version to 1.7.26

  • Disable exit on error for ‘systemctl` in SyncWrap::SystemDService#status. Early exit was interfering with combining and merging `systemctl status` calls.

2.8.2 (2016-11-1)

  • Add new SyncWrap::ChangeGuard component to preserve change key state in remote guard files, across any transient component failures.

  • Upgrade SyncWrap::JRubyVM default version to 1.7.25 (+ hash for 1.7.26)

  • Upgrade SyncWrap::CRubyVM default version to 2.2.5 (erratum)

  • Additional, comment-only updates to postgresql.conf as of version 9.6.1. Changes remain backward compatible with 9.1+.

2.8.1 (2016-7-20)

  • Add support for passing options to SyncWrap::SystemD#systemctl which are passed though to sudo. Since systemctl returns non-zero for a variety of normal conditions, the :accept option can be passed to account for these.

  • Accept commonplace (normal operations) exit codes 0-3 from ‘systemctl` in SyncWrap::SystemDService#status

  • Fix silly typo in SyncWrap::ChangeKeyListener

2.8.0 (2016-7-19)

  • Only allow public component methods to be executed via the SyncWrap::Space#execute and thus the CLI. Previously it was possible to execute protected or private methods.

  • Uniformly name start, stop, and restart methods on SyncWrap::Iyyov and SyncWrap::PostgreSQL for consistency and use in the CLI. Also add reload and status methods to these components.

  • Add optional SyncWrap::Puma systemd_socket (activation) support:

    • The systemd_unit property is deprecated in favor of systemd_service

    • Add lookup for systemd unit source files under the specific names configured, before using generic puma.service/puma.socket templates.

    • Add systemctl daemon-reload based on changes

    • Restart service or both socket and service based on changes

  • Don’t set a default port for SyncWrap::Puma, since users may prefer to set port(s) in a puma config file. If relying on this port selection, users will need to specify ‘port: 5874` on upgrade.

  • Add SyncWrap::Puma start, stop, restart, and status methods.

  • Add SyncWrap::SystemDService module for reuse

  • Make systemd flag consistent between RHEL and Debian and respect false.

  • SyncWrap::Bundle, SyncWrap::BundledIyyovDaemon and SyncWrap::Puma now support ‘listening’ for changes on multiple change keys, which is more intuitive to configure than having SyncWrap::SourceTree produce changes on multiple change keys. However, the later is still supported.

  • Add SyncWrap::ChangeKeyListener module for reuse

  • Add :mode option to SyncWrap::RunUser#mkdir_run_user, SyncWrap::RunUser#run_dir_mode, SyncWrap::SourceTree#remote_dir_mode and change defaults to 0755. This was previously hard-coded to 0775, which caused ssh access as the :run_user to fail and other conflicts with distro security features.

  • Set ssh option PasswordAuthentication=no when using Users#ssh_user_pem. This is reasonable with use of a PEM file and provides a (partial) workaround for an occasionally observed timing issue causing a password prompt to be temporarily offered on a booting CentOS host with Cloud-Init.

  • CLI (-l –list*) listings now attempt to format output to (Unix) terminal width

  • The :check_install option to Distro#dist_install added in 2.7.0 is now true (on) by default

  • The previously deprecated :succeed flag to Disto#dist_install/dist_uninstall has been dropped

  • Replace RHEL installed test with “rpm -q” which is considerably faster than “yum list”

  • Add RHEL#dist_install :yum_flags options for special cases

  • Fully replace the original use case for the :succeed option with SyncWrap::RHEL#dist_install_url, defaulting to package name extracted from rpm URL or file path for the install check

  • SyncWrap::Iyyov with systemd should also conditionally daemon-reload

  • Update SyncWrap::PostgreSQL and postgresql.conf for support of version 9.6 (as of beta 2). Changes remain backward compatible with 9.1+ and SyncWrap 2.3+

  • Minor fixes based on ruby 2.4 testing (including with frozen string literals)

  • Upgrade dev dependencies to minitest 5.8.4 and tarpit 2.1.1

  • Upgrade SyncWrap::CRubyVM default version to 2.1.10 (+ hash for 2.2.5)

  • Upgrade SyncWrap::JRubyVM default version to 1.7.24 (+ hash for 1.7.25)

  • Upgrade SyncWrap::BundlerGem default version to 1.12.5

  • Upgrade SyncWrap::TarpitGem default version to 2.1.1

2.7.1 (2016-3-2)

  • Fix handling of the -R/–components-in-role flag to correctly limit to hosts including the role, for both execution and listing (-l). Previously errors would occur in execution if a matching (-h) host pattern restriction was not also provided.

  • Fix interpretation of check_install and (deprecated) succeed options when used in calls to dist_install (all distros).

  • Avoid check_install on RHEL when local rpm files or URLs are passed as a package to install. Previously the check_install conditional would always yield true (install needed) for these.

2.7.0 (2016-1-21)

  • Add SyncWrap::ZoneBalancer utility for balancing new hosts across multiple (AWS) availability zones for fault tolerance.

  • Update SyncWrap::PostgreSQL for support of version 9.5. Changes, including postgresql.conf updates, remain backward compatible with 9.1+ and SyncWrap 2.3.0+

  • Add a check_install option to Distro#dist_install for all distros. This adds bash conditionals to check for the presence of system packages before invoking the package manager install/update commands. If already installed, this can greatly improve provisioning speed and will not perform updates which might be better left to when provisioning new hosts. The option is off by default for now, but is used for some more complete component dependencies (see below). To enable it globally, add ‘options( check_install: true )` to your sync.rb file.

  • Make SyncWrap::RHEL#dist_uninstall :succeed (don’t fail even if no packages are present) the default. This option is now deprecated on dist_uninstall.

  • Use ‘apt-get remove`, instead of aptitude on Debian and Ubuntu.

  • Since Debian’s ‘apt-get remove` and Arch’s ‘pacman -R` fail if any specified package is not found, test if each package is installed before removing it. The leniency of dist_uninstall is now consistent across all distros.

  • Some minimal distros like Debian 8 might not include rsync in a base image. Add a conditional dist_install of rsync to the SyncWrap::Users component before attempting to rput user home dirs. A distro component needs to be included before Users for this to occur. Backward compatibility is maintained when this is not the case.

  • Some minimal distro base images might not include curl. Add dist_install of curl to components that use it, either as part of build dependencies, or separately using the new check_install feature (see above) to minimize performance impact.

  • Add preliminary support for non-default or multiple VPCs, or mixed EC2-VPC and EC2-Classic deployments via the vpc and subnet_id profile properties with the SyncWrap::AmazonEC2 provider.

  • Add workaround for crash on jruby 9.0.0-4 with (wrapped) sync file load (See jruby#3180 and #3609). Tests show wrapped load working correctly on jruby 1.7.24 and 9.0.5 snapshots.

  • Upgrade SyncWrap::JRubyVM default version to 1.7.23 (+ hash for 1.7.24)

  • Upgrade SyncWrap::CRubyVM default version to 2.1.8

  • Fix tmpdir access issue with rput with templates to localhost and alt non-root :user option.

2.6.2 (2015-12-3)

  • By way of comparability to RHEL 7, SyncWrap::AmazonLinux with a specified amazon_version property >= ‘2014.03’ would incorrectly return true for systemd?. As Amazon Linux has yet (2015.09) to migrate to systemd, override this to return false.

2.6.1 (2015-12-2)

  • Default SyncWrap::PostgreSQL to version 9.4 on Debian 8+.

  • Use PATH to find ‘systemctl`, like other system tools. Debian 8 still doesn’t have merged /usr/bin.

  • Add -a/–add-role flag to CLI to add role(s) with create or image beyond what is specified by the profile.

  • Add curl to existing build deps of SyncWrap::CRubyVM and SyncWrap::Hashdot. This resolves the simplest cases where a minimal base image not-including curl would have failed. Other cases will be addressed in subsequent releases.

2.6.0 (2015-11-13)

  • Add SyncWrap::LVMCache component, with SyncWrap::Distro#unmount_device moved from MDRaid.

  • Add SyncWrap::Space#compose (and main) utility for sync file inline components.

  • Add systemd support for all distros: Arch, RHEL/CentOS 7+, and by default, Debian 8+ and Ubuntu 15.04+ via the SyncWrap::SystemD module. See also various updates in SyncWrap::Distro.

  • Add SyncWrap::Iyyov systemd service unit file and install support.

  • Add SyncWrap::Puma systemd service unit file and install support.

  • Add cryptographic hash verification support to SyncWrap::CRubyVM, SyncWrap::JRubyVM, SyncWrap::Hashdot, and SyncWrap::CommercialJDK.

  • Add -R/–components-in-role flag support in CLI to limit components executed to those contained by one or more roles.

  • Upgrade SyncWrap::JRubyVM default version to 1.7.22

  • Upgrade SyncWrap::CRubyVM default version to 2.1.7

  • Move AmazonEC2.ec2_user_data to SyncWrap::UserData module for broader use.

2.5.1 (2015-10-19)

  • Add SyncWrap::RHEL#dist_uninstall :succeed flag for removing packages which may not exist

  • Fix for CRubyVM on minimal CentOS 7.1: Use above :succeed flag on distro ruby uninstall, add ruby 2.2

  • Fix –delete-attached-storage on AWS HVM by broadening pattern of device names

  • Fix a timing issue observed with SyncWrap::AmazonEC2 instance creation

2.5.0 (2015-3-20)

  • Merge 9.4 release postgresql.conf additions (comments only)

  • Add :manifest option to rput and SourceTree (with ./Manifest.txt default)

  • Upgrade SyncWrap::JRubyVM default version to 1.7.19

2.4.0 (2015-1-2)

  • Upgrade SyncWrap::CRubyVM default version to 2.1.5 and add libffi as build dependency.

  • Upgrade SyncWrap::JRubyVM default version to 1.7.17

  • When using the sh :user option which uses ‘sudo` on the remote, add a `cd /` to the start of the shell command sequence. Prior to this change, the working directory remained the home directory of the ssh user (by convention, a dev. user) which shouldn’t be writable and might not even by readable by the target :user (ex: runr). This caused often cryptic warnings or even fatal errors when accessing certain command line tools from the shell.

2.3.0 (2014-9-20)

  • Add SyncWrap::Debian (with Ubuntu as child), SyncWrap::CentOS and SyncWrap::AmazonLinux (with RHEL as parent) to form a Distro hierarchy with various version properties. Extends distribution support and enables better distro-specific defaults (for example in PostgreSQL).

  • Add Debian Network and PostgreSQL support

  • SyncWrap::OpenJDK notes on Debian JDK bloat from X11

  • Add preliminary (dev environment) support for SyncWrap::Arch Linux, including support in OpenJDK and Hashdot.

  • Add SyncWrap::SourceTree and SyncWrap::Bundle components

  • Add SyncWrap::Puma component

  • Add SyncWrap::BundlerGem, SyncWrap::RakeGem, SyncWrap::TarpitGem components

  • Add SyncWrap::BundledIyyovDaemon for Iyyov support for bundled Iyyov daemons

  • Fix JRubyVM#gem_install version check

  • Add RubySupport#gem_install support for user_install as specific user.

  • Protect various component accessors which should not be visible at the Context level.

  • The SyncWrap::PostgreSQL#version deprecated/aliased in favor of SyncWrap::PostgreSQL#pg_version

  • SyncWrap::RunUser#make_dir deprecated/aliased in favor of SyncWrap::RunUser#mkdir_run_user

  • Introduce SyncWrap::VersionSupport and use for array-version comparisons

  • Add TestComponents bash validate assertions, and random permutation for changes

2.2.0 (2014-7-13)

  • New SyncWrap::Component#sh :pipefail option to pass bash flag “-o pipefail” to return the first non-zero command return from a pipeline. This option defaults to true when the :error (bash -e) option is also true (the default). You should review pipeline usage in your own components as part of upgrading. Internally, the SyncWrap::Hashdot component required an adjustment for this change.

  • Major SyncWrap::PostgreSQL component updates. You need to review and adjust any configuration overrides and constructor properties:

    • Use templates to consolidate RHEL and Ubuntu configuration. Files moved to sync/postgresql. (#2)

    • Use distro default PG data directory, by default. Tested Amazon Linux EBS MDRaid mount direct to /var/lib/pgsql9. (#3)

    • No elevated permissions (trust, etc.) by default (#4)

    • Configuration is 9.3 ready (9.1-9.3 compatible)

    • Configuration no longer assumes AWS EBS optimizations, relaxed guarantees. See test/aws/sync.rb sample for new PostgreSQL properties to maintain compatibility.

  • Removed vestigial SyncWrap::Distro package_map and localize package variations to the individual components.

  • SyncWrap::RunUser now creates a system user/group with default home the same as run_dir.

  • Add :ebs_mounts AWS profile option to support HVM-style dev mounts, made apparent by EC2 t2 instance types.

  • Upgrade SyncWrap::JRubyVM default version to 1.7.13

  • Upgrade SyncWrap::CRubyVM default version to 2.1.2

  • Upgrade to aws-sdk ~> 1.46 (no longer depends on uuidtools)

2.1.3 (2014-7-8)

  • Use sudo instead of –rsync-path=sudo… for :user on localhost

  • Cleanup the environment for gem_install on different ruby, when localhost bundler is in play.

  • Fix RubySupport#gem_install count regex (used with :check)

  • Remove obsolete accept: 0 in gem_install :check capture

  • Upgrade default CRubyVM to 2.0.0-p481

  • Add CRubyVM 2.1.x version support

2.1.2 (2014-4-21)

  • Fix Network.dns_search (alias dns_domain) to resolve.conf support

2.1.1 (2014-4-15)

  • Use ‘syncwrap-’ as tmpdir prefix.

  • Fix Users, RunUser use of useradd, adding -s and -m options, for Ubuntu (where bash shell is not default)

  • Add RunUser.run_user_home option; no change in default

  • IyyovDaemon: handle case of non-version related job changes

2.1.0 (2014-3-5)

  • Simplify existing state handling (i.e. Ubuntu.first_apt?, Users :just_created) by introducing SyncWrap::Component#state

  • Add hashdot_updated state (i.e. jruby update) and use in Iyyov and IyyovDaemon components to signal required restarts.

  • Add :iyyov_root_jobs_installed state keeping to avoid redundant rput’s to Iyyov root jobs.rb

  • Add CLI –create-image and AmazonEC2 support

  • Add SyncWrap::GitHelp module for using a git hash as a host/image tag from the profile

  • Add :imaging state awareness to Iyyov and IyyovDaemon: stop (or don’t launch) these when imaging

  • Add availability_zone to imported/saved Amazon host properties

  • Fix failure on (EC2) import from Host.initialize order

  • EC2 create_instance maps profile description and tag to tags

  • Add –ssh-session (interactive shell) support to CLI

  • Add –verbose-changes (verbose only for changing rputs) CLI option

  • Drop CLI -I short option for infrequently used –import-hosts

  • Disable EC2 operations, don’t fail, if AWS credentials not found

  • Improve Users pem-not-found warning

  • Improve CLI –help summary

  • Upgrade default CRubyVM to 2.0.0-p451

2.0.0 (2014-2-26)

  • Major rewrite with only very limited conceptual compatibility with 1.x. See README, LAYOUT, and examples.

  • Now requires ruby 1.9 stdlib. Internally makes extensive use of new Hash syntax.

  • New CLI, ‘syncwrap` command and sync.rb file replaces Vlad/RemoteTask and rake (though rake integration is still possible.) SyncWrap 2 is a standalone complete solution.

  • Component classes and dynamic binding replaces the subject-oriented module mixins.

  • Block oriented, thread safe, colored console output

  • SyncWrap::Component#sh replaces ‘run`, includes a command queue and compossible scripts.

  • SyncWrap::Component#rput with multiple sync_paths and transparent ERB template support.

  • Extensive updates, templating, reliability improvements, and optimization of existing provisions (now Components)

  • New Iyyov jobs.d support and standardized SyncWrap::IyyovDeamon

1.5.2 (2013-4-10)

  • Add check for init, aws_configure only if aws_config_json file exists.

  • Generalize waiting for created/terminated AWS resources, including better diagnostic output.

  • Add missing wait for EBS volume creation.

  • Add default wait for Route53 CNAME creation, using current authoritative Amazon name server.

1.5.1 (2013-4-3)

  • Include syncwrap/aws.rb for real.

1.5.0 (2013-4-3)

  • Extended shell_escape_command for sudo sh command.

  • New SyncWrap::AWS for EC2 instance creation, mdraid over EBS volumes, and Route53 DNS updates.

  • Add *_s command format-only variants of the distro commands for increased flexibility usage and ability to reduce the number of shells/round-trips.

  • Add :minimal flag support to Ubuntu.dist_install*

  • Add auto-once, per-host ‘apt-get update` to Ubuntu.dist_install*

1.4.0 (2012-10-16)

  • PostgreSQL configuration updates for 9.2.x (RHEL only)

  • Add support for build, deploy, configure of Apache Qpid for which stock RPMs are not available on Amazon Linux. This includes corosync build for a working cluster setup on EC2.

  • Add :succeed option to RHEL.dist_install (for local RPM files that may already be installed)

1.3.0 (2012-10-4)

  • Include RHEL/Amazon Linux PostgreSQL 9.1 config and deploy support and reorganize for Ubuntu support as well. Default deploy data dir is now /pg/data which makes sense for an EBS mount. Config is further tuned for EBS. PostgreSQL::EC2 has been dropped. PostgreSQL::RHEL and PostgreSQL::Ubuntu are auto-included with PostgreSQL module if RHEL or Ubuntu is included.

  • For performance on relatively slow virtual hosts, only check iyyov_install if iyyov_install_jobs( :install => true )

  • Add generic etc/gemrc and jruby_install_gemrc (incl in jruby_install)

  • Include jstat in list of java command symlinks with java_install

  • EC2.ec2_reformat_mnt_as_ext is for ephemoral not EBS, rename attribute to ec2_es_device

1.2.1 (2012-9-25)

  • Build hashdot with java 1.7.0_07 as well

  • Fix lib jruby link on update: –no-dereference

1.2.0 (2012-9-25)

  • Touch jobs.rb if not otherwise modified by iyyov_install_jobs. This notifies iyyov to restart a daemon when the jobs.rb is otherwise unchanged (and using a daemon version range.)

  • Upgrade to JRuby 1.6.8 (default)

  • Upgrade to Iyyov 1.1.4 (default, in init.d/iyyov)

  • Upgrade to java 1.7.0_07

1.1.0 (2012-9-13)

  • Add (boxed-)geminabox provisions and deploy task

  • Upgrade to (default) jdk-ora-1.7.0_05-x64

  • RHEL version of test Rakefile, init.d/iyyov

  • Fix RHEL yum args

  • Silence user_exist? id command output

  • iyyov_install_rundir as user_run

1.0.0 (2012-7-15)

  • Initial release.