ansible/CHANGELOG.md
Michael DeHaan 931f9f1a61 Setup module no longer saves to disk, as templates are mostly useful in playbooks and this allows lots of simplifications
around file pathing and removes occasional permissions conflicts depending on how things are used.
2012-07-14 11:59:12 -04:00

7 KiB

Ansible Changes By Release

0.6 "Cabo" ------------ pending

  • groups variable available as a hash to return the hosts in each group name
  • fetch module now does not fail a system when requesting file paths (ex: logs) that don't exist
  • apt module now takes an optional install-recommends=yes|no (default yes)
  • fixes to the return codes of the copy module
  • copy module takes a remote md5sum to avoid large file transfer
  • when sudoing to root, still use /etc/ansible/setup as the metadata path, as if root
  • support to tag tasks and includes and use --tags in playbook CLI
  • various user and group module fixes (error handling, etc)
  • apt module now takes an optional force parameter
  • slightly better psychic service status handling for the service module
  • cowsay support on Ubuntu
  • playbooks can now include other playbooks (example/playbooks/nested_playbooks.yml)
  • paramiko is now only imported if needed when running from source checkout
  • fetch module fixes for SSH connection type
  • modules now consistently all take yes/no for boolean parameters (some accepted true/false)
  • in YAML inventory, hosts can list their groups in inverted order now also (see tests/yaml_hosts)
  • setup module no longer saves to disk, template module now only used in playbooks

0.5 "Amsterdam" ------- July 04, 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