6d6bc70150
+ Fixed issue with newer versions of pip not having --use-mirrors + Fixed role_path parsing from ansible.cfg + Fixed default role templates + Fixed a few bugs related to unicode + Fixed errors in the ssh connection method with large data returns + Miscellaneous fixes for a few modules + Add the ansible-galaxy command OBS-URL: https://build.opensuse.org/package/show/systemsmanagement/ansible?expand=0&rev=17
2165 lines
129 KiB
Markdown
2165 lines
129 KiB
Markdown
|
|
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#">
|
|
<meta charset='utf-8'>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<title>ansible/CHANGELOG.md at release1.4.4 · ansible/ansible · GitHub</title>
|
|
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
|
|
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" />
|
|
<link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" />
|
|
<link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" />
|
|
<link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" />
|
|
<link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" />
|
|
<link rel="logo" type="image/svg" href="https://github-media-downloads.s3.amazonaws.com/github-logo.svg" />
|
|
<meta property="og:image" content="https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png">
|
|
<meta name="hostname" content="github-fe123-cp1-prd.iad.github.net">
|
|
<meta name="ruby" content="ruby 2.1.0p0-github-tcmalloc (60139581e1) [x86_64-linux]">
|
|
<link rel="assets" href="https://github.global.ssl.fastly.net/">
|
|
<link rel="conduit-xhr" href="https://ghconduit.com:25035/">
|
|
<link rel="xhr-socket" href="/_sockets" />
|
|
|
|
|
|
|
|
<meta name="msapplication-TileImage" content="/windows-tile.png" />
|
|
<meta name="msapplication-TileColor" content="#ffffff" />
|
|
<meta name="selected-link" value="repo_source" data-pjax-transient />
|
|
<meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="584135E1:072F:685752:52DB4286" name="octolytics-dimension-request_id" />
|
|
|
|
|
|
|
|
|
|
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
|
|
|
<meta content="authenticity_token" name="csrf-param" />
|
|
<meta content="CDAL18sSMW1iz+I+OaI8WxOcine1CcguaM9i6R1HJnI=" name="csrf-token" />
|
|
|
|
<link href="https://github.global.ssl.fastly.net/assets/github-afd65da2802beafd8aee40df66e8b576092b2913.css" media="all" rel="stylesheet" type="text/css" />
|
|
<link href="https://github.global.ssl.fastly.net/assets/github2-3a909621ac79c89e7f414c6a6babc7f449d8ee93.css" media="all" rel="stylesheet" type="text/css" />
|
|
|
|
|
|
|
|
<script src="https://github.global.ssl.fastly.net/assets/frameworks-bf5987648bb83690ac0a5e955f74bbaf6ba44c4a.js" type="text/javascript"></script>
|
|
<script src="https://github.global.ssl.fastly.net/assets/github-0a61a76e9eda30f8d824f2bfed9f409c20f00570.js" type="text/javascript"></script>
|
|
|
|
<meta http-equiv="x-pjax-version" content="bd1b19691f51965969008055cb1c7974">
|
|
|
|
<link data-pjax-transient rel='permalink' href='/ansible/ansible/blob/45dde5b3e221e785d64c7b750ea1ec985d17caf9/CHANGELOG.md'>
|
|
<meta property="og:title" content="ansible"/>
|
|
<meta property="og:type" content="githubog:gitrepository"/>
|
|
<meta property="og:url" content="https://github.com/ansible/ansible"/>
|
|
<meta property="og:image" content="https://github.global.ssl.fastly.net/images/gravatars/gravatar-user-420.png"/>
|
|
<meta property="og:site_name" content="GitHub"/>
|
|
<meta property="og:description" content="ansible - Ansible is a radically simple IT orchestration engine that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems."/>
|
|
|
|
<meta name="description" content="ansible - Ansible is a radically simple IT orchestration engine that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems." />
|
|
|
|
<meta content="1507452" name="octolytics-dimension-user_id" /><meta content="ansible" name="octolytics-dimension-user_login" /><meta content="3638964" name="octolytics-dimension-repository_id" /><meta content="ansible/ansible" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="3638964" name="octolytics-dimension-repository_network_root_id" /><meta content="ansible/ansible" name="octolytics-dimension-repository_network_root_nwo" />
|
|
<link href="https://github.com/ansible/ansible/commits/release1.4.4.atom" rel="alternate" title="Recent Commits to ansible:release1.4.4" type="application/atom+xml" />
|
|
|
|
</head>
|
|
|
|
|
|
<body class="logged_out env-production vis-public page-blob">
|
|
<div class="wrapper">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="header header-logged-out">
|
|
<div class="container clearfix">
|
|
|
|
<a class="header-logo-wordmark" href="https://github.com/">
|
|
<span class="mega-octicon octicon-logo-github"></span>
|
|
</a>
|
|
|
|
<div class="header-actions">
|
|
<a class="button primary" href="/join">Sign up</a>
|
|
<a class="button signin" href="/login?return_to=%2Fansible%2Fansible%2Fblob%2Frelease1.4.4%2FCHANGELOG.md">Sign in</a>
|
|
</div>
|
|
|
|
<div class="command-bar js-command-bar in-repository">
|
|
|
|
<ul class="top-nav">
|
|
<li class="explore"><a href="/explore">Explore</a></li>
|
|
<li class="features"><a href="/features">Features</a></li>
|
|
<li class="enterprise"><a href="https://enterprise.github.com/">Enterprise</a></li>
|
|
<li class="blog"><a href="/blog">Blog</a></li>
|
|
</ul>
|
|
<form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get">
|
|
|
|
<input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off"
|
|
|
|
|
|
data-repo="ansible/ansible"
|
|
data-branch="release1.4.4"
|
|
data-sha="900ec44ff05a20c4723605007cef20f13a70c32c"
|
|
>
|
|
|
|
<input type="hidden" name="nwo" value="ansible/ansible" />
|
|
|
|
<div class="select-menu js-menu-container js-select-menu search-context-select-menu">
|
|
<span class="minibutton select-menu-button js-menu-target">
|
|
<span class="js-select-button">This repository</span>
|
|
</span>
|
|
|
|
<div class="select-menu-modal-holder js-menu-content js-navigation-container">
|
|
<div class="select-menu-modal">
|
|
|
|
<div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" />
|
|
<div class="select-menu-item-text js-select-button-text">This repository</div>
|
|
</div> <!-- /.select-menu-item -->
|
|
|
|
<div class="select-menu-item js-navigation-item js-all-repositories-navigation-item">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<input type="radio" name="search_target" value="global" />
|
|
<div class="select-menu-item-text js-select-button-text">All repositories</div>
|
|
</div> <!-- /.select-menu-item -->
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<span class="octicon help tooltipped downwards" title="Show command bar help">
|
|
<span class="octicon octicon-question"></span>
|
|
</span>
|
|
|
|
|
|
<input type="hidden" name="ref" value="cmdform">
|
|
|
|
</form>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="site" itemscope itemtype="http://schema.org/WebPage">
|
|
|
|
<div class="pagehead repohead instapaper_ignore readability-menu">
|
|
<div class="container">
|
|
|
|
|
|
<ul class="pagehead-actions">
|
|
|
|
|
|
<li>
|
|
<a href="/login?return_to=%2Fansible%2Fansible"
|
|
class="minibutton with-count js-toggler-target star-button tooltipped upwards"
|
|
title="You must be signed in to use this feature" rel="nofollow">
|
|
<span class="octicon octicon-star"></span>Star
|
|
</a>
|
|
|
|
<a class="social-count js-social-count" href="/ansible/ansible/stargazers">
|
|
4,225
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
<a href="/login?return_to=%2Fansible%2Fansible"
|
|
class="minibutton with-count js-toggler-target fork-button tooltipped upwards"
|
|
title="You must be signed in to fork a repository" rel="nofollow">
|
|
<span class="octicon octicon-git-branch"></span>Fork
|
|
</a>
|
|
<a href="/ansible/ansible/network" class="social-count">
|
|
1,214
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public">
|
|
<span class="repo-label"><span>public</span></span>
|
|
<span class="mega-octicon octicon-repo"></span>
|
|
<span class="author">
|
|
<a href="/ansible" class="url fn" itemprop="url" rel="author"><span itemprop="title">ansible</span></a>
|
|
</span>
|
|
<span class="repohead-name-divider">/</span>
|
|
<strong><a href="/ansible/ansible" class="js-current-repository js-repo-home-link">ansible</a></strong>
|
|
|
|
<span class="page-context-loader">
|
|
<img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</span>
|
|
|
|
</h1>
|
|
</div><!-- /.container -->
|
|
</div><!-- /.repohead -->
|
|
|
|
<div class="container">
|
|
|
|
|
|
<div class="repository-with-sidebar repo-container ">
|
|
|
|
<div class="repository-sidebar">
|
|
|
|
|
|
<div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders">
|
|
<div class="sunken-menu-contents">
|
|
<ul class="sunken-menu-group">
|
|
<li class="tooltipped leftwards" title="Code">
|
|
<a href="/ansible/ansible/tree/release1.4.4" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /ansible/ansible/tree/release1.4.4">
|
|
<span class="octicon octicon-code"></span> <span class="full-word">Code</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Issues">
|
|
<a href="/ansible/ansible/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /ansible/ansible/issues">
|
|
<span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span>
|
|
<span class='counter'>360</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Pull Requests">
|
|
<a href="/ansible/ansible/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /ansible/ansible/pulls">
|
|
<span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span>
|
|
<span class='counter'>179</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
|
|
</ul>
|
|
<div class="sunken-menu-separator"></div>
|
|
<ul class="sunken-menu-group">
|
|
|
|
<li class="tooltipped leftwards" title="Pulse">
|
|
<a href="/ansible/ansible/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /ansible/ansible/pulse">
|
|
<span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Graphs">
|
|
<a href="/ansible/ansible/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /ansible/ansible/graphs">
|
|
<span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Network">
|
|
<a href="/ansible/ansible/network" aria-label="Network" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-selected-links="repo_network /ansible/ansible/network">
|
|
<span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="only-with-full-nav">
|
|
|
|
|
|
|
|
|
|
<div class="clone-url open"
|
|
data-protocol-type="http"
|
|
data-url="/users/set_protocol?protocol_selector=http&protocol_type=clone">
|
|
<h3><strong>HTTPS</strong> clone URL</h3>
|
|
<div class="clone-url-box">
|
|
<input type="text" class="clone js-url-field"
|
|
value="https://github.com/ansible/ansible.git" readonly="readonly">
|
|
|
|
<span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/ansible/ansible.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="clone-url "
|
|
data-protocol-type="subversion"
|
|
data-url="/users/set_protocol?protocol_selector=subversion&protocol_type=clone">
|
|
<h3><strong>Subversion</strong> checkout URL</h3>
|
|
<div class="clone-url-box">
|
|
<input type="text" class="clone js-url-field"
|
|
value="https://github.com/ansible/ansible" readonly="readonly">
|
|
|
|
<span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/ansible/ansible" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<p class="clone-options">You can clone with
|
|
<a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>,
|
|
or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>.
|
|
<span class="octicon help tooltipped upwards" title="Get help on which URL is right for you.">
|
|
<a href="https://help.github.com/articles/which-remote-url-should-i-use">
|
|
<span class="octicon octicon-question"></span>
|
|
</a>
|
|
</span>
|
|
</p>
|
|
|
|
|
|
|
|
<a href="/ansible/ansible/archive/release1.4.4.zip"
|
|
class="minibutton sidebar-button"
|
|
title="Download this repository as a zip file"
|
|
rel="nofollow">
|
|
<span class="octicon octicon-cloud-download"></span>
|
|
Download ZIP
|
|
</a>
|
|
</div>
|
|
</div><!-- /.repository-sidebar -->
|
|
|
|
<div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container>
|
|
|
|
|
|
|
|
<!-- blob contrib key: blob_contributors:v21:23e9668b7e3aa99c850be5b7275967d0 -->
|
|
|
|
<p title="This is a placeholder element" class="js-history-link-replace hidden"></p>
|
|
|
|
<a href="/ansible/ansible/find/release1.4.4" data-pjax data-hotkey="t" class="js-show-file-finder" style="display:none">Show File Finder</a>
|
|
|
|
<div class="file-navigation">
|
|
|
|
|
|
<div class="select-menu js-menu-container js-select-menu" >
|
|
<span class="minibutton select-menu-button js-menu-target" data-hotkey="w"
|
|
data-master-branch="devel"
|
|
data-ref="release1.4.4"
|
|
role="button" aria-label="Switch branches or tags" tabindex="0">
|
|
<span class="octicon octicon-git-branch"></span>
|
|
<i>branch:</i>
|
|
<span class="js-select-button">release1.4.4</span>
|
|
</span>
|
|
|
|
<div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax>
|
|
|
|
<div class="select-menu-modal">
|
|
<div class="select-menu-header">
|
|
<span class="select-menu-title">Switch branches/tags</span>
|
|
<span class="octicon octicon-remove-close js-menu-close"></span>
|
|
</div> <!-- /.select-menu-header -->
|
|
|
|
<div class="select-menu-filters">
|
|
<div class="select-menu-text-filter">
|
|
<input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
|
|
</div>
|
|
<div class="select-menu-tabs">
|
|
<ul>
|
|
<li class="select-menu-tab">
|
|
<a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a>
|
|
</li>
|
|
<li class="select-menu-tab">
|
|
<a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a>
|
|
</li>
|
|
</ul>
|
|
</div><!-- /.select-menu-tabs -->
|
|
</div><!-- /.select-menu-filters -->
|
|
|
|
<div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches">
|
|
|
|
<div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
|
|
|
|
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/devel/CHANGELOG.md"
|
|
data-name="devel"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="devel">devel</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release-0.6/CHANGELOG.md"
|
|
data-name="release-0.6"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release-0.6">release-0.6</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release-0.7/CHANGELOG.md"
|
|
data-name="release-0.7"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release-0.7">release-0.7</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release-0.8/CHANGELOG.md"
|
|
data-name="release-0.8"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release-0.8">release-0.8</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release0.9/CHANGELOG.md"
|
|
data-name="release0.9"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release0.9">release0.9</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.0/CHANGELOG.md"
|
|
data-name="release1.0"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.0">release1.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.1/CHANGELOG.md"
|
|
data-name="release1.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.1">release1.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.2/CHANGELOG.md"
|
|
data-name="release1.2"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.2">release1.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.2.1/CHANGELOG.md"
|
|
data-name="release1.2.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.2.1">release1.2.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.2.2/CHANGELOG.md"
|
|
data-name="release1.2.2"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.2.2">release1.2.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.2.3/CHANGELOG.md"
|
|
data-name="release1.2.3"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.2.3">release1.2.3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.3.0/CHANGELOG.md"
|
|
data-name="release1.3.0"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.3.0">release1.3.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.3.1/CHANGELOG.md"
|
|
data-name="release1.3.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.3.1">release1.3.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.3.2/CHANGELOG.md"
|
|
data-name="release1.3.2"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.3.2">release1.3.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.3.3/CHANGELOG.md"
|
|
data-name="release1.3.3"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.3.3">release1.3.3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.3.4/CHANGELOG.md"
|
|
data-name="release1.3.4"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.3.4">release1.3.4</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.4.0/CHANGELOG.md"
|
|
data-name="release1.4.0"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.4.0">release1.4.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.4.1/CHANGELOG.md"
|
|
data-name="release1.4.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.4.1">release1.4.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.4.2/CHANGELOG.md"
|
|
data-name="release1.4.2"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.4.2">release1.4.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.4.3/CHANGELOG.md"
|
|
data-name="release1.4.3"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.4.3">release1.4.3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item selected">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/blob/release1.4.4/CHANGELOG.md"
|
|
data-name="release1.4.4"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="release1.4.4">release1.4.4</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
</div>
|
|
|
|
<div class="select-menu-no-results">Nothing to show</div>
|
|
</div> <!-- /.select-menu-list -->
|
|
|
|
<div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
|
|
<div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
|
|
|
|
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.4.4/CHANGELOG.md"
|
|
data-name="v1.4.4"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.4.4">v1.4.4</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.4.3/CHANGELOG.md"
|
|
data-name="v1.4.3"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.4.3">v1.4.3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.4.2/CHANGELOG.md"
|
|
data-name="v1.4.2"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.4.2">v1.4.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.4.1/CHANGELOG.md"
|
|
data-name="v1.4.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.4.1">v1.4.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.4.0/CHANGELOG.md"
|
|
data-name="v1.4.0"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.4.0">v1.4.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.3.4/CHANGELOG.md"
|
|
data-name="v1.3.4"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.3.4">v1.3.4</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.3.3/CHANGELOG.md"
|
|
data-name="v1.3.3"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.3.3">v1.3.3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.3.2/CHANGELOG.md"
|
|
data-name="v1.3.2"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.3.2">v1.3.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.3.1/CHANGELOG.md"
|
|
data-name="v1.3.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.3.1">v1.3.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.3.0/CHANGELOG.md"
|
|
data-name="v1.3.0"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.3.0">v1.3.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.2.3/CHANGELOG.md"
|
|
data-name="v1.2.3"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.2.3">v1.2.3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.2.2/CHANGELOG.md"
|
|
data-name="v1.2.2"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.2.2">v1.2.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.2.1/CHANGELOG.md"
|
|
data-name="v1.2.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.2.1">v1.2.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.2/CHANGELOG.md"
|
|
data-name="v1.2"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.2">v1.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.1/CHANGELOG.md"
|
|
data-name="v1.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.1">v1.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v1.0/CHANGELOG.md"
|
|
data-name="v1.0"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v1.0">v1.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/v0.9/CHANGELOG.md"
|
|
data-name="v0.9"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="v0.9">v0.9</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.01/CHANGELOG.md"
|
|
data-name="0.01"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.01">0.01</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.8/CHANGELOG.md"
|
|
data-name="0.8"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.8">0.8</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.7.2/CHANGELOG.md"
|
|
data-name="0.7.2"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.7.2">0.7.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.7.1/CHANGELOG.md"
|
|
data-name="0.7.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.7.1">0.7.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.7/CHANGELOG.md"
|
|
data-name="0.7"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.7">0.7</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.6/CHANGELOG.md"
|
|
data-name="0.6"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.6">0.6</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.5/CHANGELOG.md"
|
|
data-name="0.5"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.5">0.5</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.4.1/CHANGELOG.md"
|
|
data-name="0.4.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.4.1">0.4.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.4/CHANGELOG.md"
|
|
data-name="0.4"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.4">0.4</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.3.1/CHANGELOG.md"
|
|
data-name="0.3.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.3.1">0.3.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.3/CHANGELOG.md"
|
|
data-name="0.3"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.3">0.3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.0.2/CHANGELOG.md"
|
|
data-name="0.0.2"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.0.2">0.0.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/ansible/ansible/tree/0.0.1/CHANGELOG.md"
|
|
data-name="0.0.1"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="0.0.1">0.0.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
</div>
|
|
|
|
<div class="select-menu-no-results">Nothing to show</div>
|
|
</div> <!-- /.select-menu-list -->
|
|
|
|
</div> <!-- /.select-menu-modal -->
|
|
</div> <!-- /.select-menu-modal-holder -->
|
|
</div> <!-- /.select-menu -->
|
|
|
|
<div class="breadcrumb">
|
|
<span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/ansible/ansible/tree/release1.4.4" data-branch="release1.4.4" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">ansible</span></a></span></span><span class="separator"> / </span><strong class="final-path">CHANGELOG.md</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="CHANGELOG.md" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="commit file-history-tease">
|
|
<img class="main-avatar" height="24" src="https://0.gravatar.com/avatar/4f3e4251a35795be0d88a3fa7329c0ef?d=https%3A%2F%2Fidenticons.github.com%2F63a3548a6decdcddd822124e215c1e09.png&r=x&s=140" width="24" />
|
|
<span class="author"><a href="/jctanner" rel="author">jctanner</a></span>
|
|
<time class="js-relative-date" datetime="2014-01-06T07:30:35-08:00" title="2014-01-06 07:30:35">January 06, 2014</time>
|
|
<div class="commit-title">
|
|
<a href="/ansible/ansible/commit/45dde5b3e221e785d64c7b750ea1ec985d17caf9" class="message" data-pjax="true" title="Update files for 1.4.4 release.">Update files for 1.4.4 release.</a>
|
|
</div>
|
|
|
|
<div class="participation">
|
|
<p class="quickstat"><a href="#blob_contributors_box" rel="facebox"><strong>18</strong> contributors</a></p>
|
|
<a class="avatar tooltipped downwards" title="mpdehaan" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=mpdehaan"><img height="20" src="https://2.gravatar.com/avatar/3c1b7e921632632e11d5d2ee59403f5f?d=https%3A%2F%2Fidenticons.github.com%2F7349029dfd97a1861bdbcc913734aacf.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="jimi-c" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=jimi-c"><img height="20" src="https://1.gravatar.com/avatar/033e03e7fdcfc5aaa660e83231f31f80?d=https%3A%2F%2Fidenticons.github.com%2F81fd0241fd6df61d5201d65fd47bb698.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="jctanner" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=jctanner"><img height="20" src="https://0.gravatar.com/avatar/4f3e4251a35795be0d88a3fa7329c0ef?d=https%3A%2F%2Fidenticons.github.com%2F63a3548a6decdcddd822124e215c1e09.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="dhozac" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=dhozac"><img height="20" src="https://1.gravatar.com/avatar/8961a6401a489d2c6b3df677db5fe35c?d=https%3A%2F%2Fidenticons.github.com%2F395f8eb76a7448614b4505aef45a7669.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="jkleckner" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=jkleckner"><img height="20" src="https://1.gravatar.com/avatar/a50c608886a897d9057d0189068033c1?d=https%3A%2F%2Fidenticons.github.com%2F6399db5ad124010b470372462e67942d.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="resmo" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=resmo"><img height="20" src="https://2.gravatar.com/avatar/3880838c904b9dfee41134c1c463085b?d=https%3A%2F%2Fidenticons.github.com%2Fbc59e38bc67f18b4ab36cd450302b8c6.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="SirScott" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=SirScott"><img height="20" src="https://2.gravatar.com/avatar/3a362ece4cea7ef3841978e291142ae0?d=https%3A%2F%2Fidenticons.github.com%2F64e92220ade32e7cef5f5944210740f0.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="sivel" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=sivel"><img height="20" src="https://0.gravatar.com/avatar/0cceb204e6cfa42aadee1fec717b1d2c?d=https%3A%2F%2Fidenticons.github.com%2F1b9d7ffccca875a9079e3b57c24a3113.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="mmoya" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=mmoya"><img height="20" src="https://2.gravatar.com/avatar/9f1a0ab0b8bff93851f3225b783d2c24?d=https%3A%2F%2Fidenticons.github.com%2Fe5424ca892fb503e2f87d4dcb2bb8570.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="jlund" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=jlund"><img height="20" src="https://0.gravatar.com/avatar/afdd499204b92ddb820852321e8014a0?d=https%3A%2F%2Fidenticons.github.com%2F80ab793811b67c71820e437ad9de16ce.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="kubicek" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=kubicek"><img height="20" src="https://2.gravatar.com/avatar/b73770f184cadf24b698c56fa5cfcb8b?d=https%3A%2F%2Fidenticons.github.com%2Ff1507aba9fc82ffa7cc7373c58f8a613.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="sergevanginderachter" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=sergevanginderachter"><img height="20" src="https://1.gravatar.com/avatar/0023cde5ac7c71e5c0c0c1f5fae87b82?d=https%3A%2F%2Fidenticons.github.com%2Fc1d9e981ebc53e6417e244189508a13f.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="tgerla" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=tgerla"><img height="20" src="https://0.gravatar.com/avatar/d75cb4cf6a99e6972ba606d52b5e96af?d=https%3A%2F%2Fidenticons.github.com%2F41a0c6e980ecfa69cf05cce938f06dfe.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="JensRantil" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=JensRantil"><img height="20" src="https://0.gravatar.com/avatar/34e031251528689dd8f8039fef24a65f?d=https%3A%2F%2Fidenticons.github.com%2F5033f9afb9170833e98f538d56e75fa6.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="fangchin" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=fangchin"><img height="20" src="https://2.gravatar.com/avatar/c313b9e0f226e59d062f0d8b91fb1f39?d=https%3A%2F%2Fidenticons.github.com%2Fd96bba2d6646eec5e279a1c737ee65d0.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="trbs" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=trbs"><img height="20" src="https://1.gravatar.com/avatar/555de40b9d362de5f36f24f35d8fa06f?d=https%3A%2F%2Fidenticons.github.com%2Fc3155a86a1f5a08d1c7816d02ba3e59d.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="dagwieers" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=dagwieers"><img height="20" src="https://1.gravatar.com/avatar/a1e62ad6faa63e1217ef555cf6e63df4?d=https%3A%2F%2Fidenticons.github.com%2F6247bae590c28a6f29f29f9370c4605c.png&r=x&s=140" width="20" /></a>
|
|
<a class="avatar tooltipped downwards" title="amenonsen" href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md?author=amenonsen"><img height="20" src="https://0.gravatar.com/avatar/0d8d1d035ace4e5788b66218bba456da?d=https%3A%2F%2Fidenticons.github.com%2Fa21482d73b88d044ac722365b70cefc2.png&r=x&s=140" width="20" /></a>
|
|
|
|
|
|
</div>
|
|
<div id="blob_contributors_box" style="display:none">
|
|
<h2 class="facebox-header">Users who have contributed to this file</h2>
|
|
<ul class="facebox-user-list">
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://2.gravatar.com/avatar/3c1b7e921632632e11d5d2ee59403f5f?d=https%3A%2F%2Fidenticons.github.com%2F7349029dfd97a1861bdbcc913734aacf.png&r=x&s=140" width="24" />
|
|
<a href="/mpdehaan">mpdehaan</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://1.gravatar.com/avatar/033e03e7fdcfc5aaa660e83231f31f80?d=https%3A%2F%2Fidenticons.github.com%2F81fd0241fd6df61d5201d65fd47bb698.png&r=x&s=140" width="24" />
|
|
<a href="/jimi-c">jimi-c</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://0.gravatar.com/avatar/4f3e4251a35795be0d88a3fa7329c0ef?d=https%3A%2F%2Fidenticons.github.com%2F63a3548a6decdcddd822124e215c1e09.png&r=x&s=140" width="24" />
|
|
<a href="/jctanner">jctanner</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://1.gravatar.com/avatar/8961a6401a489d2c6b3df677db5fe35c?d=https%3A%2F%2Fidenticons.github.com%2F395f8eb76a7448614b4505aef45a7669.png&r=x&s=140" width="24" />
|
|
<a href="/dhozac">dhozac</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://1.gravatar.com/avatar/a50c608886a897d9057d0189068033c1?d=https%3A%2F%2Fidenticons.github.com%2F6399db5ad124010b470372462e67942d.png&r=x&s=140" width="24" />
|
|
<a href="/jkleckner">jkleckner</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://2.gravatar.com/avatar/3880838c904b9dfee41134c1c463085b?d=https%3A%2F%2Fidenticons.github.com%2Fbc59e38bc67f18b4ab36cd450302b8c6.png&r=x&s=140" width="24" />
|
|
<a href="/resmo">resmo</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://2.gravatar.com/avatar/3a362ece4cea7ef3841978e291142ae0?d=https%3A%2F%2Fidenticons.github.com%2F64e92220ade32e7cef5f5944210740f0.png&r=x&s=140" width="24" />
|
|
<a href="/SirScott">SirScott</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://0.gravatar.com/avatar/0cceb204e6cfa42aadee1fec717b1d2c?d=https%3A%2F%2Fidenticons.github.com%2F1b9d7ffccca875a9079e3b57c24a3113.png&r=x&s=140" width="24" />
|
|
<a href="/sivel">sivel</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://2.gravatar.com/avatar/9f1a0ab0b8bff93851f3225b783d2c24?d=https%3A%2F%2Fidenticons.github.com%2Fe5424ca892fb503e2f87d4dcb2bb8570.png&r=x&s=140" width="24" />
|
|
<a href="/mmoya">mmoya</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://0.gravatar.com/avatar/afdd499204b92ddb820852321e8014a0?d=https%3A%2F%2Fidenticons.github.com%2F80ab793811b67c71820e437ad9de16ce.png&r=x&s=140" width="24" />
|
|
<a href="/jlund">jlund</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://2.gravatar.com/avatar/b73770f184cadf24b698c56fa5cfcb8b?d=https%3A%2F%2Fidenticons.github.com%2Ff1507aba9fc82ffa7cc7373c58f8a613.png&r=x&s=140" width="24" />
|
|
<a href="/kubicek">kubicek</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://1.gravatar.com/avatar/0023cde5ac7c71e5c0c0c1f5fae87b82?d=https%3A%2F%2Fidenticons.github.com%2Fc1d9e981ebc53e6417e244189508a13f.png&r=x&s=140" width="24" />
|
|
<a href="/sergevanginderachter">sergevanginderachter</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://0.gravatar.com/avatar/d75cb4cf6a99e6972ba606d52b5e96af?d=https%3A%2F%2Fidenticons.github.com%2F41a0c6e980ecfa69cf05cce938f06dfe.png&r=x&s=140" width="24" />
|
|
<a href="/tgerla">tgerla</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://0.gravatar.com/avatar/34e031251528689dd8f8039fef24a65f?d=https%3A%2F%2Fidenticons.github.com%2F5033f9afb9170833e98f538d56e75fa6.png&r=x&s=140" width="24" />
|
|
<a href="/JensRantil">JensRantil</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://2.gravatar.com/avatar/c313b9e0f226e59d062f0d8b91fb1f39?d=https%3A%2F%2Fidenticons.github.com%2Fd96bba2d6646eec5e279a1c737ee65d0.png&r=x&s=140" width="24" />
|
|
<a href="/fangchin">fangchin</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://1.gravatar.com/avatar/555de40b9d362de5f36f24f35d8fa06f?d=https%3A%2F%2Fidenticons.github.com%2Fc3155a86a1f5a08d1c7816d02ba3e59d.png&r=x&s=140" width="24" />
|
|
<a href="/trbs">trbs</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://1.gravatar.com/avatar/a1e62ad6faa63e1217ef555cf6e63df4?d=https%3A%2F%2Fidenticons.github.com%2F6247bae590c28a6f29f29f9370c4605c.png&r=x&s=140" width="24" />
|
|
<a href="/dagwieers">dagwieers</a>
|
|
</li>
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://0.gravatar.com/avatar/0d8d1d035ace4e5788b66218bba456da?d=https%3A%2F%2Fidenticons.github.com%2Fa21482d73b88d044ac722365b70cefc2.png&r=x&s=140" width="24" />
|
|
<a href="/amenonsen">amenonsen</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="files" class="bubble">
|
|
<div class="file">
|
|
<div class="meta">
|
|
<div class="info">
|
|
<span class="icon"><b class="octicon octicon-file-text"></b></span>
|
|
<span class="mode" title="File Mode">file</span>
|
|
<span>1094 lines (962 sloc)</span>
|
|
<span>62.808 kb</span>
|
|
</div>
|
|
<div class="actions">
|
|
<div class="button-group">
|
|
<a class="minibutton disabled tooltipped leftwards" href="#"
|
|
title="You must be signed in to make or propose changes">Edit</a>
|
|
<a href="/ansible/ansible/raw/release1.4.4/CHANGELOG.md" class="button minibutton " id="raw-url">Raw</a>
|
|
<a href="/ansible/ansible/blame/release1.4.4/CHANGELOG.md" class="button minibutton ">Blame</a>
|
|
<a href="/ansible/ansible/commits/release1.4.4/CHANGELOG.md" class="button minibutton " rel="nofollow">History</a>
|
|
</div><!-- /.button-group -->
|
|
<a class="minibutton danger disabled empty-icon tooltipped leftwards" href="#"
|
|
title="You must be signed in to make or propose changes">
|
|
Delete
|
|
</a>
|
|
</div><!-- /.actions -->
|
|
|
|
</div>
|
|
|
|
<div id="readme" class="blob instapaper_body">
|
|
<article class="markdown-body entry-content" itemprop="mainContentOfPage"><h1>
|
|
<a name="ansible-changes-by-release" class="anchor" href="#ansible-changes-by-release"><span class="octicon octicon-link"></span></a>Ansible Changes By Release</h1>
|
|
|
|
<p>1.4.4 "Could This Be Magic" - January 06, 2014</p>
|
|
|
|
<ul>
|
|
<li>Fixed issue with newer versions of pip not having --use-mirrors</li>
|
|
</ul><p>1.4.3 "Could This Be Magic?" - December 20, 2013</p>
|
|
|
|
<ul>
|
|
<li>Fixed role_path parsing from ansible.cfg</li>
|
|
<li>Fixed default role templates</li>
|
|
</ul><p>1.4.2 "Could This Be Magic" - December 18, 2013</p>
|
|
|
|
<ul>
|
|
<li>Fixed a few bugs related to unicode</li>
|
|
<li>Fixed errors in the ssh connection method with large data returns</li>
|
|
<li>Miscellaneous fixes for a few modules</li>
|
|
<li>Add the ansible-galaxy command</li>
|
|
</ul><p>1.4.1 "Could This Be Magic" - November 27, 2013</p>
|
|
|
|
<ul>
|
|
<li>Misc fix updates</li>
|
|
</ul><p>1.4 "Could This Be Magic" - November 21, 2013</p>
|
|
|
|
<p>Highlighted new features:</p>
|
|
|
|
<ul>
|
|
<li>Added do-until feature, which can be used to retry a failed task a specified number of times with a delay in-between the retries.</li>
|
|
<li>Added failed_when option for tasks, which can be used to specify logical statements that make it easier to determine when a task has failed, or to make it easier to ignore certain non-zero return codes for some commands.</li>
|
|
<li>Added the "subelement" lookup plugin, which allows iteration of the keys of a dictionary or items in a list.</li>
|
|
<li>Added the capability to use either paramiko or ssh for the inital setup connection of an accelerated playbook.</li>
|
|
<li>Automatically provide advice on common parser errors users encounter.</li>
|
|
<li>Deprecation warnings are now shown for legacy features: when_integer/etc, only_if, include+with_items, etc. Can be disabled in ansible.cfg</li>
|
|
<li>The system will now provide helpful tips around possible YAML syntax errors increasing ease of use for new users.</li>
|
|
<li>warnings are now shown for using {{ foo }} in loops and conditionals, and suggest leaving the variable expressions bare as per docs.</li>
|
|
<li>The roles search path is now configurable in ansible.cfg. 'roles_path' in the config setting.</li>
|
|
<li>Includes with parameters can now be done like roles for consistency: - { include: song.yml, year:1984, song:'jump' }</li>
|
|
<li>The name of each role is now shown before each task if roles are being used</li>
|
|
<li>Adds a "var=" option to the debug module for debugging variable data. "debug: var=hostvars['hostname']" and "debug: var=foo" are all valid syntax.</li>
|
|
<li>Variables in {{ format }} can be used as references even if they are structured data</li>
|
|
<li>Can force binding of accelerate to ipv6 ports.</li>
|
|
<li>the apt module will auto-install python-apt if not present rather than requiring a manual installation</li>
|
|
<li>the copy module is now recursive if the local 'src' parameter is a directory.</li>
|
|
<li>syntax checks now scan included task and variable files as well as main files</li>
|
|
</ul><p>New modules and plugins.</p>
|
|
|
|
<ul>
|
|
<li>cloud: ec2_eip -- manage AWS elastic IPs</li>
|
|
<li>cloud: ec2_vpc -- manage ec2 virtual private clouds</li>
|
|
<li>cloud: elasticcache -- Manages clusters in Amazon Elasticache</li>
|
|
<li>cloud: rax_network -- sets up Rackspace networks</li>
|
|
<li>cloud: rax_facts: retrieve facts about a Rackspace Cloud Server</li>
|
|
<li>cloud: rax_clb_nodes -- manage Rackspace cloud load balanced nodes</li>
|
|
<li>cloud: rax_clb -- manages Rackspace cloud load balancers</li>
|
|
<li>cloud: docker - instantiates/removes/manages docker containers</li>
|
|
<li>cloud: ovirt -- VM lifecycle controls for ovirt</li>
|
|
<li>files: acl -- set or get acls on a file</li>
|
|
<li>files: unarchive: pushes and extracts tarballs</li>
|
|
<li>files: synchronize: a useful wraper around rsyncing trees of files</li>
|
|
<li>system: firewalld -- manage the firewalld configuration</li>
|
|
<li>system: modprobe -- manage kernel modules on systems that support modprobe/rmmod</li>
|
|
<li>system: open_iscsi -- manage targets on an initiator using open-iscsi</li>
|
|
<li>system: blacklist: add or remove modules from the kernel blacklist</li>
|
|
<li>system: hostname - sets the systems hostname</li>
|
|
<li>utilities: include_vars -- dynamically load variables based on conditions.</li>
|
|
<li>packaging: zypper_repository - adds or removes Zypper repositories</li>
|
|
<li>packaging: urpmi - work with urpmi packages</li>
|
|
<li>packaging: swdepot - a module for working with swdepot</li>
|
|
<li>notification: grove - notifies to Grove hosted IRC channels</li>
|
|
<li>web_infrastructure: ejabberd_user: add and remove users to ejabberd</li>
|
|
<li>web_infrastructure: jboss: deploys or undeploys apps to jboss</li>
|
|
<li>source_control: github_hooks: manages GitHub service hooks </li>
|
|
<li>net_infrastructure: bigip_monitor_http: manages F5 BIG-IP LTM http monitors</li>
|
|
<li>net_infrastructure: bigip_monitor_tcp: manages F5 BIG-IP LTM TCP monitors</li>
|
|
<li>net_infrastructure: bigip_pool_member: manages F5 BIG-IP LTM pool members</li>
|
|
<li>net_infrastructure: bigip_node: manages F5 BIG-IP LTM nodes</li>
|
|
<li>net_infrastructure: openvswitch_port</li>
|
|
<li>net_infrastructure: openvswitch_bridge</li>
|
|
</ul><p>Plugins:</p>
|
|
|
|
<ul>
|
|
<li>jail connection module (FreeBSD)</li>
|
|
<li>lxc connection module</li>
|
|
<li>added inventory script for listing FreeBSD jails </li>
|
|
<li>added md5 as a Jinja2 filter: {{ path | md5 }}</li>
|
|
<li>added a fileglob filter that will return files matching a glob pattern. with_items: "/foo/pattern/*.txt | fileglob"</li>
|
|
<li>'changed' filter returns whether a previous step was changed easier. when: registered_result | changed</li>
|
|
<li>DOCS NEEDED: 'unique' and 'intersect' filters are added for dealing with lists.</li>
|
|
<li>DOCS NEEDED: new lookup plugin added for etcd</li>
|
|
<li>a 'func' connection type to help people migrating from func/certmaster.</li>
|
|
</ul><p>Misc changes (all module additions/fixes may not listed):</p>
|
|
|
|
<ul>
|
|
<li>(docs pending) New features for accelerate mode: configurable timeouts and a keepalives for long running tasks.</li>
|
|
<li>Added a <code>delimiter</code> field to the assemble module.</li>
|
|
<li>Added <code>ansible_env</code> to the list of facts returned by the setup module.</li>
|
|
<li>Added <code>state=touch</code> to the file module, which functions similarly to the command-line version of <code>touch</code>.</li>
|
|
<li>Added a -vvvv level, which will show SSH client debugging information in the event of a failure.</li>
|
|
<li>Includes now support the more standard syntax, similar to that of role includes and dependencies. </li>
|
|
<li>Changed the <code>user:</code> parameter on plays to <code>remote_user:</code> to prevent confusion with the module of the same name. Still backwards compatible on play parameters.</li>
|
|
<li>Added parameter to allow the fetch module to skip the md5 validation step ('validate_md5=false'). This is usefull when fetching files that are actively being written to, such as live log files.</li>
|
|
<li>Inventory hosts are used in the order they appear in the inventory.</li>
|
|
<li>in hosts: foo[2-5] type syntax, the iterators now are zero indexed and the last index is non-inclusive, to match Python standards.</li>
|
|
<li>There is now a way for a callback plugin to disable itself. See osx_say example code for an example.</li>
|
|
<li>Many bugfixes to modules of all types.</li>
|
|
<li>Complex arguments now can be used with async tasks</li>
|
|
<li>SSH ControlPath is now configurable in ansible.cfg. There is a limit to the lengths of these paths, see how to shorten them in ansible.cfg.</li>
|
|
<li>md5sum support on AIX with csum.</li>
|
|
<li>Extremely large documentation refactor into subchapters</li>
|
|
<li>Added 'append_privs' option to the mysql_user module</li>
|
|
<li>Can now update (temporarily change) host variables using the "add_host" module for existing hosts.</li>
|
|
<li>Fixes for IPv6 addresses in inventory text files</li>
|
|
<li>name of executable can be passed to pip/gem etc, for installing under <em>different</em> interpreters</li>
|
|
<li>copy of ./hacking/env-setup added for fish users, ./hacking/env-setup.fish</li>
|
|
<li>file module more tolerant of non-absolute paths in softlinks.</li>
|
|
<li>miscellaneous fixes/upgrades to async polling logic.</li>
|
|
<li>conditions on roles now pass to dependent roles</li>
|
|
<li>ansible_sudo_pass can be set in a host variable if desired</li>
|
|
<li>misc fixes for the pip an easy_install modules</li>
|
|
<li>support for running handlers that have parameterized names based on role parameters</li>
|
|
<li>added support for compressing MySQL dumps and extracting during import</li>
|
|
<li>Boto version compatibility fixes for the EC2 inventory script</li>
|
|
<li>in the EC2 inventory script, a group 'EC2' and 'RDS' contains EC2 and RDS hosts.</li>
|
|
<li>umask is enforced by the cron module</li>
|
|
<li>apt packages that are not-removed and not-upgraded do not count as changes</li>
|
|
<li>the assemble module can now use src files from the local server and copy them over dynamically</li>
|
|
<li>authorization code has been standardized between Amazon cloud modules</li>
|
|
<li>the wait_for module can now also wait for files to exist or a regex string to exist in a file</li>
|
|
<li>leading ranges are now allowed in ranged hostname patterns, ex: [000-250].example.com</li>
|
|
<li>pager support added to ansible-doc (so it will auto-invoke less, etc)</li>
|
|
<li>misc fixes to the cron module</li>
|
|
<li>get_url module now understands content-disposition headers for deciding filenames</li>
|
|
<li>it is possible to have subdirectories in between group_vars/ and host_vars/ and the final filename, like host_vars/rack42/asdf for the variables for host 'asdf'. The intermediate directories are ignored, and do not put a file in there twice.</li>
|
|
</ul><p>1.3.4 "Top of the World" (reprise) - October 29, 2013</p>
|
|
|
|
<ul>
|
|
<li>Fixed a bug in the copy module, where a filename containing the string "raw" was handled incorrectly</li>
|
|
<li>Fixed a bug in accelerate mode, where copying a zero-length file out would fail</li>
|
|
</ul><p>1.3.3 "Top of the World" (reprise) - October 9, 2013</p>
|
|
|
|
<p>Additional fixes for accelerate mode.</p>
|
|
|
|
<p>1.3.2 "Top of the World" (reprise) - September 19th, 2013</p>
|
|
|
|
<p>Multiple accelerate mode fixes:</p>
|
|
|
|
<ul>
|
|
<li>Make packet reception less greedy, so multiple frames of data are not consumed by one call.</li>
|
|
<li>Adding two timeout values (one for connection and one for data reception timeout).</li>
|
|
<li>Added keepalive packets, so async mode is no longer required for long-running tasks.</li>
|
|
<li>Modified accelerate daemon to use the verbose logging level of the ansible command that started it.</li>
|
|
<li>Fixed bug where accelerate would not work in check-mode.</li>
|
|
<li>Added a -vvvv level, which will show SSH client debugging information in the event of a failure.</li>
|
|
<li>Fixed bug in apt_repository module where the repository cache was not being updated.</li>
|
|
<li>Fixed bug where "too many open files" errors would be encountered due to pseudo TTY's not being closed properly.</li>
|
|
</ul><p>1.3.1 "Top of the World" (reprise) - September 16th, 2013</p>
|
|
|
|
<p>Fixing a bug in accelerate mode whereby the gather_facts step would always be run via sudo regardless of the play settings.</p>
|
|
|
|
<p>1.3 "Top of the World" - September 13th, 2013</p>
|
|
|
|
<p>Highlighted new features:</p>
|
|
|
|
<ul>
|
|
<li>accelerated mode: An enhanced fireball mode that requires zero bootstrapping and fewer requirements plus adds capabilities like sudo commands.</li>
|
|
<li>role defaults: Allows roles to define a set of variables at the lowest priority. These variables can be overridden by any other variable.</li>
|
|
<li>new /etc/ansible/facts.d allows JSON or INI-style facts to be provided from the remote node, and supports executable fact programs in this dir. Files must end in *.fact.</li>
|
|
<li>added the ability to make undefined template variables raise errors (see ansible.cfg)</li>
|
|
<li>(DOCS PENDING) sudo: True/False and sudo_user: True/False can be set at include and role level</li>
|
|
<li>added changed_when: (expression) which allows overriding whether a result is changed or not and can work with registered expressions</li>
|
|
<li>--extra-vars can now take a file as input, e.g., "-e @filename" and can also be formatted as YAML</li>
|
|
<li>external inventory scripts may now return host variables in one pass, which allows them to be much more efficient for large numbers of hosts</li>
|
|
<li>if --forks exceeds the numbers of hosts, it will be automatically reduced. Set forks to 0 and you get "as many forks as I have hosts" out of the box.</li>
|
|
<li>enabled error_on_undefined_vars by default, which will make errors in playbooks more obvious</li>
|
|
<li>role dependencies -- one role can now pull in another, with parameters of its own.</li>
|
|
<li>added the ability to have tasks execute even during a check run (always_run).</li>
|
|
<li>added the ability to set the maximum failure percentage for a group of hosts.</li>
|
|
</ul><p>New modules:</p>
|
|
|
|
<ul>
|
|
<li>notifications: datadog_event -- send data to datadog</li>
|
|
<li>cloud: digital_ocean -- module for DigitalOcean provisioning that also includes inventory support</li>
|
|
<li>cloud: rds -- Amazon Relational Database Service</li>
|
|
<li>cloud: linode -- modules for Linode provisioning that also includes inventory support</li>
|
|
<li>cloud: route53 -- manage Amazon DNS entries </li>
|
|
<li>cloud: ec2_ami -- manages (and creates!) ec2 AMIs</li>
|
|
<li>database: mysql_replication -- manages mysql replication settings for masters/slaves</li>
|
|
<li>database: mysql_variables -- manages mysql runtime variables</li>
|
|
<li>database: redis -- manages redis databases (slave mode and flushing data)</li>
|
|
<li>net_infrastructure: arista_interface</li>
|
|
<li>net_infrastructure: arista_lag</li>
|
|
<li>net_infrastructure: arista_l2interface</li>
|
|
<li>net_infrastructure: arista_vlan</li>
|
|
<li>system: stat -- reports on stat(istics) of remote files, for use with 'register'</li>
|
|
<li>web_infrastructure: htpasswd -- manipulate htpasswd files</li>
|
|
<li>packaging: rpm_key -- adds or removes RPM signing keys</li>
|
|
<li>packaging: apt_repository -- rewritten to remove dependencies </li>
|
|
<li>monitoring: boundary_meter -- adds or removes boundary.com meters</li>
|
|
<li>net_infrastructure: dnsmadeeasy - manipulate DNS Made Easy records</li>
|
|
<li>files: xattr -- manages extended attributes on files</li>
|
|
</ul><p>Misc changes:</p>
|
|
|
|
<ul>
|
|
<li>return 3 when there are hosts that were unreachable during a run</li>
|
|
<li>the yum module now supports wildcard values for the enablerepo argument</li>
|
|
<li>added an inventory script to pull host information from Zabbix</li>
|
|
<li>async mode no longer allows with_* lookup plugins due to incompatibilities</li>
|
|
<li>Added OpenRC support (Gentoo) to the service module</li>
|
|
<li>ansible_ssh_user value is available to templates</li>
|
|
<li>added placement_group parameter to ec2 module</li>
|
|
<li>new sha256sum parameter added to get_url module for checksum validation</li>
|
|
<li>search for mount binaries in system path and sbin vs assuming path</li>
|
|
<li>allowed inventory file to be read from a pipe</li>
|
|
<li>added Solaris distribution facts</li>
|
|
<li>fixed bug along error path in quantum_network module</li>
|
|
<li>user password update mode is controllable in user module now (at creation vs. every time)</li>
|
|
<li>added check mode support to the OpenBSD package module</li>
|
|
<li>Fix for MySQL 5.6 compatibility</li>
|
|
<li>HP UX virtualization facts</li>
|
|
<li>fixed some executable bits in git</li>
|
|
<li>made rhn_register module compatible with EL5</li>
|
|
<li>fix for setup module epoch time on Solaris</li>
|
|
<li>sudo_user is now expanded later, allowing it to be set at inventory scope</li>
|
|
<li>mongodb_user module changed to also support MongoDB 2.2</li>
|
|
<li>new state=hard option added to the file module for hardlinks vs softlinks</li>
|
|
<li>fixes to apt module purging option behavior</li>
|
|
<li>fixes for device facts with multiple PCI domains</li>
|
|
<li>added "with_inventory_hostnames" lookup plugin, which can take a pattern and loop over hostnames matching the pattern and is great for use with delegate_to and so on</li>
|
|
<li>ec2 module supports adding to multiple security groups</li>
|
|
<li>cloudformation module includes fixes for the error path, and the 'wait_for' parameter was removed</li>
|
|
<li>added --only-if-changed to ansible-pull, which runs only if the repo has changes (not default)</li>
|
|
<li>added 'mandatory', a Jinja2 filter that checks if a variable is defined: {{ foo|mandatory }}</li>
|
|
<li>added support for multiple size formats to the lvol module</li>
|
|
<li>timing reporting on wait_for module now includes the delay time</li>
|
|
<li>IRC module can now send a server password</li>
|
|
<li>"~" now expanded on each component of configured plugin paths</li>
|
|
<li>fix for easy_install module when dealing with virtualenv</li>
|
|
<li>rackspace module now explicitly indicates rackspace vs vanilla openstack</li>
|
|
<li>add_host module does not report changed=True any longer</li>
|
|
<li>explanatory error message when using fireball with sudo has been improved</li>
|
|
<li>git module now automatically pulls down git submodules</li>
|
|
<li>negated patterns do not require "all:!foo", you can just say "!foo" now to select all not foos</li>
|
|
<li>fix for Debian services always reporting changed when toggling enablement bit</li>
|
|
<li>roles files now tolerate files named 'main.yaml' and 'main' in addition to main.yml</li>
|
|
<li>some help cleanup to command line flags on scripts</li>
|
|
<li>force option reinstated for file module so it can create symlinks to non-existent files, etc.</li>
|
|
<li>added termination support to ec2 module</li>
|
|
<li>--ask-sudo-pass or --sudo-user does not enable all options to use sudo in ansible-playbook</li>
|
|
<li>include/role conditionals are added ahead of task conditionals so they can short circuit properly</li>
|
|
<li>added pipes.quote in various places so paths with spaces are better tolerated</li>
|
|
<li>error handling while executing Jinja2 filters has been improved</li>
|
|
<li>upgrades to atomic replacement logic when copying files across partitions/etc</li>
|
|
<li>mysql user module can try to login before requiring explicit password</li>
|
|
<li>various additional options added to supervisorctl module</li>
|
|
<li>only add non unique parameter on group creation when required</li>
|
|
<li>allow rabbitmq_plugin to specify a non-standard RabbitMQ path</li>
|
|
<li>authentication fixes to keystone_user module</li>
|
|
<li>added IAM role support to EC2 module</li>
|
|
<li>fixes for OpenBSD package module to avoid shell expansion</li>
|
|
<li>git module upgrades to allow --depth and --version to be used together</li>
|
|
<li>new lookup plugin, "with_flattened"</li>
|
|
<li>extra vars (-e) variables can be used in playbook include paths</li>
|
|
<li>improved reporting for invalid sudo passwords</li>
|
|
<li>improved reporting for inability to find a suitable tmp location</li>
|
|
<li>require libselinux-python to perform file operations if SELinux is operational</li>
|
|
<li>ZFS module fixes for byte display constants and handling paths with spaces</li>
|
|
<li>setup module more tolerant of gathering facts against things it does not have permission to read</li>
|
|
<li>can specify name=* state=latest to update all yum modules</li>
|
|
<li>major speedups to the yum module for default cases</li>
|
|
<li>ec2_facts module will now run in check mode</li>
|
|
<li>sleep option on service module for sleeping between stop/restart</li>
|
|
<li>fix for IPv6 facts on BSD</li>
|
|
<li>added Jinja2 filters: skipped, whether a result was skipped</li>
|
|
<li>added Jinja2 filters: quote, quotes a string if it needs to be quoted</li>
|
|
<li>allow force=yes to affect apt upgrades</li>
|
|
<li>fix for saving conditionals in variable names</li>
|
|
<li>support for multiple host ranges in INI inventory, e.g., db[01:10:3]node-[01:10]</li>
|
|
<li>fixes/improvements to cron module</li>
|
|
<li>add user_install=no option to gem module to install gems system wide</li>
|
|
<li>added raw=yes to allow copying without python on remote machines</li>
|
|
<li>added with_indexed_items lookup plugin</li>
|
|
<li>Linode inventory plugin now significantly faster</li>
|
|
<li>added recurse=yes parameter to pacman module for package removal</li>
|
|
<li>apt_key module can now target specific keyrings (keyring=filename)</li>
|
|
<li>ec2 module change reporting improved</li>
|
|
<li>hg module now expands user paths (~)</li>
|
|
<li>SSH connection type known host checking now can process hashed known_host files</li>
|
|
<li>lvg module now checks for executables in more correct locations</li>
|
|
<li>copy module now works correctly with sudo_user</li>
|
|
<li>region parameter added to ec2_elb module</li>
|
|
<li>better default XMPP module message types</li>
|
|
<li>fixed conditional tests against raw booleans</li>
|
|
<li>mysql module grant removal is now smarter</li>
|
|
<li>apt-remove is now forced to be non-interactive</li>
|
|
<li>support ; comments in INI file module</li>
|
|
<li>fixes to callbacks WRT async output (fire and forget tasks now trigger callbacks!)</li>
|
|
<li>folder support for s3 module</li>
|
|
<li>added new example inventory plugin for Red Hat OpenShift</li>
|
|
<li>and other misc. bugfixes</li>
|
|
</ul><p>1.2.3 "Hear About It Later" (reprise) -- Aug 21, 2013</p>
|
|
|
|
<ul>
|
|
<li>Local security fixes for predictable file locations for ControlPersist and retry file paths on shared machines
|
|
on operating systems without kernel symlink/hardlink protections.</li>
|
|
</ul><p>1.2.2 "Hear About It Later" (reprise) -- July 4, 2013</p>
|
|
|
|
<ul>
|
|
<li>Added a configuration file option [paramiko_connection] record_host_keys which allows the code that paramiko uses
|
|
to update known_hosts to be disabled. This is done because paramiko can be very slow at doing this if you have a
|
|
large number of hosts and some folks may not want this behavior. This can be toggled independently of host key checking
|
|
and does not affect the ssh transport plugin. Use of the ssh transport plugin is preferred if you have ControlPersist
|
|
capability, and Ansible by default in 1.2.1 and later will autodetect.</li>
|
|
</ul><p>1.2.1 "Hear About It Later" -- July 4, 2013</p>
|
|
|
|
<ul>
|
|
<li>Connection default is now "smart", which discovers if the system openssh can support ControlPersist, and uses
|
|
it if so, if not falls back to paramiko.</li>
|
|
<li>Host key checking is on by default. Disable it if you like by adding host_key_checking=False in the [default]
|
|
section of /etc/ansible/ansible.cfg or ~/ansible.cfg or by exporting ANSIBLE_HOST_KEY_CHECKING=False</li>
|
|
<li>Paramiko now records host keys it was in contact with host key checking is on. It is somewhat sluggish when doing this,
|
|
so switch to the 'ssh' transport if this concerns you.</li>
|
|
</ul><p>1.2 "Right Now" -- June 10, 2013</p>
|
|
|
|
<p>Core Features:</p>
|
|
|
|
<ul>
|
|
<li>capability to set 'all_errors_fatal: True' in a playbook to force any error to stop execution versus
|
|
a whole group or serial block needing to fail
|
|
usable, without breaking the ability to override in ansible</li>
|
|
<li>ability to use variables from {{ }} syntax in mainline playbooks, new 'when' conditional, as detailed
|
|
in documentation. Can disable old style replacements in ansible.cfg if so desired, but are still active
|
|
by default.</li>
|
|
<li>can set ansible_ssh_private_key_file as an inventory variable (similar to ansible_ssh_host, etc)</li>
|
|
<li>'when' statement can be affixed to task includes to auto-affix the conditional to each task therein</li>
|
|
<li>cosmetic: "*****" banners in ansible-playbook output are now constant width</li>
|
|
<li>--limit can now be given a filename (--limit @filename) to constrain a run to a host list on disk</li>
|
|
<li>failed playbook runs will create a retry file in /var/tmp/ansible usable with --limit</li>
|
|
<li>roles allow easy arrangement of reusable tasks/handlers/files/templates</li>
|
|
<li>pre_tasks and post_tasks allow for separating tasks into blocks where handlers will fire around them automatically</li>
|
|
<li>"meta: flush_handler" task capability added for when you really need to force handlers to run</li>
|
|
<li>new --start-at-task option to ansible playbook allows starting at a specific task name in a long playbook</li>
|
|
<li>added a log file for ansible/ansible-playbook, set 'log_path' in the configuration file or ANSIBLE_LOG_PATH in environment</li>
|
|
<li>debug mode always outputs debug in playbooks, without needing to specify -v</li>
|
|
<li>external inventory script added for Spacewalk / Red Hat Satellite servers</li>
|
|
<li>It is now possible to feed JSON structures to --extra-vars. Pass in a JSON dictionary/hash to feed in complex data.</li>
|
|
<li>group_vars/ and host_vars/ directories can now be kept alongside the playbook as well as inventory (or both!)</li>
|
|
<li>more filters: ability to say {{ foo|success }} and {{ foo|failed }} and when: foo|success and when: foo|failed</li>
|
|
<li>more filters: {{ path|basename }} and {{ path|dirname }}</li>
|
|
<li>lookup plugins now use the basedir of the file they have included from, avoiding needs of ../../../ in places and
|
|
increasing the ease at which things can be reorganized.</li>
|
|
</ul><p>Modules added:</p>
|
|
|
|
<ul>
|
|
<li>cloud: rax: module for creating instances in the rackspace cloud (uses pyrax)</li>
|
|
<li>packages: npm: node.js package management</li>
|
|
<li>packages: pkgng: next-gen package manager for FreeBSD</li>
|
|
<li>packages: redhat_subscription: manage Red Hat subscription usage</li>
|
|
<li>packages: rhn_register: basic RHN registration</li>
|
|
<li>packages: zypper (SuSE)</li>
|
|
<li>database: postgresql_priv: manages postgresql priveledges</li>
|
|
<li>networking: bigip_pool: load balancing with F5s</li>
|
|
<li>networking: ec2_elb: add and remove machines from ec2 elastic load balancers</li>
|
|
<li>notification: hipchat: send notification events to hipchat</li>
|
|
<li>notification: flowdock: send messages to flowdock during playbook runs</li>
|
|
<li>notification: campfire: send messages to campfire during playbook runs</li>
|
|
<li>notification: mqtt: send messages to the Mosquitto message bus</li>
|
|
<li>notification: irc: send messages to IRC channels</li>
|
|
<li>notification: filesystem - a wrapper around mkfs</li>
|
|
<li>notification: jabber: send jabber chat messages</li>
|
|
<li>notification: osx_say: make OS X say things out loud</li>
|
|
<li>openstack: keystone_user</li>
|
|
<li>openstack: glance_image</li>
|
|
<li>openstack: nova_compute</li>
|
|
<li>openstack: nova_keypair</li>
|
|
<li>openstack: quantum_floating_ip</li>
|
|
<li>openstack: quantum_floating_ip_associate</li>
|
|
<li>openstack: quantum_network</li>
|
|
<li>openstack: quantum_router</li>
|
|
<li>openstack: quantum_router_gateway</li>
|
|
<li>openstack: quantum_router_interface</li>
|
|
<li>openstack: quantum_subnet</li>
|
|
<li>monitoring: newrelic_deployment: notifies newrelic of new deployments</li>
|
|
<li>monitoring: airbrake_deployment - notify airbrake of new deployments</li>
|
|
<li>monitoring: pingdom</li>
|
|
<li>monitoring: pagerduty</li>
|
|
<li>monitoring: monit</li>
|
|
<li>utility: set_fact: sets a variable, which can be the result of a template evaluation</li>
|
|
</ul><p>Modules removed</p>
|
|
|
|
<ul>
|
|
<li>vagrant -- can't be compatible with both versions at once, just run things though the vagrant provisioner in vagrant core</li>
|
|
</ul><p>Bugfixes and Misc Changes:</p>
|
|
|
|
<ul>
|
|
<li>service module happier if only enabled=yes|no specified and no state</li>
|
|
<li>mysql_db: use --password= instead of -p in dump/import so it doesn't go interactive if no pass set</li>
|
|
<li>when using -c ssh and the ansible user is the current user, don't pass a -o to allow SSH config to be</li>
|
|
<li>overwrite parameter added to the s3 module</li>
|
|
<li>private_ip parameter added to the ec2 module</li>
|
|
<li>$FILE and $PIPE now tolerate unicode</li>
|
|
<li>various plugin loading operations have been made more efficient</li>
|
|
<li>hostname now uses platform.node versus socket.gethostname to be more consistant with Unix 'hostname'</li>
|
|
<li>fix for SELinux operations on Unicode path names</li>
|
|
<li>inventory directory locations now ignore files with .ini extensions, making hybrid inventory easier</li>
|
|
<li>copy module in check-mode now reports back correct changed status when used with force=no</li>
|
|
<li>added avail. zone to ec2 module</li>
|
|
<li>fixes to the hash variable merging logic if so enabled in the main settings file (default is to replace, not merge hashes)</li>
|
|
<li>group_vars and host_vars files can now end in a .yaml or .yml extension, (previously required no extension, still favored)</li>
|
|
<li>ec2vol module improvements</li>
|
|
<li>if the user module is told to generate the ssh key, the key generated is now returned in the results</li>
|
|
<li>misc fixes to the Riak module</li>
|
|
<li>make template module slightly more efficient</li>
|
|
<li>base64encode / decode filters are now available to templates</li>
|
|
<li>libvirt module can now work with multiple different libvirt connecton URIs</li>
|
|
<li>fix for postgresql password escaping</li>
|
|
<li>unicode fix for shlex.split in some cases</li>
|
|
<li>apt module upgrade logic improved</li>
|
|
<li>URI module now can follow redirects</li>
|
|
<li>yum module can now install off http URLs</li>
|
|
<li>sudo password now defaults to ssh password if you ask for both and just hit enter on the second prompt</li>
|
|
<li>validate feature on copy and template module, for example, running visudo prior to copying the file over</li>
|
|
<li>network facts upgraded to return advanced configs (bonding, etc)</li>
|
|
<li>region support added to ec2 module</li>
|
|
<li>riak module gets a wait for ring option</li>
|
|
<li>improved check mode support in the file module</li>
|
|
<li>exception handling added to handle scenario when attempt to log to systemd journal fails</li>
|
|
<li>fix for upstart handling when toggling the enablement and running bits at the same time</li>
|
|
<li>when registering a task with a conditional attached, and the task is skipped by the conditional,
|
|
the variable is still registered for the host, with the attribute skipped: True.</li>
|
|
<li>delegate_to tasks can look up ansible_ssh_private_key_file variable from inventory correctly now</li>
|
|
<li>s3 module takes a 'dest' parameter to change the destination for uploads</li>
|
|
<li>apt module gets a cache_valid_time option to avoid redundant cache updates</li>
|
|
<li>ec2 module better understands security groups</li>
|
|
<li>fix for postgresql codec usage</li>
|
|
<li>setup module now tolerant of OpenVZ interfaces</li>
|
|
<li>check mode reporting improved for files and directories</li>
|
|
<li>doc system now reports on module requirements</li>
|
|
<li>group_by module can now also make use of globally scoped variables</li>
|
|
<li>localhost and 127.0.0.1 are now fuzzy matched in inventory (are now more or less interchangeable)</li>
|
|
<li>AIX improvements/fixes for users, groups, facts</li>
|
|
<li>lineinfile now does atomic file replacements</li>
|
|
<li>fix to not pass PasswordAuthentication=no in the config file unneccessarily for SSH connection type</li>
|
|
<li>for for authorized_key on Debian Squeeze</li>
|
|
<li>fixes for apt_repository module reporting changed incorrectly on certain repository types</li>
|
|
<li>allow the virtualenv argument to the pip module to be a pathname</li>
|
|
<li>service pattern argument now correctly read for BSD services</li>
|
|
<li>fetch location can now be controlled more directly via the 'flat' parameter.</li>
|
|
<li>added basename and dirname as Jinja2 filters available to all templates</li>
|
|
<li>pip works better when sudoing from unpriveledged users</li>
|
|
<li>fix for user creation with groups specification reporting 'changed' incorrectly in some cases</li>
|
|
<li>fix for some unicode encoding errors in outputing some data in verbose mode</li>
|
|
<li>improved FreeBSD, NetBSD and Solaris facts</li>
|
|
<li>debug module always outputs data without having to specify -v</li>
|
|
<li>fix for sysctl module creating new keys (must specify checks=none)</li>
|
|
<li>NetBSD and OpenBSD support for the user and groups modules</li>
|
|
<li>Add encrypted password support to password lookup</li>
|
|
</ul><p>1.1 "Mean Street" -- 4/2/2013</p>
|
|
|
|
<p>Core Features</p>
|
|
|
|
<ul>
|
|
<li>added --check option for "dry run" mode</li>
|
|
<li>added --diff option to show how templates or copied files change, or might change</li>
|
|
<li>--list-tasks for the playbook will list the tasks without running them</li>
|
|
<li>able to set the environment by setting "environment:" as a dictionary on any task (go proxy support!)</li>
|
|
<li>added ansible_ssh_user and ansible_ssh_pass for per-host/group username and password</li>
|
|
<li>jinja2 extensions can now be loaded from the config file</li>
|
|
<li>support for complex arguments to modules (within reason)</li>
|
|
<li>can specify ansible_connection=X to define the connection type in inventory variables</li>
|
|
<li>a new chroot connection type</li>
|
|
<li>module common code now has basic type checking (and casting) capability</li>
|
|
<li>module common now supports a 'no_log' attribute to mark a field as not to be syslogged</li>
|
|
<li>inventory can now point to a directory containing multiple scripts/hosts files, if using this, put group_vars/host_vars directories inside this directory</li>
|
|
<li>added configurable crypt scheme for 'vars_prompt'</li>
|
|
<li>password generating lookup plugin -- $PASSWORD(path/to/save/data/in)</li>
|
|
<li>added --step option to ansible-playbook, works just like Linux interactive startup!</li>
|
|
</ul><p>Modules Added:</p>
|
|
|
|
<ul>
|
|
<li>bzr (bazaar version control)</li>
|
|
<li>cloudformation</li>
|
|
<li>django-manage</li>
|
|
<li>gem (ruby gems)</li>
|
|
<li>homebrew</li>
|
|
<li>lvg (logical volume groups)</li>
|
|
<li>lvol (LVM logical volumes)</li>
|
|
<li>macports</li>
|
|
<li>mongodb_user</li>
|
|
<li>netscaler</li>
|
|
<li>okg</li>
|
|
<li>openbsd_pkg</li>
|
|
<li>rabbit_mq_plugin</li>
|
|
<li>rabbit_mq_user</li>
|
|
<li>rabbit_mq_vhost</li>
|
|
<li>rabbit_mq_parameter</li>
|
|
<li>rhn_channel</li>
|
|
<li>s3 -- allows putting file contents in buckets for sharing over s3</li>
|
|
<li>uri module -- can get/put/post/etc</li>
|
|
<li>vagrant -- launching VMs with vagrant, this is different from existing vagrant plugin</li>
|
|
<li>zfs</li>
|
|
</ul><p>Bugfixes and Misc Changes:</p>
|
|
|
|
<ul>
|
|
<li>stderr shown when commands fail to parse</li>
|
|
<li>uses yaml.safe_dump in filter plugins</li>
|
|
<li>authentication Q&A no longer happens before --syntax-check, but after</li>
|
|
<li>ability to get hostvars data for nodes not in the setup cache yet</li>
|
|
<li>SSH timeout now correctly passed to native SSH connection plugin</li>
|
|
<li>raise an error when multiple when_ statements are provided</li>
|
|
<li>--list-hosts applies host limit selections better</li>
|
|
<li>(internals) template engine specifications to use template_ds everywhere</li>
|
|
<li>better error message when your host file can not be found</li>
|
|
<li>end of line comments now work in the inventory file</li>
|
|
<li>directory destinations now work better with remote md5 code</li>
|
|
<li>lookup plugin macros like $FILE and $ENV now work without returning arrays in variable definitions/playbooks</li>
|
|
<li>uses yaml.safe_load everywhere</li>
|
|
<li>able to add EXAMPLES to documentation via EXAMPLES docstring, rather than just in main documentation YAML</li>
|
|
<li>can set ANSIBLE_COW_SELECTION to pick other cowsay types (including random)</li>
|
|
<li>to_nice_yaml and to_nice_json available as Jinja2 filters that indent and sort</li>
|
|
<li>cowsay able to run out of macports (very important!)</li>
|
|
<li>improved logging for fireball mode</li>
|
|
<li>nicer error message when talking to an older system that needs a JSON module installed</li>
|
|
<li>'magic' variable 'inventory_dir' now gives path to inventory file</li>
|
|
<li>'magic' variable 'vars' works like 'hostvars' but gives global scope variables, useful for debugging in templates mostly</li>
|
|
<li>conditionals can be used on plugins like add_host</li>
|
|
<li>developers: all callbacks now have access to a ".runner" and ".playbook", ".play", and ".task" object (use getattr, they may not always be set!)</li>
|
|
</ul><p>Facts:</p>
|
|
|
|
<ul>
|
|
<li>block device facts for the setup module</li>
|
|
<li>facts for AIX</li>
|
|
<li>fact detection for OS type on Amazon Linux</li>
|
|
<li>device fact gathering stability improvements</li>
|
|
<li>ansible_os_family fact added</li>
|
|
<li>user_id (remote user name)</li>
|
|
<li>a whole series of current time information under the 'datetime' hash</li>
|
|
<li>more OS X facts</li>
|
|
<li>support for detecting Alpine Linux</li>
|
|
<li>added facts for OpenBSD</li>
|
|
</ul><p>Module Changes/Fixes:</p>
|
|
|
|
<ul>
|
|
<li>ansible module common code (and ONLY that) which is mixed in with modules, is now BSD licensed. App remains GPLv3.</li>
|
|
<li>service code works better on platforms that mix upstart, systemd, and system-v</li>
|
|
<li>service enablement idempotence fixes for systemd and upstart</li>
|
|
<li>service status 4 is also 'not running'</li>
|
|
<li>supervisorctl restart fix</li>
|
|
<li>increased error handling for ec2 module</li>
|
|
<li>can recursively set permissions on directories</li>
|
|
<li>ec2: change to the way AMI tags are handled</li>
|
|
<li>cron module can now also manipulate cron.d files</li>
|
|
<li>virtualenv module can now inherit system site packages (or not)</li>
|
|
<li>lineinfile module now has an insertbefore option</li>
|
|
<li>NetBSD service module support</li>
|
|
<li>fixes to sysctl module where item has multiple values</li>
|
|
<li>AIX support for the user and group modules</li>
|
|
<li>able to specify a different hg repo to pull from than the original set</li>
|
|
<li>add_host module can set ports and other inventory variables</li>
|
|
<li>add_host module can add modules to multiple groups (groups=a,b,c), groups now alias for groupname</li>
|
|
<li>subnet ID can be set on EC2 module</li>
|
|
<li>MySQL module password handling improvements</li>
|
|
<li>added new virtualenv flags to pip and easy_install modules</li>
|
|
<li>various improvements to lineinfile module, now accepts common arguments from file</li>
|
|
<li>force= now replaces thirsty where used before, thirsty remains an alias</li>
|
|
<li>setup module can take a 'filter=' parameter to just return a few facts (not used by playbooks)</li>
|
|
<li>cron module works even if no crontab is present (for cron.d)</li>
|
|
<li>security group ID settable on EC2 module</li>
|
|
<li>misc fixes to sysctl module</li>
|
|
<li>fix to apt module so packages not in cache are still removable</li>
|
|
<li>charset fix to mail module</li>
|
|
<li>postresql db module now does not try to create the 'PUBLIC' user</li>
|
|
<li>SVN module now works correctly with self signed certs</li>
|
|
<li>apt module now has an upgrade parameter (values=yes, no, or 'dist')</li>
|
|
<li>nagios module gets new silence/unsilence commands</li>
|
|
<li>ability to disable proxy usage in get_url (use_proxy=no)</li>
|
|
<li>more OS X facts</li>
|
|
<li>added a 'fail_on_missing' (default no) option to fetch</li>
|
|
<li>added timeout to the uri module (default 30 seconds, adjustable)</li>
|
|
<li>ec2 now has a 'wait' parameter to wait for the instance to be active, eliminates need for separate wait_for call.</li>
|
|
<li>allow regex backreferences in lineinfile</li>
|
|
<li>id attribute on ec2 module can be used to set idempotent-do-not-recreate launches</li>
|
|
<li>icinga support for nagios module</li>
|
|
<li>fix default logins when no my.conf for MySQL module</li>
|
|
<li>option to create users with non-unique UIDs (user module)</li>
|
|
<li>macports module can enable/disable packages</li>
|
|
<li>quotes in my.cnf are stripped by the MySQL modules</li>
|
|
<li>Solaris Service management added</li>
|
|
<li>service module will attempt to auto-add unmanaged chkconfig services when needed</li>
|
|
<li>service module supports systemd service unit files</li>
|
|
</ul><p>Plugins:</p>
|
|
|
|
<ul>
|
|
<li>added 'with_random_choice' filter plugin</li>
|
|
<li>fixed ~ expansion for fileglob</li>
|
|
<li>with_nested allows for nested loops (see examples in examples/playbooks)</li>
|
|
</ul><p>1.0 "Eruption" -- Feb 1 2013</p>
|
|
|
|
<p>New modules:</p>
|
|
|
|
<ul>
|
|
<li>new sysctl module</li>
|
|
<li>new pacman module (Arch linux)</li>
|
|
<li>new apt_key module</li>
|
|
<li>hg module now in core</li>
|
|
<li>new ec2_facts module</li>
|
|
<li>added pkgin module for Joyent SmartOS</li>
|
|
</ul><p>New config settings:</p>
|
|
|
|
<ul>
|
|
<li>sudo_exe parameter can be set in config to use sudo alternatives</li>
|
|
<li>sudo_flags parameter can alter the flags used with sudo</li>
|
|
</ul><p>New playbook/language features:</p>
|
|
|
|
<ul>
|
|
<li>added when_failed and when_changed</li>
|
|
<li>task includes can now be of infinite depth</li>
|
|
<li>when_set and when_unset can take more than one var (when_set: $a and $b and $c)</li>
|
|
<li>added the with_sequence lookup plugin</li>
|
|
<li>can override "connection:" on an indvidual task</li>
|
|
<li>parameterized playbook includes can now define complex variables (not just all on one line)</li>
|
|
<li>making inventory variables available for use in vars_files paths</li>
|
|
<li>messages when skipping plays are now more clear</li>
|
|
<li>--extra-vars now has maximum precedence (as intended)</li>
|
|
</ul><p>Module fixes and new flags:</p>
|
|
|
|
<ul>
|
|
<li>ability to use raw module without python on remote system</li>
|
|
<li>fix for service status checking on Ubuntu</li>
|
|
<li>service module now responds to additional exit code for SERVICE_UNAVAILABLE</li>
|
|
<li>fix for raw module with '-c local'</li>
|
|
<li>various fixes to git module</li>
|
|
<li>ec2 module now reports the public DNS name</li>
|
|
<li>can pass executable= to the raw module to specify alternative shells</li>
|
|
<li>fix for postgres module when user contains a "-"</li>
|
|
<li>added additional template variables -- $template_fullpath and $template_run_date</li>
|
|
<li>raise errors on invalid arguments used with a task include statement</li>
|
|
<li>shell/command module takes a executable= parameter to specify a different shell than /bin/sh</li>
|
|
<li>added return code and error output to the raw module</li>
|
|
<li>added support for @reboot to the cron module</li>
|
|
<li>misc fixes to the pip module</li>
|
|
<li>nagios module can schedule downtime for all services on the host</li>
|
|
<li>various subversion module improvements</li>
|
|
<li>various mail module improvements</li>
|
|
<li>SELinux fix for files created by authorized_key module</li>
|
|
<li>"template override" ??</li>
|
|
<li>get_url module can now send user/password authorization</li>
|
|
<li>ec2 module can now deploy multiple simultaneous instances</li>
|
|
<li>fix for apt_key modules stalling in some situations</li>
|
|
<li>fix to enable Jinja2 {% include %} to work again in template</li>
|
|
<li>ec2 module is now powered by Boto</li>
|
|
<li>setup module can now detect if package manager is using pacman</li>
|
|
<li>fix for yum module with enablerepo in use on EL 6</li>
|
|
</ul><p>Core fixes and new behaviors:</p>
|
|
|
|
<ul>
|
|
<li>various fixes for variable resolution in playbooks</li>
|
|
<li>fixes for handling of "~" in some paths</li>
|
|
<li>various fixes to DWIM'ing of relative paths</li>
|
|
<li>/bin/ansible now takes a --list-hosts just like ansible-playbook did</li>
|
|
<li>various patterns can now take a regex vs a glob if they start with "~" (need docs on which!) - also /usr/bin/ansible</li>
|
|
<li>allow intersecting host patterns by using "&" ("webservers:!debian:&datacenter1")</li>
|
|
<li>handle tilde shell character for --private-key</li>
|
|
<li>hash merging policy is now selectable in the config file, can choose to override or merge</li>
|
|
<li>environment variables now available for setting all plugin paths (ANSIBLE_CALLBACK_PLUGINS, etc)</li>
|
|
<li>added packaging file for macports (not upstreamed yet)</li>
|
|
<li>hacking/test-module script now uses /usr/bin/env properly</li>
|
|
<li>fixed error formatting for certain classes of playbook syntax errors</li>
|
|
<li>fix for processing returns with large volumes of output</li>
|
|
</ul><p>Inventory files/scripts:</p>
|
|
|
|
<ul>
|
|
<li>hostname patterns in the inventory file can now use alphabetic ranges</li>
|
|
<li>whitespace is now allowed around group variables in the inventory file</li>
|
|
<li>inventory scripts can now define groups of groups and group vars (need example for docs?)</li>
|
|
</ul><p>0.9 "Dreams" -- Nov 30 2012</p>
|
|
|
|
<p>Highlighted core changes:</p>
|
|
|
|
<ul>
|
|
<li>various performance tweaks, ansible executes dramatically less SSH ops per unit of work</li>
|
|
<li>close paramiko SFTP connections less often on copy/template operations (speed increase)</li>
|
|
<li>change the way we use multiprocessing (speed/RAM usage improvements)</li>
|
|
<li>able to set default for asking password & sudo password in config file</li>
|
|
<li>ansible now installs nicely if running inside a virtualenv</li>
|
|
<li>flag to allow SSH connection to move files by scp vs sftp (in config file)</li>
|
|
<li>additional RPM subpackages for easily installing fireball mode deps (server and node)</li>
|
|
<li>group_vars/host_vars now available to ansible, not just playbooks</li>
|
|
<li>native ssh connection type (-c ssh) now supports passwords as well as keys</li>
|
|
<li>ansible-doc program to show details</li>
|
|
</ul><p>Other core changes:</p>
|
|
|
|
<ul>
|
|
<li>fix for template calls when last character is '$'</li>
|
|
<li>if ansible_python_interpreter is set on a delegated host, it now works as intended</li>
|
|
<li>--limit can now take "," as separator as well as ";" or ":"</li>
|
|
<li>msg is now displaced with newlines when a task fails</li>
|
|
<li>if any with_ plugin has no results in a list (empty list for with_items, etc), the task is now skipped</li>
|
|
<li>various output formatting fixes/improvements</li>
|
|
<li>fix for Xen dom0/domU detection in default facts</li>
|
|
<li>'ansible_domain' fact now available (ex value: example.com)</li>
|
|
<li>configured remote temp file location is now always used even for root</li>
|
|
<li>'register'-ed variables are not recorded for skipped hosts (for example, using only_if/when)</li>
|
|
<li>duplicate host records for the same host can no longer result when a host is listed in multiple groups</li>
|
|
<li>ansible-pull now passes --limit to prevent running on multiple hosts when used with generic playbooks</li>
|
|
<li>remote md5sum check fixes for Solaris 10</li>
|
|
<li>ability to configure syslog facility used by remote module calls</li>
|
|
<li>in templating, stray '$' characters are now handled more correctly</li>
|
|
</ul><p>Playbook changes:</p>
|
|
|
|
<ul>
|
|
<li>relative paths now work for 'first_available_file'</li>
|
|
<li>various templating engine fixes</li>
|
|
<li>'when' is an easier form of only if</li>
|
|
<li>--list-hosts on the playbook command now supports multiple playbooks on the same command line</li>
|
|
<li>playbook includes can now be parameterized</li>
|
|
</ul><p>Module additions:</p>
|
|
|
|
<ul>
|
|
<li>(addhost) new module for adding a temporary host record (used for creating new guests)</li>
|
|
<li>(group_by) module allows partitioning hosts based on group data</li>
|
|
<li>(ec2) new module for creating ec2 hosts</li>
|
|
<li>(script) added 'script' module for pushing and running self-deleting remote scripts</li>
|
|
<li>(svr4pkg) solaris svr4pkg module</li>
|
|
</ul><p>Module changes:</p>
|
|
|
|
<ul>
|
|
<li>(authorized key) module uses temp file now to prevent failure on full disk</li>
|
|
<li>(fetch) now uses the 'slurp' internal code to work as you would expect under sudo'ed accounts</li>
|
|
<li>(fetch) internal usage of md5 sums fixed for BSD</li>
|
|
<li>(get_url) thirsty is no longer required for directory destinations</li>
|
|
<li>(git) various git module improvements/tweaks</li>
|
|
<li>(group) now subclassed for various platforms, includes SunOS support</li>
|
|
<li>(lineinfile) create= option on lineinfile can create the file when it does not exist</li>
|
|
<li>(mysql_db) module takes new grant options</li>
|
|
<li>(postgresql_db) module now takes role_attr_flags</li>
|
|
<li>(service) further upgrades to service module service status reporting</li>
|
|
<li>(service) tweaks to get service module to play nice with BSD style service systems (rc.conf)</li>
|
|
<li>(service) possible to pass additional arguments to services</li>
|
|
<li>(shell) and command module now take an 'executable=' flag for specifying an alternate shell than /bin/sh</li>
|
|
<li>(user) ability to create SSH keys for users when using user module to create users</li>
|
|
<li>(user) atomic replacement of files preserves permissions of original file</li>
|
|
<li>(user) module can create SSH keys</li>
|
|
<li>(user) module now does Solaris and BSD</li>
|
|
<li>(yum) module takes enablerepo= and disablerepo=</li>
|
|
<li>(yum) misc yum module fixing for various corner cases</li>
|
|
</ul><p>Plugin changes:</p>
|
|
|
|
<ul>
|
|
<li>EC2 inventory script now produces nicer failure message if AWS is down (or similar)</li>
|
|
<li>plugin loading code now more streamlined</li>
|
|
<li>lookup plugins for DNS text records, environment variables, and redis</li>
|
|
<li>added a template lookup plugin $TEMPLATE('filename.j2')</li>
|
|
<li>various tweaks to the EC2 inventory plugin</li>
|
|
<li>jinja2 filters are now pluggable so it's easy to write your own (to_json/etc, are now impl. as such)</li>
|
|
</ul><p>0.8 "Cathedral" -- Oct 19, 2012</p>
|
|
|
|
<p>Highlighted Core Changes:</p>
|
|
|
|
<ul>
|
|
<li>fireball mode -- ansible can bootstrap a ephemeral 0mq (zeromq) daemon that runs as a given user and expires after X period of time. It is very fast.</li>
|
|
<li>playbooks with errors now return 2 on failure. 1 indicates a more fatal syntax error. Similar for /usr/bin/ansible</li>
|
|
<li>server side action code (template, etc) are now fully pluggable</li>
|
|
<li>ability to write lookup plugins, like the code powering "with_fileglob" (see below)</li>
|
|
</ul><p>Other Core Changes:</p>
|
|
|
|
<ul>
|
|
<li>ansible config file can also go in 'ansible.cfg' in cwd in addition to ~/.ansible.cfg and /etc/ansible/ansible.cfg</li>
|
|
<li>fix for inventory hosts at API level when hosts spec is a list and not a colon delimited string</li>
|
|
<li>ansible-pull example now sets up logrotate for the ansible-pull cron job log</li>
|
|
<li>negative host matching (!hosts) fixed for external inventory script usage</li>
|
|
<li>internals: os.executable check replaced with utils function so it plays nice on AIX</li>
|
|
<li>Debian packaging now includes ansible-pull manpage</li>
|
|
<li>magic variable 'ansible_ssh_host' can override the hostname (great for usage with tunnels)</li>
|
|
<li>date command usage in build scripts fixed for OS X</li>
|
|
<li>don't use SSH agent with paramiko if a password is specified</li>
|
|
<li>make output be cleaner on multi-line command/shell errors</li>
|
|
<li>/usr/bin/ansible now prints things when tasks are skipped, like when creates= is used with -m command and /usr/bin/ansible</li>
|
|
<li>when trying to async a module that is not a 'normal' asyncable module, ansible will now let you know</li>
|
|
<li>ability to access inventory variables via 'hostvars' for hosts not yet included in any play, using on demand lookups</li>
|
|
<li>merged ansible-plugins, ansible-resources, and ansible-docs into the main project</li>
|
|
<li>you can set ANSIBLE_NOCOWS=1 if you want to disable cowsay if it is installed. Though no one should ever want to do this! Cows are great!</li>
|
|
<li>you can set ANSIBLE_FORCECOLOR=1 to force color mode even when running without a TTY</li>
|
|
<li>fatal errors are now properly colored red.</li>
|
|
<li>skipped messages are now cyan, to differentiate them from unchanged messages.</li>
|
|
<li>extensive documentation upgrades</li>
|
|
<li>delegate_action to localhost (aka local_action) will always use the local connection type</li>
|
|
</ul><p>Highlighted playbook changes:</p>
|
|
|
|
<ul>
|
|
<li>is_set is available for use inside of an only_if expression: is_set('ansible_eth0'). We intend to further upgrade this with a 'when'
|
|
keyword providing better options to 'only_if' in the next release. Also is_unset('ansible_eth0')</li>
|
|
<li>playbooks can import playbooks in other directories and then be able to import tasks relative to them</li>
|
|
<li>FILE($path) now allows access of contents of file in a path, very good for use with SSH keys</li>
|
|
<li>similarly PIPE($command) will run a local command and return the results of executing this command</li>
|
|
<li>if all hosts in a play fail, stop the playbook, rather than letting the console log spool on by</li>
|
|
<li>only_if using register variables that are booleans now works in a boolean way like you'd expect</li>
|
|
<li>task includes now work with with_items (such as: include: path/to/wordpress.yml user=$item)</li>
|
|
<li>when using a $list variable with $var or ${var} syntax it will automatically join with commas</li>
|
|
<li>setup is not run more than once when we know it is has already been run in a play that included another play, etc</li>
|
|
<li>can set/override sudo and sudo_user on individual tasks in a play, defaults to what is set in the play if not present</li>
|
|
<li>ability to use with_fileglob to iterate over local file patterns</li>
|
|
<li>templates now use Jinja2's 'trim_blocks=True' to avoid stray newlines, small changes to templates may
|
|
be required in rare cases.</li>
|
|
</ul><p>Other playbook changes:</p>
|
|
|
|
<ul>
|
|
<li>to_yaml and from_yaml are available as Jinja2 filters</li>
|
|
<li>$group and $group_names are now accessible in with_items</li>
|
|
<li>where 'stdout' is provided a new 'stdout_lines' variable (type == list) is now generated and usable with with_items</li>
|
|
<li>when local_action is used the transport is automatically overridden to the local type</li>
|
|
<li>output on failed playbook commands is now nicely split for stderr/stdout and syntax errors</li>
|
|
<li>if local_action is not used and delegate_to was 127.0.0.1 or localhost, use local connection regardless</li>
|
|
<li>when running a playbook, and the statement has changed, prints 'changed:' now versus 'ok:' so it is obvious without colored mode</li>
|
|
<li>variables now usable within vars_prompt (just not host/group vars)</li>
|
|
<li>setup facts are now retained across plays (dictionary just gets updated as needed)</li>
|
|
<li>--sudo-user now works with --extra-vars</li>
|
|
<li>fix for multi_line strings with only_if</li>
|
|
</ul><p>New Modules:</p>
|
|
|
|
<ul>
|
|
<li>ini_file module for manipulating INI files</li>
|
|
<li>new LSB facts (release, distro, etc)</li>
|
|
<li>pause module -- (pause seconds=10) (pause minutes=1) (pause prompt=foo) -- it's an action plugin</li>
|
|
<li>a module for adding entries to the main crontab (though you may still wish to just drop template files into cron.d)</li>
|
|
<li>debug module can be used for outputing messages without using 'shell echo'</li>
|
|
<li>a fail module is now available for causing errors, you might want to use it with only_if to fail in certain conditions</li>
|
|
</ul><p>Other module Changes, Upgrades, and Fixes:</p>
|
|
|
|
<ul>
|
|
<li>removes= exists on command just like creates=</li>
|
|
<li>postgresql modules now take an optional port= parameter</li>
|
|
<li>/proc/cmdline info is now available in Linux facts</li>
|
|
<li>public host key detection for OS X</li>
|
|
<li>lineinfile module now uses 'search' not exact 'match' in regexes, making it much more intuitive and not needing regex syntax most of the time</li>
|
|
<li>added force=yes|no (default no) option for file module, which allows transition between files to directories and so on</li>
|
|
<li>additional facts for SunOS virtualization</li>
|
|
<li>copy module is now atomic when used across volumes</li>
|
|
<li>url_get module now returns 'dest' with the location of the file saved</li>
|
|
<li>fix for yum module when using local RPMs vs downloading</li>
|
|
<li>cleaner error messages with copy if destination directory does not exist</li>
|
|
<li>setup module now still works if PATH is not set</li>
|
|
<li>service module status now correct for services with 'subsys locked' status</li>
|
|
<li>misc fixes/upgrades to the wait_for module</li>
|
|
<li>git module now expands any "~" in provided destination paths</li>
|
|
<li>ignore stop error code failure for service module with state=restarted, always try to start</li>
|
|
<li>inline documentation for modules allows documentation source to built without pull requests to the ansible-docs project, among other things</li>
|
|
<li>variable '$ansible_managed' is now great to include at the top of your templates and includes useful information and a warning that it will be replaced</li>
|
|
<li>"~" now expanded in command module when using creates/removes</li>
|
|
<li>mysql module can do dumps and imports</li>
|
|
<li>selinux policy is only required if setting to not disabled</li>
|
|
<li>various fixes for yum module when working with packages not in any present repo</li>
|
|
</ul><p>0.7 "Panama" -- Sept 6 2012</p>
|
|
|
|
<p>Module changes:</p>
|
|
|
|
<ul>
|
|
<li>login_unix_socket option for mysql user and database modules (see PR #781 for doc notes)</li>
|
|
<li>new modules -- pip, easy_install, apt_repository, supervisorctl</li>
|
|
<li>error handling for setup module when SELinux is in a weird state</li>
|
|
<li>misc yum module fixes</li>
|
|
<li>better changed=True/False detection in user module on older Linux distros</li>
|
|
<li>nicer errors from modules when arguments are not key=value</li>
|
|
<li>backup option on copy (backup=yes), as well as template, assemble, and lineinfile</li>
|
|
<li>file module will not recurse on directory properties</li>
|
|
<li>yum module now workable without having repoquery installed, but doesn't support comparisons or list= if so</li>
|
|
<li>setup module now detects interfaces with aliases</li>
|
|
<li>better handling of VM guest type detection in setup module</li>
|
|
<li>new module boilerplate code to check for mutually required arguments, arguments required together, exclusive args</li>
|
|
<li>add pattern= as a paramter to the service module (for init scripts that don't do status, or do poor status)</li>
|
|
<li>various fixes to mysql & postresql modules</li>
|
|
<li>added a thirsty= option (boolean, default no) to the get_url module to decide to download the file every time or not</li>
|
|
<li>added a wait_for module to poll for ports being open</li>
|
|
<li>added a nagios module for controlling outage windows and alert statuses</li>
|
|
<li>added a seboolean module for getsebool/setsebool type operations</li>
|
|
<li>added a selinux module for controlling overall SELinux policy</li>
|
|
<li>added a subversion module</li>
|
|
<li>added lineinfile for adding and removing lines from basic files</li>
|
|
<li>added facts for ARM-based CPUs</li>
|
|
<li>support for systemd in the service module</li>
|
|
<li>git moduleforce reset behavior is now controllable</li>
|
|
<li>file module can now operate on special files (block devices, etc)</li>
|
|
</ul><p>Core changes:</p>
|
|
|
|
<ul>
|
|
<li>ansible --version will now give branch/SHA information if running from git</li>
|
|
<li>better sudo permissions when encountering different umasks</li>
|
|
<li>when using paramiko and SFTP is not accessible, do not traceback, but return a nice human readable msg</li>
|
|
<li>use -vvv for extreme debug levels. -v gives more playbook output as before</li>
|
|
<li>-vv shows module arguments to all module calls (and maybe some other things later)</li>
|
|
<li>don not pass "--" to sudo to work on older EL5</li>
|
|
<li>make remote_md5 internal function work with non-bash shells</li>
|
|
<li>allow user to be passed in via --extra-vars (regression)</li>
|
|
<li>add --limit option, which can be used to further confine the pattern given in ansible-playbooks</li>
|
|
<li>adds ranged patterns like dbservers[0-49] for usage with patterns or --limit</li>
|
|
<li>-u and user: defaults to current user, rather than root, override as before</li>
|
|
<li>/etc/ansible/ansible.cfg and ~/ansible.cfg now available to set default values and other things</li>
|
|
<li>(developers) ANSIBLE_KEEP_REMOTE_FILES=1 can be used in debugging (envrionment variable)</li>
|
|
<li>(developers) connection types are now plugins</li>
|
|
<li>(developers) callbacks can now be extended via plugins</li>
|
|
<li>added FreeBSD ports packaging scripts</li>
|
|
<li>check for terminal properties prior to engaging color modes</li>
|
|
<li>explicitly disable password auth with -c ssh, as it is not used anyway</li>
|
|
</ul><p>Playbooks:</p>
|
|
|
|
<ul>
|
|
<li>YAML syntax errors detected and show where the problem is</li>
|
|
<li>if you ctrl+c a playbook it will not traceback (usually)</li>
|
|
<li>vars_prompt now has encryption options (see examples/playbooks/prompts.yml)</li>
|
|
<li>allow variables in parameterized task include parameters (regression)</li>
|
|
<li>add ability to store the result of any command in a register (see examples/playbooks/register_logic.yml)</li>
|
|
<li>--list-hosts to show what hosts are included in each play of a playbook</li>
|
|
<li>fix a variable ordering issue that could affect vars_files with selective file source lists</li>
|
|
<li>adds 'delegate_to' for a task, which can be used to signal outage windows and load balancers on behalf of hosts</li>
|
|
<li>adds 'serial' to playbook, allowing you to specify how many hosts can be processing a playbook at one time (default 0=all)</li>
|
|
<li>adds 'local_action: ' as an alias to 'delegate_to: 127.0.0.1'</li>
|
|
</ul><p>0.6 "Cabo" -- August 6, 2012</p>
|
|
|
|
<p>playbooks:</p>
|
|
|
|
<ul>
|
|
<li>support to tag tasks and includes and use --tags in playbook CLI</li>
|
|
<li>playbooks can now include other playbooks (example/playbooks/nested_playbooks.yml)</li>
|
|
<li>vars_files now usable with with_items, provided file paths don't contain host specific facts</li>
|
|
<li>error reporting if with_items value is unbound</li>
|
|
<li>with_items no longer creates lots of tasks, creates one task that makes multiple calls</li>
|
|
<li>can use host_specific facts inside with_items (see above)</li>
|
|
<li>at the top level of a playbook, set 'gather_facts: no' to skip fact gathering</li>
|
|
<li>first_available_file and with_items used together will now raise an error</li>
|
|
<li>to catch typos, like 'var' for 'vars', playbooks and tasks now yell on invalid parameters</li>
|
|
<li>automatically load (directory_of_inventory_file)/group_vars/groupname and /host_vars/hostname in vars_files</li>
|
|
<li>playbook is now colorized, set ANSIBLE_NOCOLOR=1 if you do not like this, does not colorize if not a TTY</li>
|
|
<li>hostvars now preserved between plays (regression in 0.5 from 0.4), useful for sharing vars in multinode configs</li>
|
|
<li>ignore_errors: yes on a task can be used to allow a task to fail and not stop the play</li>
|
|
<li>with_items with the apt/yum module will install/remove/update everything in a single command</li>
|
|
</ul><p>inventory:</p>
|
|
|
|
<ul>
|
|
<li>groups variable available as a hash to return the hosts in each group name</li>
|
|
<li>in YAML inventory, hosts can list their groups in inverted order now also (see tests/yaml_hosts)</li>
|
|
<li>YAML inventory is deprecated and will be removed in 0.7</li>
|
|
<li>ec2 inventory script</li>
|
|
<li>support ranges of hosts in the host file, like www[001-100].example.com (supports leading zeros and also not)</li>
|
|
</ul><p>modules:</p>
|
|
|
|
<ul>
|
|
<li>fetch module now does not fail a system when requesting file paths (ex: logs) that don't exist</li>
|
|
<li>apt module now takes an optional install-recommends=yes|no (default yes)</li>
|
|
<li>fixes to the return codes of the copy module</li>
|
|
<li>copy module takes a remote md5sum to avoid large file transfer</li>
|
|
<li>various user and group module fixes (error handling, etc)</li>
|
|
<li>apt module now takes an optional force parameter</li>
|
|
<li>slightly better psychic service status handling for the service module</li>
|
|
<li>fetch module fixes for SSH connection type</li>
|
|
<li>modules now consistently all take yes/no for boolean parameters (and DWIM on true/false/1/0/y/n/etc)</li>
|
|
<li>setup module no longer saves to disk, template module now only used in playbooks</li>
|
|
<li>setup module no longer needs to run twice per playbook</li>
|
|
<li>apt module now passes DEBIAN_FRONTEND=noninteractive</li>
|
|
<li>mount module (manages active mounts + fstab)</li>
|
|
<li>setup module fixes if no ipv6 support</li>
|
|
<li>internals: template in common module boilerplate, also causes less SSH operations when used</li>
|
|
<li>git module fixes</li>
|
|
<li>setup module overhaul, more modular</li>
|
|
<li>minor caching logic added to inventory to reduce hammering of inventory scripts.</li>
|
|
<li>MySQL and PostgreSQL modules for user and db management</li>
|
|
<li>vars_prompt now supports private password entry (see examples/playbooks/prompts.yml)</li>
|
|
<li>yum module modified to be more tolerant of plugins spewing random console messages (ex: RHN)</li>
|
|
</ul><p>internals:</p>
|
|
|
|
<ul>
|
|
<li>when sudoing to root, still use /etc/ansible/setup as the metadata path, as if root</li>
|
|
<li>paramiko is now only imported if needed when running from source checkout</li>
|
|
<li>cowsay support on Ubuntu</li>
|
|
<li>various ssh connection fixes for old Ubuntu clients</li>
|
|
<li>./hacking/test-module now supports options like ansible takes and has a debugger mode</li>
|
|
<li>sudoing to a user other than root now works more seamlessly (uses /tmp, avoids umask issues)</li>
|
|
</ul><p>0.5 "Amsterdam" ------- July 04, 2012</p>
|
|
|
|
<ul>
|
|
<li>Service module gets more accurate service states when running with upstart</li>
|
|
<li>Jinja2 usage in playbooks (not templates), reinstated, supports %include directive</li>
|
|
<li>support for --connection ssh (supports Kerberos, bastion hosts, etc), requires ControlMaster</li>
|
|
<li>misc tracebacks replaced with error messages</li>
|
|
<li>various API/internals refactoring</li>
|
|
<li>vars can be built from other variables</li>
|
|
<li>support for exclusion of hosts/groups with "!groupname"</li>
|
|
<li>various changes to support md5 tool differences for FreeBSD nodes & OS X clients</li>
|
|
<li>"unparseable" command output shows in command output for easier debugging</li>
|
|
<li>mktemp is no longer required on remotes (not available on BSD)</li>
|
|
<li>support for older versions of python-apt in the apt module</li>
|
|
<li>a new "assemble" module, for constructing files from pieces of files (inspired by Puppet "fragments" idiom)</li>
|
|
<li>ability to override most default values with ANSIBLE_FOO environment variables</li>
|
|
<li>--module-path parameter can support multiple directories separated with the OS path separator</li>
|
|
<li>with_items can take a variable of type list</li>
|
|
<li>ansible_python_interpreter variable available for systems with more than one Python</li>
|
|
<li>BIOS and VMware "fact" upgrades</li>
|
|
<li>cowsay is used by ansible-playbook if installed to improve output legibility (try installing it)</li>
|
|
<li>authorized_key module</li>
|
|
<li>SELinux facts now sourced from the python selinux library</li>
|
|
<li>removed module debug option -D</li>
|
|
<li>added --verbose, which shows output from successful playbook operations</li>
|
|
<li>print the output of the raw command inside /usr/bin/ansible as with command/shell</li>
|
|
<li>basic setup module support for Solaris</li>
|
|
<li>./library relative to the playbook is always in path so modules can be included in tarballs with playbooks</li>
|
|
</ul><p>0.4 "Unchained" ------- May 23, 2012</p>
|
|
|
|
<p>Internals/Core</p>
|
|
|
|
<ul>
|
|
<li>internal inventory API now more object oriented, parsers decoupled</li>
|
|
<li>async handling improvements</li>
|
|
<li>misc fixes for running ansible on OS X (overlord only)</li>
|
|
<li>sudo improvements, now works much more smoothly</li>
|
|
<li>sudo to a particular user with -U/--sudo-user, or using 'sudo_user: foo' in a playbook</li>
|
|
<li>--private-key CLI option to work with pem files</li>
|
|
</ul><p>Inventory</p>
|
|
|
|
<ul>
|
|
<li>can use -i host1,host2,host3:port to specify hosts not in inventory (replaces --override-hosts)</li>
|
|
<li>ansible INI style format can do groups of groups [groupname:children] and group vars [groupname:vars]</li>
|
|
<li>groups and users module takes an optional system=yes|no on creation (default no)</li>
|
|
<li>list of hosts in playbooks can be expressed as a YAML list in addition to ; delimited</li>
|
|
</ul><p>Playbooks</p>
|
|
|
|
<ul>
|
|
<li>variables can be replaced like ${foo.nested_hash_key.nested_subkey[array_index]}</li>
|
|
<li>unicode now ok in templates (assumes utf8)</li>
|
|
<li>able to pass host specifier or group name in to "hosts:" with --extra-vars</li>
|
|
<li>ansible-pull script and example playbook (extreme scaling, remediation)</li>
|
|
<li>inventory_hostname variable available that contains the value of the host as ansible knows it</li>
|
|
<li>variables in the 'all' section can be used to define other variables based on those values</li>
|
|
<li>'group_names' is now a variable made available to templates</li>
|
|
<li>first_available_file feature, see selective_file_sources.yml in examples/playbooks for info</li>
|
|
<li>--extra-vars="a=2 b=3" etc, now available to inject parameters into playbooks from CLI</li>
|
|
</ul><p>Incompatible Changes</p>
|
|
|
|
<ul>
|
|
<li>jinja2 is only usable in templates, not playbooks, use $foo instead</li>
|
|
<li>--override-hosts removed, can use -i with comma notation (-i "ahost,bhost")</li>
|
|
<li>modules can no longer include stderr output (paramiko limitation from sudo)</li>
|
|
</ul><p>Module Changes</p>
|
|
|
|
<ul>
|
|
<li>tweaks to SELinux implementation for file module</li>
|
|
<li>fixes for yum module corner cases on EL5</li>
|
|
<li>file module now correctly returns the mode in octal</li>
|
|
<li>fix for symlink handling in the file module</li>
|
|
<li>service takes an enable=yes|no which works with chkconfig or updates-rc.d as appropriate</li>
|
|
<li>service module works better on Ubuntu</li>
|
|
<li>git module now does resets and such to work more smoothly on updates</li>
|
|
<li>modules all now log to syslog</li>
|
|
<li>enabled=yes|no on a service can be used to toggle chkconfig & updates-rc.d states</li>
|
|
<li>git module supports branch=</li>
|
|
<li>service fixes to better detect status using return codes of the service script</li>
|
|
<li>custom facts provided by the setup module mean no dependency on Ruby, facter, or ohai</li>
|
|
<li>service now has a state=reloaded</li>
|
|
<li>raw module for bootstrapping and talking to routers w/o Python, etc</li>
|
|
</ul><p>Misc Bugfixes</p>
|
|
|
|
<ul>
|
|
<li>fixes for variable parsing in only_if lines</li>
|
|
<li>misc fixes to key=value parsing</li>
|
|
<li>variables with mixed case now legal</li>
|
|
<li>fix to internals of hacking/test-module development script</li>
|
|
</ul><p>0.3 "Baluchitherium" -- April 23, 2012</p>
|
|
|
|
<ul>
|
|
<li>Packaging for Debian, Gentoo, and Arch</li>
|
|
<li>Improvements to the apt and yum modules</li>
|
|
<li>A virt module</li>
|
|
<li>SELinux support for the file module</li>
|
|
<li>Ability to use facts from other systems in templates (aka exported
|
|
resources like support)</li>
|
|
<li>Built in Ansible facts so you don't need ohai, facter, or Ruby</li>
|
|
<li>tempdir selections that work with noexec mounted /tmp</li>
|
|
<li>templates happen locally, not remotely, so no dependency on
|
|
python-jinja2 for remote computers</li>
|
|
<li>advanced inventory format in YAML allows more control over variables
|
|
per host and per group</li>
|
|
<li>variables in playbooks can be structured/nested versus just a flat namespace</li>
|
|
<li>manpage upgrades (docs)</li>
|
|
<li>various bugfixes</li>
|
|
<li>can specify a default --user for playbooks rather than specifying it
|
|
in the playbook file</li>
|
|
<li>able to specify ansible port in ansible host file (see docs)</li>
|
|
<li>refactored Inventory API to make it easier to write scripts using Ansible</li>
|
|
<li>looping capability for playbooks (with_items)</li>
|
|
<li>support for using sudo with a password</li>
|
|
<li>module arguments can be unicode</li>
|
|
<li>A local connection type, --connection=local, for use with cron or
|
|
in kickstarts</li>
|
|
<li>better module debugging with -D</li>
|
|
<li>fetch module for pulling in files from remote hosts</li>
|
|
<li>command task supports creates=foo for idempotent semantics, won't run if file foo already exists</li>
|
|
</ul><p>0.0.2 and 0.0.1</p>
|
|
|
|
<ul>
|
|
<li>Initial stages of project</li>
|
|
</ul></article>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a>
|
|
<div id="jump-to-line" style="display:none">
|
|
<form accept-charset="UTF-8" class="js-jump-to-line-form">
|
|
<input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" autofocus>
|
|
<button type="submit" class="button">Go</button>
|
|
</form>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div><!-- /.repo-container -->
|
|
<div class="modal-backdrop"></div>
|
|
</div><!-- /.container -->
|
|
</div><!-- /.site -->
|
|
|
|
|
|
</div><!-- /.wrapper -->
|
|
|
|
<div class="container">
|
|
<div class="site-footer">
|
|
<ul class="site-footer-links right">
|
|
<li><a href="https://status.github.com/">Status</a></li>
|
|
<li><a href="http://developer.github.com">API</a></li>
|
|
<li><a href="http://training.github.com">Training</a></li>
|
|
<li><a href="http://shop.github.com">Shop</a></li>
|
|
<li><a href="/blog">Blog</a></li>
|
|
<li><a href="/about">About</a></li>
|
|
|
|
</ul>
|
|
|
|
<a href="/">
|
|
<span class="mega-octicon octicon-mark-github" title="GitHub"></span>
|
|
</a>
|
|
|
|
<ul class="site-footer-links">
|
|
<li>© 2014 <span title="0.02693s from github-fe123-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
|
|
<li><a href="/site/terms">Terms</a></li>
|
|
<li><a href="/site/privacy">Privacy</a></li>
|
|
<li><a href="/security">Security</a></li>
|
|
<li><a href="/contact">Contact</a></li>
|
|
</ul>
|
|
</div><!-- /.site-footer -->
|
|
</div><!-- /.container -->
|
|
|
|
|
|
<div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
|
|
<div class="fullscreen-container js-fullscreen-container">
|
|
<div class="textarea-wrap">
|
|
<textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea>
|
|
<div class="suggester-container">
|
|
<div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester"
|
|
data-url="/ansible/ansible/suggestions/commit">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="fullscreen-sidebar">
|
|
<a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode">
|
|
<span class="mega-octicon octicon-screen-normal"></span>
|
|
</a>
|
|
<a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards"
|
|
title="Switch themes">
|
|
<span class="octicon octicon-color-mode"></span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div id="ajax-error-message" class="flash flash-error">
|
|
<span class="octicon octicon-alert"></span>
|
|
<a href="#" class="octicon octicon-remove-close close ajax-error-dismiss"></a>
|
|
Something went wrong with that request. Please try again.
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|
|
|