2014-05-01 Jan Gehring (0.46.0) * Rex::Box, added kvm support - #174 * core: allow passing template content to template command - #345 - reneeb * core/report: refactored report generation. This change break backward compat. because the report format changed. * core: added groups_dbi() function to generate server groups from sql - #346 - Jean-Marie RENOUARD * core: added groups_yaml() function to generate server groups from yaml file - Jean-Marie RENOUARD * core: add support for df on a given mount point - Simon Bertrang * cloud/amazon: fixed a case where amazon returns instance item in an array - Kasim Tuman * core: added authentication to download() function. - #340 * core: refactored tmp dir generation - FErki * cloud: added cloud_volume detach/attach function * cloud/amazon: fixed multiple tags - David Golovan * core: added description to environments - #274 * refactored README.pod to README.md, added build badge - eduardoj * core: extended rexify command to work with git * core/test: Added Rex::Test - Framework to run tests * core: Connect failure reports "Error running task/batch: Wrong username/password or wrong key" - #359 - eduardoj * core/cmdb: path can now have variables / can be extended * core/user: refactored handling of home directory creation. This might break compat. because we are following the system default now. (added create_home option) - #270 - FErki * core: added a special load path for perl libraries, so that we don't mix up perl and rex modules. * core/service: using nohup to work around a bug in Net::SSH2/libssh2 * core: the caching is now enabled by default. this might break backward compat. if you are using chroot() to another system inside a task. * core: added 'no_cache' feature. 2014-04-13 Jan Gehring (0.45.3) * fixed jiffybox endless loop on creating instances. #344 - reneeb 2014-04-12 Jan Gehring (0.45.2) * fixed special mkdir() case on local windows runs. 2014-04-11 Jan Gehring (0.45.1) * no_overwrite option for file() function * ensure 'directory' option for file() function * added notifications * pkg resource (replacement for install function) * allow array for file() function * check if iptables rule already exists * creates option for run() resource * only_if and unless option for run() resrouce * added notification for service() resource * added account() resource (as replacement for create_user) * fixed SCM::Git to work with sudo * update _parse_ip subroutine. be possible to parse ppp0. #328 - Tomohiro Hosaka * support -g to supply group name - #330 - fanyeren * added openstack cloud support - Ferenc Erki * run() resource support customized environments - #316 andrejzverev * can_run() now returns the first command found as string - #193 * read cpu information out of /proc/cpuinfo if dmidecode is not available - #306 * Handles the case where rsync is missing, and that makes Rex wait forever - #331 - Joris DE POOTER * fixed $Rex::Logger::format does not apply. - #335 * fixed download() command on windows - #271 * added cloud_image_list function() * fixed debian system_update - #339 - Niklas Larsson 2014-03-02 Jan Gehring (0.44.6) * fixed wrong expansion of home paths #324 * fixed return code on failed connects is wrong #317 * get as much output from ps(1) as possible #323 - sbertrang 2014-02-25 Jan Gehring (0.44.5) * fixed shell gathering 2014-02-17 Jan Gehring (0.44.4) * fixed manifest file 2014-02-14 Jan Gehring (0.44.3) * do not call sprintf on undefined values to prevent warnings - #312 - sbertrang * add ksh to shells - #310 - sbertrang * only pass actual option strings to prevent ssh crashes - #309 - sbertrang * rexify does not create projects due to missing file error - #318 * sed command changes mode of target file - #314 2014-02-08 Jan Gehring (0.44.2) * fixed sudo_without_sh - #305 * added warning if no perl interpreter was found on the remote system - #302 2014-02-02 Jan Gehring (0.44.1) * fixed detection of openSUSE with lsb-release installed - #297 * use Makefile.PL for tests. fixed #300 * Support for DBI \%attr hashref - #296 - stefb69 * Make quiet mode not mute warnings and errors. - #294 - slashbeast * new cli parameter -qw for quiet with warnings - #294 2014-01-25 Jan Gehring (0.44.0) * docker support (experimental) - #278 - chenryn * format the output of say() - #155 * userdefined columns for ps() command - #175 - dirkcjelli * using tilde (~) sign for directories - #198 - gnouc, krimdomu * SCM::Git, now uses cwd option of run() command, so it works also remote. - #211 - atrodo * Box default pkg update - #217 - endyman * run_batch() command to run batches on demand - #222 - jorisd * Allow "sed" function to work on multiple lines. - #227 - davidolrik, krimdomu * Added bulk_install() method for packages installing - #229 - jorisd * Enable bulk_install for Gentoo and OpenWrt - #231 - ferki * Added some hooks at central points in rex, so that it is possible to control the behaviour of rex in some points. * added on_change hook for sync_up/sync_down - #232 * Rex::Group::Lookup::Command - read hostnames from a command. - #233 - fanyeren * Improve user and group management on OpenWrt - #242 - ferki * Add kernel module (un)loading support for OpenWrt - #243 - ferki * Add service status support for OpenWrt - #246 - ferki * make ssh read buffer configurable (for Net::SSH2 connections) - #247 this will speedup the connection, but may break on older systems! * Add systemd service provider support for Gentoo - #250 - ferki * Add systemd service provider support for Mageia - #282 * feature flag to deactivate path cleanup - #261 * feature flag to parse $HOME/.profile - #262 * Cloud::Amazon Check to make sure it is HASH before key look up - #263 - oneness * autodie feature if run() fail - #265 * added support for tcsh shell - #284 * Fix guestinfo for Gentoo - #236 - ferki * get_host can't find aliases - #239, #240 - jorisd, ferki * rsync get wrong user if using "auth for $task" - #252 * Flag existing feature sudo_without_sh as found - #253 - gittex * Cleaned-Up Data module dependence - #254 * iptables arguments needs quote if they are whitespaced - #257 - jorisd * add Pod encoding marker - #259 - sergeyromanov * "needs" doesn't know how to call tasks from the main Rexfile - #260 * gathering alias network interfaces like eth0:0 - #264 * Cron: Jobs can be duplicated - #269 - jorisd * FreeBSD: store netmask in dotted decimal format - #287 - andrejzverev * Uninitialized value in OpenSSH.pm - #290 - samuelet 2013-10-03 Jan Gehring (0.43.7) * fixed problem with unconfigured network devices * fixed return of complete cmdb * fixed bug with the reporting initialization 2013-09-17 Jan Gehring (0.43.3) * fixed return of string '0' on stdout * fixed loading of report via env variable * fixed manifest 2013-09-17 Jan Gehring (0.43.2) * #234 - Silent yum operations - Chris Steigmeier 2013-09-16 Jan Gehring (0.43.0) * #223 - generating reports of changed things on the remote system (report infrastructure) * #220 - atomic uploads * #219 - df function doesnt parse errors - jorisd * #218 - problems with escaping of special characters, reverted back to old behaviour (pre 0.42) * #215 - input validation for rexify to prevent creation of invalid module names * #214 - yum operations should be silent * #213, #231 - rexify to use proxy settings - Chris Steigmeier * #231 - Another Red Hat Enterprise flavor - Chris Steigmeier * #200 - Refactor OpenWrt user module - Ferenc Erki * #195 - Fix a typo in example code - Boris Däppen * #194 - Prefer ip command over ifconfig - Ferenc Erki * #189 - Zero values in crontab fields - Ferenc Erki * #186 - Turn "eval your Rexfile" into a debug message - Anders Ossowicki * #210 - zypper --no-gpg-checks option * #208 - Cache inventory of servers for faster execution * #206 - sync_up function doesn't work in modules. * #196 - Support port with ranged hostnamed * #180 - support of other shells than bash for the PATH / environment variable - Cuong Manh Le * #177 - if a feature can't be satisfied, die() * #166 - tmp directory now configurable 2013-07-04 Jan Gehring (0.42.4) * fixed an issue with append_if_no_such_line when searching for a string containing a quote. 2013-06-29 Jan Gehring (0.42.3) * #189 fixed zero values in crontab - ferki * fixed ownership problem with sudo mode and file manipulation 2013-06-23 Jan Gehring (0.42.2) * fixed local run of run_with helper command 2013-06-22 Jan Gehring (0.42.1) * #178 - no_ssh option doesn't work with OpenSSH connection * #181 - ssh ports doesn't work with Net::OpenSSH * #182 - addition parameters doesn't work for ini files * #183 - fqdn doesn't work in ini files * #184 - hostname evaluation and additional parameters doesn't work together 2013-06-15 Jan Gehring (0.42.0) * added Net::OpenSSH support - chenryn, jfried * custom user for sudo command * new function: delete_lines_according_to * new feature flag use_server_auth * improved ini file parsing * support for custom server parameters * cwd option for run command * speed improvements: #123, #133, #135, #136, #137, #143 - liedekef * removed blastwave package capabilities from solaris, because blastwave doesn't exists anymore * #129 - removed an unnecessary opendir call - liedekef * #148 - use equery for Rex::Pkg::Gentoo in get_installed, later replaced by #165 - tianon * #149 - updated most of Rsync with server-specific auth - tianon * #159 - don't execute a task if the defined group doesn't contain servers. There is a feature flag to disable this behavior (empty_groups) * #163 - Rex::Pkg::Gentoo: Fix separator character between package name and version * #165 - Rex::Pkg::Gentoo: Replace get_installed checking method 2013-05-03 Jan Gehring (0.41.3) * fixed using -c flag with Rex::Box - #160 * fixed parsing ssh/config file - #158 * get_box() : better error message - #157 * fixed PATH variable for run() with multiple commands - #156 2013-04-19 Jan Gehring (0.41.2) * fixed exit status code for some situations where it fails * fixed rexify --use=module command * fixinig 'unititialized value' output of inspect() function. returning now 'no value'. - #152 * added check if template result is empty. if so - die() - #152 * fixing problem with invalid variable names in templates - #152 2013-03-30 Jan Gehring (0.41.1) * fixed a parsing bug in df output * fixed mount command with persistend option 2013-03-30 Jan Gehring (0.41.0) * Function to get the last output of a command that uses run() #104 * Refactores Cron module, added environment variable support to cron * New sync module * added Hardware::VirtInfo module #119 - Franky Van Liedekerke * new keyword "case" * Refactored net_ssh2_exec() function - Peter H. Ezetta * Refactored local command execution to use IPC::Open3 * Changed the Debian is_installed function to use the more accurate get_installed function. - Samuele Tognini * '-t' option should work with '-e' option. rex -t 2 -H "hostA hostB" -e 'run "sleep 10"; say run "uptime"' should run in parallel. - Tokuhiro Matsuno * Fixed loading of modules in $HOME/.rex/recipes * Don't calculate md5 sums if there is no on_change hook for file() function - Franky Van Liedekerke * Better understandable error messages for authentication - Franky Van Liedekerke * Cloud/Amazon: support multiple security groups - RenatoCRON * Fix Pod about pubkey authentication - Joris * Rex/Gearman: Fixed get_exit_codes use flag * Rex/Boxes: Creation order of VMs can now be defined in YAML file 2013-03-10 Jan Gehring (0.40.4) * fixed get_box() command if task is run on a remote host * fixed sudo without password 2013-03-09 Jan Gehring (0.40.3) * fixed loading of files in lib directory @INC sometime got populated too late 2013-03-02 Jan Gehring (0.40.2) * fixed #117 - encode everything except a-z, 0-9 and _ 2013-02-27 Jan Gehring (0.40.1) * fixed #114 - used only once warnings * fixed #115 - passwordless sudo didn't work 2013-02-23 Jan Gehring (0.40.0) * fixed bug and refactored file path calculation #103 and #102 * added ini style groups #99 - Franky Van Liedekerke * VirtualBox Headless mode #105 * added default environment "default" * basic cmdb via YAML #107 * crypt sudo password * sudo without locales and password #98 - Dominik Schulz * fixed dmidecode on openbsd * export update_system sub - Ferenc Erki * fixing regex which gets name interfaces - Fran Rodriguez 2013-02-07 Jan Gehring (0.39.0) * don't need PERL5LIB env any more, fixed bug #95 * match comments better - Naveed Massjouni * more allowed characters in lvname - Samuele Tognini * new feature flag: exit_status - rex will now return a number higher than 0 if a task execution fails. * new function: is_installed - Daniel Baeurer * optimized lookup_file function - Franky Van Liedekerke * rexify command now allows usage of private module server 2013-01-27 Jan Gehring (0.38.0) * added security groups to amazon cloud - Jonathan Delgado * updated pod documentation - jorisd * fixed a problem with do_task() and lost ssh connections * rexify command now allows usage of local templates * added architecture and apt key to Pkg::Debian - Daniel Baeurer * added updated_system command to update a system * box: added function to list all vms * box: amazon support * box: describe boxes with an YAML file 2013-01-15 Jan Gehring (0.37.1) * fixed template bug in modules 2013-01-05 Jan Gehring (0.37.0) * box module is now plugable * run_task now accepts additional parameters * virtualization module is now plugable * hardware provider now plugable * package provider now plugable * service provider now plugable * fixed zypper ref call for SuSE on unsigned repositories 2012-12-22 Jan Gehring (0.36.0) * added run_task a new function to run tasks on specific hosts * added feature to install perl dependencies via cpanm/cpan with rexify command * get private IP of amazon ec2 instances - jdelgado7 * added possibility to extend cloud api with external modules * spawn a pty to execute commands #80. this fixes the requiretty thing. 2012-12-22 Jan Gehring (0.35.1) * VirtualBox support for virtualization module * new command - Rex::Commands::Box * auth for - supports regular expresions * repository function now supports multiple distributions in one call * Unwrapped double looping over files and regexes and adding $new_line if not present in absence of regexes - Mario Domgoergen * Better handling of $option parameter for 'install' - joris 2012-12-14 Jan Gehring (0.34.2) * fixed login for Rex::connect 2012-11-25 Jan Gehring (0.34.1) * fixed #77. added iptables tests - Dominik Danter * Relax ssh config file parsing - Dominik Schulz 2012-11-02 Jan Gehring (0.34.0) * Use Storable module for shared variables * Enhanced lookup_file function. Comments (#) and empty lines are now skipped. (chenryn) * get_network_devices now detects ppp devices (under linux). (bokutin) * Fixed pkg_info execution on FreeBSD (bokutin) * Set $? to match effective command return value (joris) * If a task is defined multiple times it will now print out a warning. * Fixed mount bug #75 * Fixed Redhat Repo bug #73 * Fixed a bug with profiling and http endpoint 2012-10-04 Jan Gehring (0.33.3) * fixed rename() bug, #67 2012-10-02 Jan Gehring (0.33.2) * fixed windows bug 2012-09-22 Jan Gehring (0.33.1) * speed improvements * profiler class * mounts can now be persisted in /etc/fstab - Laird Liu * the partition command accepts a mount parameter to mount the partition after creation - Laird Liu * new keyword "make" * some usability improvements - Anders Ossowicki * create_user got a new option "no_create_home" * it is now possible to use other template engines. * it is now easier to write independant modules * fixed expire date for create_user * check shell before executing things 2012-08-30 Jan Gehring (0.32.1) * fixed a bug in the transaction module 2012-08-21 Jan Gehring (0.32.0) * made the worker model exchangeable * added a reporting base class * replaced Getops::Std with Rex::Args * added start command to amazon cloud module * fixed stop command in amazon cloud module 2012-08-16 Jan Gehring (0.31.5) * fixed cli parameter bug (-G) * fixed logging bug with %h 2012-08-04 Jan Gehring (0.31.0) * fixed a bug for task with the no_ssh attribute * added http transport layer * added possibility to modify task and server authentication 2012-07-21 Jan Gehring (0.30.1) * fixed a cli parameter bug for custom user authentication * fixed a batch display bug 2012-06-15 Jan Gehring (0.30.0) * rex -T now show the server groups as well * new option "type" for the extract function - Sven Dowideit * Added user_list and user_groups - Jean Charles Passard * fixed the problem with pass_auth and rsync (#30) * Better Error Messages for compile failures in modules * Added support for task specific parallelism * fixed upload and download to work in sudo environments * add mode to extract function * Added the on_change support to the append_if_no_such_line - Samuele Tognini 2012-05-17 Jan Gehring (0.29.0) * Fixed wrong error message in LibVirt/create.pm - Sven Dowideit * Added dumpxml command (LibVirt) - Sven Dowideit * Updated docs - Sven Dowideit * Default listening on all ip's for vnc (LibVirt) - Sven Dowideit * Added more colorized output options - Samuele Tognini * Fixed a logging bug - Samuele Tognini * -Tv command line option output information about requested task - Samuele Tognini * -Tv command line option output information about batches and environments - Samuele Tognini * Updated some error messages output - Samuele Tognini * Added iflist command (LibVirt) - Jean Charles Passard * Added blklist command (LibVirt) - Jean Charles Passard * Added vncdisplay command (LibVirt) - Sven Dowideit * Fixed a bug with hooks and packages #41 - Jan Gehring * Refactored Task Module. Task is now an object - Jan Gehring * Added module to parse cli parameters - Jan Gehring * Added driver_type for kvm disks * fixed a md5 check bug for 'install file =>' * fixed bug #50 (extract function) * if no rexfile is in the current path try to guess the rexfile from the taskname - Sven Dowideit * added experimental feature: shared variables - Jan Gehring 2012-05-08 Jan Gehring (0.28.0) * fixed a bug with relative source file names inside external modules * new parameter -Tv to display more information about tasks * allow additional parameters for rsync * more code refactoring * fixed a bug in the libvirt module (thanks to SvenDowideit for reporting and testing) 2012-05-04 Jan Gehring (0.27.0) * added callback parameter to run command * added logformat function to define custom logging * reworked the output classes for better jenkins integration * code refactoring * added coloriszed output if Term::ANSIColor is available * fixed a bug with older lvm versions * added on_change option to sed command, thanks to Samuele Tognini 2012-04-26 Jan Gehring (0.26.3) * fixed a notification bug in the on_change event of the file function. * fixed a cli parameter bug in the rexify command. 2012-03-28 Jan Gehring (0.26.2) * fixed a cli parameter bug (-G) 2012-03-13 Jan Gehring (0.26.1) * fixed a bug in the libvirt module 2012-02-19 Jan Gehring (0.26.0) * changed license to Apache 2.0 * added sudo compatibility * added support for custom init commands * added rex-agent compatibility * added overmind compatibility * added lvm support to libvirt module * allow package installation with "install $pkg" * added sed function * added chdir parameter to extract function * added include function to include Rex recipes without registering the tasks * Specify the sudo password prompt to avoid different prompts in different locales. thanks to Hiroaki Nakamura * Sync exclude option now takes a string or an array of strings. thanks to Hiroaki Nakamura 2012-02-16 Jan Gehring (0.25.3) * fixed a display bug in rexify --search command * fixed a bug in the libvirt module if it gets executed local * fixed a bug in the service module for ubuntu 2012-02-15 Jan Gehring (0.25.2) * display the correct module name in rexify --search command 2012-02-15 Jan Gehring (0.25.1) * don't use github for recipes query 2012-02-15 Jan Gehring (0.25.0) * added public repository commands to rexify * added patch from JEEN Lee for gpgcheck on yum repositories 2012-02-13 Jan Gehring (0.24.1) * fixed a dependeny bug 2012-02-10 Jan Gehring (0.24.0) * Added patches from Alexandr Ciornii for Makefile.PL and home-directory detection * it is now possible to use Rex as a library * fixed/simplified SCM module * added iptables flush command * added a simple tcp alive test * allow inline templates * cloud_instance returns vm info after create * added cli parameters to before/around hooks * fixed before/around/after hooks for lokal tasks * added lvm create functions 2012-01-14 Jan Gehring (0.23.0) * Redhat Enterprise Linux Support (5/6) * read ssh_config file * rsync now automatically accept keys 2012-01-04 Jan Gehring (0.22.0) * systemd service provider (for redhat and suse) * before, around and after hooks for tasks * curl: Allow connections to SSL sites without certs * don't override db config if no import options given * fixed suse detection bug * user: set crypted passwords * added OpenSuSE 12.1 compatibility * fixed redhat versiond detection * automatically use systemd service class if opensuse >= 12.1 * added fusioninventory-agent output to the inventory module (if available) 2011-10-28 Jan Gehring (0.21.1) * fix for #8 - HOME environment variable on Windows * fix for #5 - hostname evaluation with ips 2011-10-10 Jan Gehring (0.21.0) * fixed running of multiple tasks by do_task * allow multiple groups for a task * every task can have its own auth information * user module: add ssh key * ssh port isn't fix anymore (patch from Jose Luis Martinez) * use generic auth method from Net::SSH2 (patch from Jose Luis Martinez) * add SCM module (Subversion and Git) * file and upload now scans for environment specifiy files first * added a file lookup function to build groups from * fixed windows syslog bug #6, thanks to aero * added -nolog parameter to logging function to disable logging at all * added posibility to evaluate perl code within the -H cli parameter 2011-09-16 Jan Gehring (0.20.0) * added virtualization module (from Sascha Guenther) * added extract function * flattend hardware gather template variables * fixed set_path and get_path * fixed get_random to return not 1 char too much * added set and get commands to set config values 2011-09-01 Jan Gehring (0.19.0) * added JUnit output module * added environment support * load Rex::Commands::Process as default 2011-09-01 Jan Gehring (0.18.1) * fixed a bug registering tasks as functions 2011-09-01 Jan Gehring (0.18) * added network support for Solaris, NetBSD, FreeBSD and OpenBSD * added is_solaris, is_bsd and is_linux function 2011-09-01 Jan Gehring (0.17) * added solaris 11 support * added solaris 10 support * added a caching module * added a clear task function (for rex-swarm) * added a function to get os release * fixed local copy error handling 2011-08-28 Jan Gehring (0.16) * added NetBSD support * added OpenBSD support * fixed a bug in the gentoo pkg management module 2011-08-07 Jan Gehring (0.15) * new function to detect a redhat system (or clone like CentOS, Scientific Linux) * increased timeouts for jiffybox * fixed template bug with $ signs * added support for scientific linux * added support for gentoo 2011-08-07 Jan Gehring (0.14.0) * Extended API to allow passing of arguments to Rex::Task->run * FreeBSD support * Ubuntu support 2011-08-07 Jan Gehring (0.13.0) * cache sftp object - for speed * added function to update package database * added windows support * license changed to GPL3 * added an alias for unlink (rm) * added functions to manage repositories * revised error handling * added jiffybox support, a german cloudservice from domainfactory * fixed template parsing bug (port from 0.12.1) * fixed bug with too long content in file function (port from 0.12.2) 2011-07-23 Jan Gehring (0.12.0) * allow array refs for Pkg::remove * register every task as a sub if not in main package * use lsb_release if available as default to detect operating system/version * added sudo command * allow to manage multiple services at once * added possibility to add and remove services from runlevels * added iptables module for basic iptables commands * added cloud layer and support for amazon ec2 instances 2011-07-26 Jan Gehring (0.11.1) * fixed output of netstat (reported by Thomas Biege) * fixed inclusion of some modules in Run.pm that causes errors under some circumstances (reported by Thomas Biege) 2011-07-22 Jan Gehring (0.11.0) * added lvm module * added lvm to inventory * fixed inventory string * fixed multiplicator for GB and TB * added order key to selects * added support for hpacucli * added centos 6 support 2011-07-17 Jan Gehring (0.10.1) * fixed db disconnect on forks * fixed some typos 2011-07-12 Jan Gehring (0.10.0) * added network module for route, default gateway and netstat * added mount and umount function * added cron module * added more information (basic system information) to the inventor function * added installed_packages function to get all the installed packages 2011-07-03 Jan Gehring (0.9.0) * register tasks as function if possible * add "lib" to INC if exists * added function get_operating_system * added transactions * deprecated "package file =>" * added hal module to access hardware information detected by hal * added dmidecode module to access bios information * added inventory function "inventor" * added ubuntu support (tested with lts 10.04) * added can_run function, to test if a command is present 2011-07-03 Jan Gehring (0.8.1) * fixed mageia detection * fixed bug if dnsdomainname returns no domainname * fixed mkdir bug on setting permissions, caused by a wrong merge 2011-06-26 Jan Gehring (0.8.0) * added mageia support for services and packages * added chown, chgrp and chmod functions * mkdir, added possibility to specify the permission, the user and the group * added function delete_lines_matching * added function append_if_no_such_line * added reload action for services * extended db module to support insert, delete, update 2011-06-25 Jan Gehring (0.7.1) * restored the backward compatibility with perl 5.8.x * suppress warning if no parameter is given * fixed mkdir function 2011-06-23 Jan Gehring (0.7.0) * preload a lot more default modules * added new functions (df, du, cp) * added some aliases (ln, cp, cd, ls) * added process management functions (kill, killall, nice, ps) * splitted out rex-agent and rex-master. 2011-06-19 Jan Gehring (0.6.1) * fixed documentation bugs (thanks to djill) * fixed #68827, rewrote is_readable/is_writable * handle auth failure correctly * mkdir now created directories recursive