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"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<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/pygments.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" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -289,7 +292,7 @@ languages:
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -79,11 +79,11 @@ div.sphinxsidebar input {
|
|||
font-size: 1em;
|
||||
}
|
||||
|
||||
div.sphinxsidebar input[type="text"] {
|
||||
div.sphinxsidebar #searchbox input[type="text"] {
|
||||
width: 170px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar input[type="submit"] {
|
||||
div.sphinxsidebar #searchbox input[type="submit"] {
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
|
@ -447,6 +447,11 @@ dl.glossary dt {
|
|||
font-style: oblique;
|
||||
}
|
||||
|
||||
abbr, acronym {
|
||||
border-bottom: dotted 1px;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
/* -- code displays --------------------------------------------------------- */
|
||||
|
||||
pre {
|
||||
|
@ -532,4 +537,4 @@ span.eqno {
|
|||
#top-link {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
* doctools.js
|
||||
* ~~~~~~~~~~~
|
||||
*
|
||||
* Sphinx JavaScript utilties for all documentation.
|
||||
* Sphinx JavaScript utilities for all documentation.
|
||||
*
|
||||
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
|
@ -185,9 +185,9 @@ var Documentation = {
|
|||
body.highlightText(this.toLowerCase(), 'highlighted');
|
||||
});
|
||||
}, 10);
|
||||
$('<li class="highlight-link"><a href="javascript:Documentation.' +
|
||||
'hideSearchWords()">' + _('Hide Search Matches') + '</a></li>')
|
||||
.appendTo($('.sidebar .this-page-menu'));
|
||||
$('<p class="highlight-link"><a href="javascript:Documentation.' +
|
||||
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
|
||||
.appendTo($('#searchbox'));
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -213,7 +213,7 @@ var Documentation = {
|
|||
* helper function to hide the search marks again
|
||||
*/
|
||||
hideSearchWords : function() {
|
||||
$('.sidebar .this-page-menu li.highlight-link').fadeOut(300);
|
||||
$('#searchbox .highlight-link').fadeOut(300);
|
||||
$('span.highlighted').removeClass('highlighted');
|
||||
},
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* searchtools.js
|
||||
* ~~~~~~~~~~~~~~
|
||||
* searchtools.js_t
|
||||
* ~~~~~~~~~~~~~~~~
|
||||
*
|
||||
* Sphinx JavaScript utilties for the full-text search.
|
||||
*
|
||||
|
@ -36,10 +36,11 @@ jQuery.makeSearchSummary = function(text, keywords, hlwords) {
|
|||
return rv;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Porter Stemmer
|
||||
*/
|
||||
var PorterStemmer = function() {
|
||||
var Stemmer = function() {
|
||||
|
||||
var step2list = {
|
||||
ational: 'ate',
|
||||
|
@ -300,20 +301,20 @@ var Search = {
|
|||
},
|
||||
|
||||
query : function(query) {
|
||||
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'];
|
||||
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"];
|
||||
|
||||
// stem the searchterms and add them to the correct list
|
||||
var stemmer = new PorterStemmer();
|
||||
// Stem the searchterms and add them to the correct list
|
||||
var stemmer = new Stemmer();
|
||||
var searchterms = [];
|
||||
var excluded = [];
|
||||
var hlterms = [];
|
||||
var tmp = query.split(/\s+/);
|
||||
var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null;
|
||||
var objectterms = [];
|
||||
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+$/) ||
|
||||
tmp[i] == "") {
|
||||
// skip this "word"
|
||||
|
@ -344,9 +345,6 @@ var Search = {
|
|||
var filenames = this._index.filenames;
|
||||
var titles = this._index.titles;
|
||||
var terms = this._index.terms;
|
||||
var objects = this._index.objects;
|
||||
var objtypes = this._index.objtypes;
|
||||
var objnames = this._index.objnames;
|
||||
var fileMap = {};
|
||||
var files = null;
|
||||
// different result priorities
|
||||
|
@ -357,43 +355,19 @@ var Search = {
|
|||
$('#search-progress').empty();
|
||||
|
||||
// lookup as object
|
||||
if (object != null) {
|
||||
for (var prefix in objects) {
|
||||
for (var name in objects[prefix]) {
|
||||
var fullname = (prefix ? prefix + '.' : '') + name;
|
||||
if (fullname.toLowerCase().indexOf(object) > -1) {
|
||||
match = objects[prefix][name];
|
||||
descr = objnames[match[1]][2] + _(', in ') + titles[match[0]];
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < objectterms.length; i++) {
|
||||
var others = [].concat(objectterms.slice(0,i),
|
||||
objectterms.slice(i+1, objectterms.length))
|
||||
var results = this.performObjectSearch(objectterms[i], others);
|
||||
// Assume first word is most likely to be the object,
|
||||
// other words more likely to be in description.
|
||||
// Therefore put matches for earlier words first.
|
||||
// (Results are eventually used in reverse order).
|
||||
objectResults = results[0].concat(objectResults);
|
||||
importantResults = results[1].concat(importantResults);
|
||||
unimportantResults = results[2].concat(unimportantResults);
|
||||
}
|
||||
|
||||
// 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
|
||||
for (var i = 0; i < searchterms.length; i++) {
|
||||
var word = searchterms[i];
|
||||
|
@ -513,9 +487,74 @@ var Search = {
|
|||
}
|
||||
}
|
||||
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]
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
Search.init();
|
||||
});
|
||||
});
|
|
@ -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,
|
||||
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,
|
||||
|
|
5
api.html
5
api.html
|
@ -2,15 +2,18 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<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/pygments.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" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -478,7 +481,7 @@ e.g.
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -2,15 +2,18 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<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/pygments.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" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -348,7 +351,7 @@ different variables to different geographies.</p>
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -2,15 +2,18 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<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>
|
||||
|
||||
<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/bootstrap.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -459,7 +462,7 @@ what their names or IP addresses are).</p>
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
5
faq.html
5
faq.html
|
@ -2,15 +2,18 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>FAQ — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||
|
||||
<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/bootstrap.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -433,7 +436,7 @@ tasks – whether for a QA sytem, build system, or anything you can think of
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -1,16 +1,21 @@
|
|||
|
||||
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Index — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||
|
||||
<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/bootstrap.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -170,11 +175,11 @@ s.parentNode.insertBefore(ga, s);
|
|||
<br/>
|
||||
|
||||
|
||||
<h1 id="index">Index</h1>
|
||||
<h1 id="index">Index</h1>
|
||||
|
||||
<div class="genindex-jumpbox">
|
||||
|
||||
</div>
|
||||
<div class="genindex-jumpbox">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<br/>
|
||||
|
@ -204,7 +209,7 @@ s.parentNode.insertBefore(ga, s);
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -2,15 +2,18 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<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/pygments.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" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -423,7 +426,7 @@ explore, but you already have a fully working infrastructure!</p>
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
87
index.html
87
index.html
|
@ -2,15 +2,18 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<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/pygments.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" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -191,55 +194,55 @@ Infrastructure should be easy and powerful to command, but it should not look li
|
|||
<col width="100%" />
|
||||
</colgroup>
|
||||
<thead valign="bottom">
|
||||
<tr><th class="head">Key Features</th>
|
||||
<tr class="row-odd"><th class="head">Key Features</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr><td>Dead simple setup</td>
|
||||
<tr class="row-even"><td>Dead simple setup</td>
|
||||
</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><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><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><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><td>Super fast & parallel by default</td>
|
||||
<tr class="row-odd"><td>Super fast & parallel by default</td>
|
||||
</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><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><td>Modules can be written in ANY language</td>
|
||||
<tr class="row-even"><td>Modules can be written in ANY language</td>
|
||||
</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><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><td>Pluggable transports (SSH is just the default)</td>
|
||||
<tr class="row-odd"><td>Pluggable transports (SSH is just the default)</td>
|
||||
</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><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>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="section" id="architecture">
|
||||
<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">
|
||||
<colgroup>
|
||||
<col width="35%" />
|
||||
<col width="65%" />
|
||||
</colgroup>
|
||||
<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>
|
||||
</thead>
|
||||
<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
|
||||
deployment processes, executing ordered sequences on
|
||||
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
|
||||
while sharing variables between them is trivial.</td>
|
||||
</tr>
|
||||
<tr><td>Doesn’t choose sides in the
|
||||
<tr class="row-odd"><td>Doesn’t choose sides in the
|
||||
language war</td>
|
||||
<td>Modules can be written in Bash, Perl, Python, Ruby, whatever.
|
||||
Playbooks are not a programming language, but a data format.</td>
|
||||
</tr>
|
||||
<tr><td>Infrastructure Is Not Code,
|
||||
<tr class="row-even"><td>Infrastructure Is Not Code,
|
||||
Infrastructure Is Data</td>
|
||||
<td>Playbooks are not a programming language, they are designed to be
|
||||
super-easy to write, and easy to audit by non-developers. You
|
||||
will be able to skim and very quickly understand your entire
|
||||
configuration policy.</td>
|
||||
</tr>
|
||||
<tr><td>Three In One</td>
|
||||
<tr class="row-odd"><td>Three In One</td>
|
||||
<td>Ansible handles multiple command and control
|
||||
problems in one tool. You don’t need to use a config tool, a
|
||||
deployment tool, and yet another ad-hoc parallel task execution
|
||||
tool – Ansible will do all three.</td>
|
||||
</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,
|
||||
resulting in a much lower attack surface, and requires no agents
|
||||
to be running on managed machines. If a central server
|
||||
|
@ -284,29 +287,29 @@ already using – openssh.</td>
|
|||
<col width="77%" />
|
||||
</colgroup>
|
||||
<thead valign="bottom">
|
||||
<tr><th class="head" colspan="2">Community</th>
|
||||
<tr class="row-odd"><th class="head" colspan="2">Community</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -316,33 +319,33 @@ you with questions about Ansible.</td>
|
|||
<col width="100%" />
|
||||
</colgroup>
|
||||
<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>
|
||||
</thead>
|
||||
<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
|
||||
[contributions to the project] before the office closed... Do that with any other config management
|
||||
software!”</td>
|
||||
</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>
|
||||
</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
|
||||
entries’ (e.g. puppet and what not). Just plain (secure!) SSH keys and one is good to go.”</td>
|
||||
</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>
|
||||
</tr>
|
||||
<tr><td>“Simple as hell”</td>
|
||||
<tr class="row-even"><td>“Simple as hell”</td>
|
||||
</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>
|
||||
</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><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>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -351,11 +354,11 @@ in three weeks.”</td>
|
|||
<col width="100%" />
|
||||
</colgroup>
|
||||
<thead valign="bottom">
|
||||
<tr><th class="head">Presented By...</th>
|
||||
<tr class="row-odd"><th class="head">Presented By...</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<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
|
||||
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>.
|
||||
|
@ -419,7 +422,7 @@ Puppet Labs, and is now with <a class="reference external" href="http://rpath.co
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -2,15 +2,18 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<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/pygments.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" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -529,7 +532,7 @@ the program. Stop by the mailing list to inquire about requirements.</p>
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</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"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<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/pygments.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" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -407,7 +410,7 @@ Ansible 0.7. Ansible 0.6 includes a <a class="reference external" href="https:/
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -2,15 +2,18 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Playbooks — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||
|
||||
<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/bootstrap.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -569,7 +572,7 @@ can do this:</p>
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -2,15 +2,18 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<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/pygments.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" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -754,7 +757,7 @@ place to set such a default is in a group variable.</p>
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -77,7 +77,6 @@ Let's see what's available in the Ansible module library, out of the box:
|
|||
.. include:: modules/yum.rst
|
||||
|
||||
|
||||
|
||||
Additional Contrib Modules
|
||||
``````````````````````````
|
||||
|
||||
|
|
|
@ -2,15 +2,18 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Search — Ansible - SSH-Based Configuration Management & Deployment</title>
|
||||
|
||||
<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/bootstrap.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -221,7 +224,7 @@ s.parentNode.insertBefore(ga, s);
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</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"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<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/pygments.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" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
|
@ -182,45 +185,45 @@ s.parentNode.insertBefore(ga, s);
|
|||
<col width="47%" />
|
||||
</colgroup>
|
||||
<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>
|
||||
</tr>
|
||||
</thead>
|
||||
<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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -269,7 +272,7 @@ s.parentNode.insertBefore(ga, s);
|
|||
</p>
|
||||
<p>
|
||||
© Copyright 2012 Michael DeHaan.<br/>
|
||||
Last updated on Aug 28, 2012.<br/>
|
||||
Last updated on Aug 30, 2012.<br/>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
Loading…
Reference in a new issue