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
- print the output of the raw command inside /usr/bin/ansible as with command/shell
- basic setup module support for Solaris
- ./library relative to the playbook is always in path so modules can be included in tarballs with playbooks
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