Ansible Changes By Release ========================== 0.5 "Amsterdam" ------- July XX, 2012 * Service module gets more accurate service states when running with upstart * Jinja2 usage in playbooks (not templates), reinstated, supports %include directive * support for --connection ssh (supports Kerberos, bastion hosts, etc), requires ControlMaster * misc tracebacks replaced with error messages * various API/internals refactoring * vars can be built from other variables * support for exclusion of hosts/groups with "!groupname" * various changes to support md5 tool differences for FreeBSD nodes & OS X clients * "unparseable" command output shows in command output for easier debugging * mktemp is no longer required on remotes (not available on BSD) * support for older versions of python-apt in the apt module * a new "assemble" module, for constructing files from pieces of files (inspired by Puppet "fragments" idiom) * ability to override most default values with ANSIBLE_FOO environment variables * --module-path parameter can support multiple directories seperated with the OS path seperator * with_items can take a variable of type list * ansible_python_interpreter variable available for systems with more than one Python * BIOS and VMware "fact" upgrades * cowsay is used by ansible-playbook if installed to improve output legibility (try installing it) * authorized_key module * SELinux facts now sourced from the python selinux library * removed module debug option -D * added --verbose, which shows output from successful playbook operations 0.4 "Unchained" ------- May 23, 2012 Internals/Core * internal inventory API now more object oriented, parsers decoupled * async handling improvements * misc fixes for running ansible on OS X (overlord only) * sudo improvements, now works much more smoothly * sudo to a particular user with -U/--sudo-user, or using 'sudo_user: foo' in a playbook * --private-key CLI option to work with pem files Inventory * can use -i host1,host2,host3:port to specify hosts not in inventory (replaces --override-hosts) * ansible INI style format can do groups of groups [groupname:children] and group vars [groupname:vars] * groups and users module takes an optional system=yes|no on creation (default no) * list of hosts in playbooks can be expressed as a YAML list in addition to ; delimited Playbooks * variables can be replaced like ${foo.nested_hash_key.nested_subkey[array_index]} * unicode now ok in templates (assumes utf8) * able to pass host specifier or group name in to "hosts:" with --extra-vars * ansible-pull script and example playbook (extreme scaling, remediation) * inventory_hostname variable available that contains the value of the host as ansible knows it * variables in the 'all' section can be used to define other variables based on those values * 'group_names' is now a variable made available to templates * first_available_file feature, see selective_file_sources.yml in examples/playbooks for info * --extra-vars="a=2 b=3" etc, now available to inject parameters into playbooks from CLI Incompatible Changes * jinja2 is only usable in templates, not playbooks, use $foo instead * --override-hosts removed, can use -i with comma notation (-i "ahost,bhost") * modules can no longer include stderr output (paramiko limitation from sudo) Module Changes * tweaks to SELinux implementation for file module * fixes for yum module corner cases on EL5 * file module now correctly returns the mode in octal * fix for symlink handling in the file module * service takes an enable=yes|no which works with chkconfig or updates-rc.d as appropriate * service module works better on Ubuntu * git module now does resets and such to work more smoothly on updates * modules all now log to syslog * enabled=yes|no on a service can be used to toggle chkconfig & updates-rc.d states * git module supports branch= * service fixes to better detect status using return codes of the service script * custom facts provided by the setup module mean no dependency on Ruby, facter, or ohai * service now has a state=reloaded * raw module for bootstrapping and talking to routers w/o Python, etc Misc Bugfixes * fixes for variable parsing in only_if lines * misc fixes to key=value parsing * variables with mixed case now legal * fix to internals of hacking/test-module development script 0.3 "Baluchitherium" -- April 23, 2012 * Packaging for Debian, Gentoo, and Arch * Improvements to the apt and yum modules * A virt module * SELinux support for the file module * Ability to use facts from other systems in templates (aka exported resources like support) * Built in Ansible facts so you don't need ohai, facter, or Ruby * tempdir selections that work with noexec mounted /tmp * templates happen locally, not remotely, so no dependency on python-jinja2 for remote computers * advanced inventory format in YAML allows more control over variables per host and per group * variables in playbooks can be structured/nested versus just a flat namespace * manpage upgrades (docs) * various bugfixes * can specify a default --user for playbooks rather than specifying it in the playbook file * able to specify ansible port in ansible host file (see docs) * refactored Inventory API to make it easier to write scripts using Ansible * looping capability for playbooks (with_items) * support for using sudo with a password * module arguments can be unicode * A local connection type, --connection=local, for use with cron or in kickstarts * better module debugging with -D * fetch module for pulling in files from remote hosts * command task supports creates=foo for idempotent semantics, won't run if file foo already exists 0.0.2 and 0.0.1 * Initial stages of project