mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add line in file, rebuild
This commit is contained in:
parent
a2e5d38f59
commit
500941917d
21 changed files with 392 additions and 295 deletions
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>YAML Syntax — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>YAML Syntax — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -289,7 +292,7 @@ languages:
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -79,11 +79,11 @@ div.sphinxsidebar input {
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar input[type="text"] {
|
div.sphinxsidebar #searchbox input[type="text"] {
|
||||||
width: 170px;
|
width: 170px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar input[type="submit"] {
|
div.sphinxsidebar #searchbox input[type="submit"] {
|
||||||
width: 30px;
|
width: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -447,6 +447,11 @@ dl.glossary dt {
|
||||||
font-style: oblique;
|
font-style: oblique;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abbr, acronym {
|
||||||
|
border-bottom: dotted 1px;
|
||||||
|
cursor: help;
|
||||||
|
}
|
||||||
|
|
||||||
/* -- code displays --------------------------------------------------------- */
|
/* -- code displays --------------------------------------------------------- */
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* doctools.js
|
* doctools.js
|
||||||
* ~~~~~~~~~~~
|
* ~~~~~~~~~~~
|
||||||
*
|
*
|
||||||
* Sphinx JavaScript utilties for all documentation.
|
* Sphinx JavaScript utilities for all documentation.
|
||||||
*
|
*
|
||||||
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
|
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
|
||||||
* :license: BSD, see LICENSE for details.
|
* :license: BSD, see LICENSE for details.
|
||||||
|
@ -185,9 +185,9 @@ var Documentation = {
|
||||||
body.highlightText(this.toLowerCase(), 'highlighted');
|
body.highlightText(this.toLowerCase(), 'highlighted');
|
||||||
});
|
});
|
||||||
}, 10);
|
}, 10);
|
||||||
$('<li class="highlight-link"><a href="javascript:Documentation.' +
|
$('<p class="highlight-link"><a href="javascript:Documentation.' +
|
||||||
'hideSearchWords()">' + _('Hide Search Matches') + '</a></li>')
|
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
|
||||||
.appendTo($('.sidebar .this-page-menu'));
|
.appendTo($('#searchbox'));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ var Documentation = {
|
||||||
* helper function to hide the search marks again
|
* helper function to hide the search marks again
|
||||||
*/
|
*/
|
||||||
hideSearchWords : function() {
|
hideSearchWords : function() {
|
||||||
$('.sidebar .this-page-menu li.highlight-link').fadeOut(300);
|
$('#searchbox .highlight-link').fadeOut(300);
|
||||||
$('span.highlighted').removeClass('highlighted');
|
$('span.highlighted').removeClass('highlighted');
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* searchtools.js
|
* searchtools.js_t
|
||||||
* ~~~~~~~~~~~~~~
|
* ~~~~~~~~~~~~~~~~
|
||||||
*
|
*
|
||||||
* Sphinx JavaScript utilties for the full-text search.
|
* Sphinx JavaScript utilties for the full-text search.
|
||||||
*
|
*
|
||||||
|
@ -36,10 +36,11 @@ jQuery.makeSearchSummary = function(text, keywords, hlwords) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Porter Stemmer
|
* Porter Stemmer
|
||||||
*/
|
*/
|
||||||
var PorterStemmer = function() {
|
var Stemmer = function() {
|
||||||
|
|
||||||
var step2list = {
|
var step2list = {
|
||||||
ational: 'ate',
|
ational: 'ate',
|
||||||
|
@ -300,20 +301,20 @@ var Search = {
|
||||||
},
|
},
|
||||||
|
|
||||||
query : function(query) {
|
query : function(query) {
|
||||||
var stopwords = ['and', 'then', 'into', 'it', 'as', 'are', 'in',
|
var stopwords = ["and","then","into","it","as","are","in","if","for","no","there","their","was","is","be","to","that","but","they","not","such","with","by","a","on","these","of","will","this","near","the","or","at"];
|
||||||
'if', 'for', 'no', 'there', 'their', 'was', 'is',
|
|
||||||
'be', 'to', 'that', 'but', 'they', 'not', 'such',
|
|
||||||
'with', 'by', 'a', 'on', 'these', 'of', 'will',
|
|
||||||
'this', 'near', 'the', 'or', 'at'];
|
|
||||||
|
|
||||||
// stem the searchterms and add them to the correct list
|
// Stem the searchterms and add them to the correct list
|
||||||
var stemmer = new PorterStemmer();
|
var stemmer = new Stemmer();
|
||||||
var searchterms = [];
|
var searchterms = [];
|
||||||
var excluded = [];
|
var excluded = [];
|
||||||
var hlterms = [];
|
var hlterms = [];
|
||||||
var tmp = query.split(/\s+/);
|
var tmp = query.split(/\s+/);
|
||||||
var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null;
|
var objectterms = [];
|
||||||
for (var i = 0; i < tmp.length; i++) {
|
for (var i = 0; i < tmp.length; i++) {
|
||||||
|
if (tmp[i] != "") {
|
||||||
|
objectterms.push(tmp[i].toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
if ($u.indexOf(stopwords, tmp[i]) != -1 || tmp[i].match(/^\d+$/) ||
|
if ($u.indexOf(stopwords, tmp[i]) != -1 || tmp[i].match(/^\d+$/) ||
|
||||||
tmp[i] == "") {
|
tmp[i] == "") {
|
||||||
// skip this "word"
|
// skip this "word"
|
||||||
|
@ -344,9 +345,6 @@ var Search = {
|
||||||
var filenames = this._index.filenames;
|
var filenames = this._index.filenames;
|
||||||
var titles = this._index.titles;
|
var titles = this._index.titles;
|
||||||
var terms = this._index.terms;
|
var terms = this._index.terms;
|
||||||
var objects = this._index.objects;
|
|
||||||
var objtypes = this._index.objtypes;
|
|
||||||
var objnames = this._index.objnames;
|
|
||||||
var fileMap = {};
|
var fileMap = {};
|
||||||
var files = null;
|
var files = null;
|
||||||
// different result priorities
|
// different result priorities
|
||||||
|
@ -357,43 +355,19 @@ var Search = {
|
||||||
$('#search-progress').empty();
|
$('#search-progress').empty();
|
||||||
|
|
||||||
// lookup as object
|
// lookup as object
|
||||||
if (object != null) {
|
for (var i = 0; i < objectterms.length; i++) {
|
||||||
for (var prefix in objects) {
|
var others = [].concat(objectterms.slice(0,i),
|
||||||
for (var name in objects[prefix]) {
|
objectterms.slice(i+1, objectterms.length))
|
||||||
var fullname = (prefix ? prefix + '.' : '') + name;
|
var results = this.performObjectSearch(objectterms[i], others);
|
||||||
if (fullname.toLowerCase().indexOf(object) > -1) {
|
// Assume first word is most likely to be the object,
|
||||||
match = objects[prefix][name];
|
// other words more likely to be in description.
|
||||||
descr = objnames[match[1]][2] + _(', in ') + titles[match[0]];
|
// Therefore put matches for earlier words first.
|
||||||
anchor = match[3];
|
// (Results are eventually used in reverse order).
|
||||||
if (anchor == '')
|
objectResults = results[0].concat(objectResults);
|
||||||
anchor = fullname;
|
importantResults = results[1].concat(importantResults);
|
||||||
else if (anchor == '-')
|
unimportantResults = results[2].concat(unimportantResults);
|
||||||
anchor = objnames[match[1]][1] + '-' + fullname;
|
|
||||||
result = [filenames[match[0]], fullname, '#'+anchor, descr];
|
|
||||||
switch (match[2]) {
|
|
||||||
case 1: objectResults.push(result); break;
|
|
||||||
case 0: importantResults.push(result); break;
|
|
||||||
case 2: unimportantResults.push(result); break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// sort results descending
|
|
||||||
objectResults.sort(function(a, b) {
|
|
||||||
return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
|
|
||||||
});
|
|
||||||
|
|
||||||
importantResults.sort(function(a, b) {
|
|
||||||
return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
|
|
||||||
});
|
|
||||||
|
|
||||||
unimportantResults.sort(function(a, b) {
|
|
||||||
return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// perform the search on the required terms
|
// perform the search on the required terms
|
||||||
for (var i = 0; i < searchterms.length; i++) {
|
for (var i = 0; i < searchterms.length; i++) {
|
||||||
var word = searchterms[i];
|
var word = searchterms[i];
|
||||||
|
@ -513,6 +487,71 @@ var Search = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
displayNextItem();
|
displayNextItem();
|
||||||
|
},
|
||||||
|
|
||||||
|
performObjectSearch : function(object, otherterms) {
|
||||||
|
var filenames = this._index.filenames;
|
||||||
|
var objects = this._index.objects;
|
||||||
|
var objnames = this._index.objnames;
|
||||||
|
var titles = this._index.titles;
|
||||||
|
|
||||||
|
var importantResults = [];
|
||||||
|
var objectResults = [];
|
||||||
|
var unimportantResults = [];
|
||||||
|
|
||||||
|
for (var prefix in objects) {
|
||||||
|
for (var name in objects[prefix]) {
|
||||||
|
var fullname = (prefix ? prefix + '.' : '') + name;
|
||||||
|
if (fullname.toLowerCase().indexOf(object) > -1) {
|
||||||
|
var match = objects[prefix][name];
|
||||||
|
var objname = objnames[match[1]][2];
|
||||||
|
var title = titles[match[0]];
|
||||||
|
// If more than one term searched for, we require other words to be
|
||||||
|
// found in the name/title/description
|
||||||
|
if (otherterms.length > 0) {
|
||||||
|
var haystack = (prefix + ' ' + name + ' ' +
|
||||||
|
objname + ' ' + title).toLowerCase();
|
||||||
|
var allfound = true;
|
||||||
|
for (var i = 0; i < otherterms.length; i++) {
|
||||||
|
if (haystack.indexOf(otherterms[i]) == -1) {
|
||||||
|
allfound = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!allfound) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var descr = objname + _(', in ') + title;
|
||||||
|
anchor = match[3];
|
||||||
|
if (anchor == '')
|
||||||
|
anchor = fullname;
|
||||||
|
else if (anchor == '-')
|
||||||
|
anchor = objnames[match[1]][1] + '-' + fullname;
|
||||||
|
result = [filenames[match[0]], fullname, '#'+anchor, descr];
|
||||||
|
switch (match[2]) {
|
||||||
|
case 1: objectResults.push(result); break;
|
||||||
|
case 0: importantResults.push(result); break;
|
||||||
|
case 2: unimportantResults.push(result); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// sort results descending
|
||||||
|
objectResults.sort(function(a, b) {
|
||||||
|
return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
importantResults.sort(function(a, b) {
|
||||||
|
return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
unimportantResults.sort(function(a, b) {
|
||||||
|
return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
return [importantResults, objectResults, unimportantResults]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
// Underscore.js 0.5.5
|
||||||
|
// (c) 2009 Jeremy Ashkenas, DocumentCloud Inc.
|
||||||
|
// Underscore is freely distributable under the terms of the MIT license.
|
||||||
|
// Portions of Underscore are inspired by or borrowed from Prototype.js,
|
||||||
|
// Oliver Steele's Functional, and John Resig's Micro-Templating.
|
||||||
|
// For all details and documentation:
|
||||||
|
// http://documentcloud.github.com/underscore/
|
||||||
(function(){var j=this,n=j._,i=function(a){this._wrapped=a},m=typeof StopIteration!=="undefined"?StopIteration:"__break__",b=j._=function(a){return new i(a)};if(typeof exports!=="undefined")exports._=b;var k=Array.prototype.slice,o=Array.prototype.unshift,p=Object.prototype.toString,q=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;b.VERSION="0.5.5";b.each=function(a,c,d){try{if(a.forEach)a.forEach(c,d);else if(b.isArray(a)||b.isArguments(a))for(var e=0,f=a.length;e<f;e++)c.call(d,
|
(function(){var j=this,n=j._,i=function(a){this._wrapped=a},m=typeof StopIteration!=="undefined"?StopIteration:"__break__",b=j._=function(a){return new i(a)};if(typeof exports!=="undefined")exports._=b;var k=Array.prototype.slice,o=Array.prototype.unshift,p=Object.prototype.toString,q=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;b.VERSION="0.5.5";b.each=function(a,c,d){try{if(a.forEach)a.forEach(c,d);else if(b.isArray(a)||b.isArguments(a))for(var e=0,f=a.length;e<f;e++)c.call(d,
|
||||||
a[e],e,a);else{var g=b.keys(a);f=g.length;for(e=0;e<f;e++)c.call(d,a[g[e]],g[e],a)}}catch(h){if(h!=m)throw h;}return a};b.map=function(a,c,d){if(a&&b.isFunction(a.map))return a.map(c,d);var e=[];b.each(a,function(f,g,h){e.push(c.call(d,f,g,h))});return e};b.reduce=function(a,c,d,e){if(a&&b.isFunction(a.reduce))return a.reduce(b.bind(d,e),c);b.each(a,function(f,g,h){c=d.call(e,c,f,g,h)});return c};b.reduceRight=function(a,c,d,e){if(a&&b.isFunction(a.reduceRight))return a.reduceRight(b.bind(d,e),c);
|
a[e],e,a);else{var g=b.keys(a);f=g.length;for(e=0;e<f;e++)c.call(d,a[g[e]],g[e],a)}}catch(h){if(h!=m)throw h;}return a};b.map=function(a,c,d){if(a&&b.isFunction(a.map))return a.map(c,d);var e=[];b.each(a,function(f,g,h){e.push(c.call(d,f,g,h))});return e};b.reduce=function(a,c,d,e){if(a&&b.isFunction(a.reduce))return a.reduce(b.bind(d,e),c);b.each(a,function(f,g,h){c=d.call(e,c,f,g,h)});return c};b.reduceRight=function(a,c,d,e){if(a&&b.isFunction(a.reduceRight))return a.reduceRight(b.bind(d,e),c);
|
||||||
var f=b.clone(b.toArray(a)).reverse();b.each(f,function(g,h){c=d.call(e,c,g,h,a)});return c};b.detect=function(a,c,d){var e;b.each(a,function(f,g,h){if(c.call(d,f,g,h)){e=f;b.breakLoop()}});return e};b.select=function(a,c,d){if(a&&b.isFunction(a.filter))return a.filter(c,d);var e=[];b.each(a,function(f,g,h){c.call(d,f,g,h)&&e.push(f)});return e};b.reject=function(a,c,d){var e=[];b.each(a,function(f,g,h){!c.call(d,f,g,h)&&e.push(f)});return e};b.all=function(a,c,d){c=c||b.identity;if(a&&b.isFunction(a.every))return a.every(c,
|
var f=b.clone(b.toArray(a)).reverse();b.each(f,function(g,h){c=d.call(e,c,g,h,a)});return c};b.detect=function(a,c,d){var e;b.each(a,function(f,g,h){if(c.call(d,f,g,h)){e=f;b.breakLoop()}});return e};b.select=function(a,c,d){if(a&&b.isFunction(a.filter))return a.filter(c,d);var e=[];b.each(a,function(f,g,h){c.call(d,f,g,h)&&e.push(f)});return e};b.reject=function(a,c,d){var e=[];b.each(a,function(f,g,h){!c.call(d,f,g,h)&&e.push(f)});return e};b.all=function(a,c,d){c=c||b.identity;if(a&&b.isFunction(a.every))return a.every(c,
|
||||||
|
|
5
api.html
5
api.html
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>API & Integrations — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>API & Integrations — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -478,7 +481,7 @@ e.g.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Best Practices — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Best Practices — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -348,7 +351,7 @@ different variables to different geographies.</p>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Command Line Examples And Next Steps — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Command Line Examples And Next Steps — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -459,7 +462,7 @@ what their names or IP addresses are).</p>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
5
faq.html
5
faq.html
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>FAQ — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>FAQ — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -433,7 +436,7 @@ tasks – whether for a QA sytem, build system, or anything you can think of
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -1,16 +1,21 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Index — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Index — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -170,11 +175,11 @@ s.parentNode.insertBefore(ga, s);
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
<h1 id="index">Index</h1>
|
<h1 id="index">Index</h1>
|
||||||
|
|
||||||
<div class="genindex-jumpbox">
|
<div class="genindex-jumpbox">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
@ -204,7 +209,7 @@ s.parentNode.insertBefore(ga, s);
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Getting Started — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Getting Started — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -423,7 +426,7 @@ explore, but you already have a fully working infrastructure!</p>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
87
index.html
87
index.html
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Introducing Ansible — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Introducing Ansible — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -191,55 +194,55 @@ Infrastructure should be easy and powerful to command, but it should not look li
|
||||||
<col width="100%" />
|
<col width="100%" />
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead valign="bottom">
|
<thead valign="bottom">
|
||||||
<tr><th class="head">Key Features</th>
|
<tr class="row-odd"><th class="head">Key Features</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody valign="top">
|
<tbody valign="top">
|
||||||
<tr><td>Dead simple setup</td>
|
<tr class="row-even"><td>Dead simple setup</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Can be easily run from a checkout, no installation required</td>
|
<tr class="row-odd"><td>Can be easily run from a checkout, no installation required</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>No agents or software to install on managed machines</td>
|
<tr class="row-even"><td>No agents or software to install on managed machines</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Ultra-secure; uses existing SSHd out of the box</td>
|
<tr class="row-odd"><td>Ultra-secure; uses existing SSHd out of the box</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Connect as any user, not just root, and sudo as needed</td>
|
<tr class="row-even"><td>Connect as any user, not just root, and sudo as needed</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Super fast & parallel by default</td>
|
<tr class="row-odd"><td>Super fast & parallel by default</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Supports Kerberized SSH, jump hosts, forwarding, etc</td>
|
<tr class="row-even"><td>Supports Kerberized SSH, jump hosts, forwarding, etc</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Modules are idempotent, but you can also easily use shell commands</td>
|
<tr class="row-odd"><td>Modules are idempotent, but you can also easily use shell commands</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Modules can be written in ANY language</td>
|
<tr class="row-even"><td>Modules can be written in ANY language</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Orchestrates load balancer rotations and outage windows</td>
|
<tr class="row-odd"><td>Orchestrates load balancer rotations and outage windows</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Awesome API for creating very powerful distributed applications</td>
|
<tr class="row-even"><td>Awesome API for creating very powerful distributed applications</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Pluggable transports (SSH is just the default)</td>
|
<tr class="row-odd"><td>Pluggable transports (SSH is just the default)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Can draw inventory data from external sources like EC2 and Cobbler</td>
|
<tr class="row-even"><td>Can draw inventory data from external sources like EC2 and Cobbler</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>The easiest config management system to use, ever.</td>
|
<tr class="row-odd"><td>The easiest config management system to use, ever.</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="architecture">
|
<div class="section" id="architecture">
|
||||||
<h1>Architecture<a class="headerlink" href="#architecture" title="Permalink to this headline">¶</a></h1>
|
<h1>Architecture<a class="headerlink" href="#architecture" title="Permalink to this headline">¶</a></h1>
|
||||||
<div align="center" class="align-center"><img alt=""Architecture Diagram"" class="align-center" src="http://ansible.github.com/ansible_arch2.jpg" style="width: 800px;" /></div>
|
<img alt=""Architecture Diagram"" class="align-center" src="http://ansible.github.com/ansible_arch2.jpg" style="width: 800px;" />
|
||||||
<table border="1" class="docutils">
|
<table border="1" class="docutils">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="35%" />
|
<col width="35%" />
|
||||||
<col width="65%" />
|
<col width="65%" />
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead valign="bottom">
|
<thead valign="bottom">
|
||||||
<tr><th class="head" colspan="2">Tell Me More</th>
|
<tr class="row-odd"><th class="head" colspan="2">Tell Me More</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody valign="top">
|
<tbody valign="top">
|
||||||
<tr><td>Multi-node control & orchestration</td>
|
<tr class="row-even"><td>Multi-node control & orchestration</td>
|
||||||
<td>Ansible is especially strong at expressing complex multi-node
|
<td>Ansible is especially strong at expressing complex multi-node
|
||||||
deployment processes, executing ordered sequences on
|
deployment processes, executing ordered sequences on
|
||||||
different sets of nodes through <a class="reference internal" href="playbooks.html"><em>Playbooks</em></a>. Performing
|
different sets of nodes through <a class="reference internal" href="playbooks.html"><em>Playbooks</em></a>. Performing
|
||||||
|
@ -247,25 +250,25 @@ steps on all your webservers, then some steps on your database
|
||||||
servers, and then some steps on monitoring servers – all the
|
servers, and then some steps on monitoring servers – all the
|
||||||
while sharing variables between them is trivial.</td>
|
while sharing variables between them is trivial.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Doesn’t choose sides in the
|
<tr class="row-odd"><td>Doesn’t choose sides in the
|
||||||
language war</td>
|
language war</td>
|
||||||
<td>Modules can be written in Bash, Perl, Python, Ruby, whatever.
|
<td>Modules can be written in Bash, Perl, Python, Ruby, whatever.
|
||||||
Playbooks are not a programming language, but a data format.</td>
|
Playbooks are not a programming language, but a data format.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Infrastructure Is Not Code,
|
<tr class="row-even"><td>Infrastructure Is Not Code,
|
||||||
Infrastructure Is Data</td>
|
Infrastructure Is Data</td>
|
||||||
<td>Playbooks are not a programming language, they are designed to be
|
<td>Playbooks are not a programming language, they are designed to be
|
||||||
super-easy to write, and easy to audit by non-developers. You
|
super-easy to write, and easy to audit by non-developers. You
|
||||||
will be able to skim and very quickly understand your entire
|
will be able to skim and very quickly understand your entire
|
||||||
configuration policy.</td>
|
configuration policy.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Three In One</td>
|
<tr class="row-odd"><td>Three In One</td>
|
||||||
<td>Ansible handles multiple command and control
|
<td>Ansible handles multiple command and control
|
||||||
problems in one tool. You don’t need to use a config tool, a
|
problems in one tool. You don’t need to use a config tool, a
|
||||||
deployment tool, and yet another ad-hoc parallel task execution
|
deployment tool, and yet another ad-hoc parallel task execution
|
||||||
tool – Ansible will do all three.</td>
|
tool – Ansible will do all three.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Lower Attack Surface, No Agents</td>
|
<tr class="row-even"><td>Lower Attack Surface, No Agents</td>
|
||||||
<td>Ansible is very secure. Ansible uses SSH as a transport,
|
<td>Ansible is very secure. Ansible uses SSH as a transport,
|
||||||
resulting in a much lower attack surface, and requires no agents
|
resulting in a much lower attack surface, and requires no agents
|
||||||
to be running on managed machines. If a central server
|
to be running on managed machines. If a central server
|
||||||
|
@ -284,29 +287,29 @@ already using – openssh.</td>
|
||||||
<col width="77%" />
|
<col width="77%" />
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead valign="bottom">
|
<thead valign="bottom">
|
||||||
<tr><th class="head" colspan="2">Community</th>
|
<tr class="row-odd"><th class="head" colspan="2">Community</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody valign="top">
|
<tbody valign="top">
|
||||||
<tr><td colspan="2">Your ideas and contributions are welcome. We’re also happy to help
|
<tr class="row-even"><td colspan="2">Your ideas and contributions are welcome. We’re also happy to help
|
||||||
you with questions about Ansible.</td>
|
you with questions about Ansible.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Get the source</td>
|
<tr class="row-odd"><td>Get the source</td>
|
||||||
<td>Visit the <a class="reference external" href="https://github.com/ansible/ansible">project page</a> on Github</td>
|
<td>Visit the <a class="reference external" href="https://github.com/ansible/ansible">project page</a> on Github</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>File a bug</td>
|
<tr class="row-even"><td>File a bug</td>
|
||||||
<td>View the <a class="reference external" href="https://github.com/ansible/ansible/issues">issue tracker</a></td>
|
<td>View the <a class="reference external" href="https://github.com/ansible/ansible/issues">issue tracker</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Spread the word</td>
|
<tr class="row-odd"><td>Spread the word</td>
|
||||||
<td>Watch slides on <a class="reference external" href="http://speakerdeck.com/u/mpdehaan/p/ansible">Speakerdeck</a></td>
|
<td>Watch slides on <a class="reference external" href="http://speakerdeck.com/u/mpdehaan/p/ansible">Speakerdeck</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Join the mailing list</td>
|
<tr class="row-even"><td>Join the mailing list</td>
|
||||||
<td>Visit the <a class="reference external" href="http://groups.google.com/group/ansible-project">Google Group</a></td>
|
<td>Visit the <a class="reference external" href="http://groups.google.com/group/ansible-project">Google Group</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Chat</td>
|
<tr class="row-odd"><td>Chat</td>
|
||||||
<td>Visit the channel on <a class="reference external" href="http://webchat.freenode.net/?channels=ansible">FreeNode</a></td>
|
<td>Visit the channel on <a class="reference external" href="http://webchat.freenode.net/?channels=ansible">FreeNode</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Share & Learn</td>
|
<tr class="row-even"><td>Share & Learn</td>
|
||||||
<td>Share <a class="reference external" href="http://bit.ly/NNwUgY">playbooks, modules, articles, and scripts</a></td>
|
<td>Share <a class="reference external" href="http://bit.ly/NNwUgY">playbooks, modules, articles, and scripts</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -316,33 +319,33 @@ you with questions about Ansible.</td>
|
||||||
<col width="100%" />
|
<col width="100%" />
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead valign="bottom">
|
<thead valign="bottom">
|
||||||
<tr><th class="head">What (Real) People Are Saying</th>
|
<tr class="row-odd"><th class="head">What (Real) People Are Saying</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody valign="top">
|
<tbody valign="top">
|
||||||
<tr><td>“I’ve been trying to grok Chef these last weeks, and really, I don’t get it. I discovered ansible
|
<tr class="row-even"><td>“I’ve been trying to grok Chef these last weeks, and really, I don’t get it. I discovered ansible
|
||||||
yesterday at noon, successfully ran it at 1pm, made my first playbook by 2pm, and pushed two small
|
yesterday at noon, successfully ran it at 1pm, made my first playbook by 2pm, and pushed two small
|
||||||
[contributions to the project] before the office closed... Do that with any other config management
|
[contributions to the project] before the office closed... Do that with any other config management
|
||||||
software!”</td>
|
software!”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>“Ansible is much more firewall-friendly. I have a number of hosts that are only accessible via reverse
|
<tr class="row-odd"><td>“Ansible is much more firewall-friendly. I have a number of hosts that are only accessible via reverse
|
||||||
SSH tunnels, and let me tell you getting puppet or chef to play nice with that is a nightmare.”</td>
|
SSH tunnels, and let me tell you getting puppet or chef to play nice with that is a nightmare.”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>“This software has really changed my life as an network admin, the simplicity ansible comes with is
|
<tr class="row-even"><td>“This software has really changed my life as an network admin, the simplicity ansible comes with is
|
||||||
really childs-play and I really adore its design. No more hassle with SSL keys, DNS based ‘server
|
really childs-play and I really adore its design. No more hassle with SSL keys, DNS based ‘server
|
||||||
entries’ (e.g. puppet and what not). Just plain (secure!) SSH keys and one is good to go.”</td>
|
entries’ (e.g. puppet and what not). Just plain (secure!) SSH keys and one is good to go.”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>“You may get a kick out of the fact that I’m using ansible to install puppetmaster(s). I’m starting to
|
<tr class="row-odd"><td>“You may get a kick out of the fact that I’m using ansible to install puppetmaster(s). I’m starting to
|
||||||
migrate all my stuff to the much more sensical ansible. Nice work.”</td>
|
migrate all my stuff to the much more sensical ansible. Nice work.”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>“Simple as hell”</td>
|
<tr class="row-even"><td>“Simple as hell”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>“I swear, I have gotten more done with Ansible in three days than I did in not getting chef installed
|
<tr class="row-odd"><td>“I swear, I have gotten more done with Ansible in three days than I did in not getting chef installed
|
||||||
in three weeks.”</td>
|
in three weeks.”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>“Puppet was hell... gave up on Chef... found ansible and couldn’t be happier.”</td>
|
<tr class="row-even"><td>“Puppet was hell... gave up on Chef... found ansible and couldn’t be happier.”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>“Really impressed with Ansible. Up and running in ¼ of the time it took to get going with Puppet.”</td>
|
<tr class="row-odd"><td>“Really impressed with Ansible. Up and running in ¼ of the time it took to get going with Puppet.”</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -351,11 +354,11 @@ in three weeks.”</td>
|
||||||
<col width="100%" />
|
<col width="100%" />
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead valign="bottom">
|
<thead valign="bottom">
|
||||||
<tr><th class="head">Presented By...</th>
|
<tr class="row-odd"><th class="head">Presented By...</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody valign="top">
|
<tbody valign="top">
|
||||||
<tr><td>Ansible was created and is run by <a class="reference external" href="http://michaeldehaan.net">Michael DeHaan</a>
|
<tr class="row-even"><td>Ansible was created and is run by <a class="reference external" href="http://michaeldehaan.net">Michael DeHaan</a>
|
||||||
(<a class="reference external" href="http://twitter.com/#!/laserllama">@laserllama</a>), a Raleigh, NC
|
(<a class="reference external" href="http://twitter.com/#!/laserllama">@laserllama</a>), a Raleigh, NC
|
||||||
based software developer and architect, who also created the popular open-source
|
based software developer and architect, who also created the popular open-source
|
||||||
DevOps install server <a class="reference external" href="http://cobbler.github.com/">Cobbler</a>.
|
DevOps install server <a class="reference external" href="http://cobbler.github.com/">Cobbler</a>.
|
||||||
|
@ -419,7 +422,7 @@ Puppet Labs, and is now with <a class="reference external" href="http://rpath.co
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Module Development — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Module Development — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -529,7 +532,7 @@ the program. Stop by the mailing list to inquire about requirements.</p>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
329
modules.html
329
modules.html
File diff suppressed because it is too large
Load diff
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Inventory & Patterns — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Inventory & Patterns — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -407,7 +410,7 @@ Ansible 0.7. Ansible 0.6 includes a <a class="reference external" href="https:/
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Playbooks — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Playbooks — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -569,7 +572,7 @@ can do this:</p>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Advanced Playbooks — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Advanced Playbooks — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -754,7 +757,7 @@ place to set such a default is in a group variable.</p>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -77,7 +77,6 @@ Let's see what's available in the Ansible module library, out of the box:
|
||||||
.. include:: modules/yum.rst
|
.. include:: modules/yum.rst
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Additional Contrib Modules
|
Additional Contrib Modules
|
||||||
``````````````````````````
|
``````````````````````````
|
||||||
|
|
||||||
|
|
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Search — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Search — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -221,7 +224,7 @@ s.parentNode.insertBefore(ga, s);
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,15 +2,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
<title>Who Uses Ansible — Ansible - SSH-Based Configuration Management & Deployment</title>
|
<title>Who Uses Ansible — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: '',
|
URL_ROOT: '',
|
||||||
|
@ -182,45 +185,45 @@ s.parentNode.insertBefore(ga, s);
|
||||||
<col width="47%" />
|
<col width="47%" />
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead valign="bottom">
|
<thead valign="bottom">
|
||||||
<tr><th class="head">Who They Are</th>
|
<tr class="row-odd"><th class="head">Who They Are</th>
|
||||||
<th class="head">What They Do</th>
|
<th class="head">What They Do</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody valign="top">
|
<tbody valign="top">
|
||||||
<tr><td><a class="reference external" href="http://www.altalang.com">Alta Language Services</a></td>
|
<tr class="row-even"><td><a class="reference external" href="http://www.altalang.com">Alta Language Services</a></td>
|
||||||
<td>Language testing, solutions, and translation services</td>
|
<td>Language testing, solutions, and translation services</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://basho.com">Basho</a></td>
|
<tr class="row-odd"><td><a class="reference external" href="http://basho.com">Basho</a></td>
|
||||||
<td>Makers of NoSQL key-value store Riak</td>
|
<td>Makers of NoSQL key-value store Riak</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://cygate.se">Cygate AB</a></td>
|
<tr class="row-even"><td><a class="reference external" href="http://cygate.se">Cygate AB</a></td>
|
||||||
<td>IT solutions from Malmö, Sweden</td>
|
<td>IT solutions from Malmö, Sweden</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://dagit.net">Dag IT Solutions</a></td>
|
<tr class="row-odd"><td><a class="reference external" href="http://dagit.net">Dag IT Solutions</a></td>
|
||||||
<td>“Enterprise Linux and Beyond”</td>
|
<td>“Enterprise Linux and Beyond”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://fedoraproject.org">Fedora Project</a></td>
|
<tr class="row-even"><td><a class="reference external" href="http://fedoraproject.org">Fedora Project</a></td>
|
||||||
<td>Produces the popular Linux distribution</td>
|
<td>Produces the popular Linux distribution</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://fourkitchens.com">Four Kitchens</a></td>
|
<tr class="row-odd"><td><a class="reference external" href="http://fourkitchens.com">Four Kitchens</a></td>
|
||||||
<td>“The Drupal Experts”</td>
|
<td>“The Drupal Experts”</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://lizenzfrei.at/">Lizenzfrei</a></td>
|
<tr class="row-even"><td><a class="reference external" href="http://lizenzfrei.at/">Lizenzfrei</a></td>
|
||||||
<td>Open source consulting and development, Austria</td>
|
<td>Open source consulting and development, Austria</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://www.schmoozecom.com/">Schmooze Com</a></td>
|
<tr class="row-odd"><td><a class="reference external" href="http://www.schmoozecom.com/">Schmooze Com</a></td>
|
||||||
<td>Creators of Industry-Leading PBX Platforms</td>
|
<td>Creators of Industry-Leading PBX Platforms</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://skylin.es">Skyline.es</a></td>
|
<tr class="row-even"><td><a class="reference external" href="http://skylin.es">Skyline.es</a></td>
|
||||||
<td>Realtime Photo Search Engine</td>
|
<td>Realtime Photo Search Engine</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://steelhouse.com">Steelhouse</a></td>
|
<tr class="row-odd"><td><a class="reference external" href="http://steelhouse.com">Steelhouse</a></td>
|
||||||
<td>Behavioral Commerce</td>
|
<td>Behavioral Commerce</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://www.t-f-t.net/">Tomorrow Focus Technologies GmbH</a></td>
|
<tr class="row-even"><td><a class="reference external" href="http://www.t-f-t.net/">Tomorrow Focus Technologies GmbH</a></td>
|
||||||
<td>Running some of the biggest web sites in Europe</td>
|
<td>Running some of the biggest web sites in Europe</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><a class="reference external" href="http://123i.com.br">123i.com.br</a></td>
|
<tr class="row-odd"><td><a class="reference external" href="http://123i.com.br">123i.com.br</a></td>
|
||||||
<td>Find real estate in Brazil</td>
|
<td>Find real estate in Brazil</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -269,7 +272,7 @@ s.parentNode.insertBefore(ga, s);
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2012 Michael DeHaan.<br/>
|
© Copyright 2012 Michael DeHaan.<br/>
|
||||||
Last updated on Aug 28, 2012.<br/>
|
Last updated on Aug 30, 2012.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
Loading…
Reference in a new issue