419 lines
18 KiB
HTML
419 lines
18 KiB
HTML
<h1 id="awesome-ansible-awesome">Awesome Ansible <a
|
||
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<!--lint disable double-link-->
|
||
<p><a
|
||
href="https://www.ansible.com/"><img src="ansible_logo.svg" align="right" width="90"></a></p>
|
||
<blockquote>
|
||
<p>A collaborative curated list of awesome Ansible resources, tools,
|
||
Roles, tutorials and other related stuff.</p>
|
||
</blockquote>
|
||
<p><a href="https://www.ansible.com/">Ansible</a> is an open source
|
||
toolkit, written in Python, it is used for configuration management,
|
||
application deployment, continuous delivery, IT infrastructure
|
||
automation and automation in general. <!--lint enable double-link--> ##
|
||
Contents</p>
|
||
<ul>
|
||
<li><a href="#official-resources">Official resources</a></li>
|
||
<li><a href="#community">Community</a></li>
|
||
<li><a href="#tutorials">Tutorials</a></li>
|
||
<li><a href="#books">Books</a></li>
|
||
<li><a href="#videos">Videos</a></li>
|
||
<li><a href="#tools">Tools</a></li>
|
||
<li><a href="#blog-posts-and-opinions">Blog posts and opinions</a></li>
|
||
<li><a href="#playbooks-roles-and-collections">Playbooks, Roles and
|
||
Collections</a></li>
|
||
<li><a href="#editor-and-ide-integrations">Editor and IDE
|
||
Integrations</a></li>
|
||
</ul>
|
||
<h2 id="official-resources">Official resources</h2>
|
||
<blockquote>
|
||
<p>Official resources by and for Ansible.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a
|
||
href="https://docs.ansible.com/ansible/latest/user_guide/index.html">Latest
|
||
Ansible Documentation</a> - Latest user guide and documentation for
|
||
Ansible.</li>
|
||
<li><a href="https://galaxy.ansible.com/">Ansible Galaxy Website</a> -
|
||
Official repository and community site for Ansible Roles.</li>
|
||
<li><a href="https://www.ansible.com/blog">Ansible Blog</a> - Official
|
||
Ansible blog.</li>
|
||
</ul>
|
||
<h2 id="community">Community</h2>
|
||
<blockquote>
|
||
<p>Places where to chat with the Ansible community</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li>About code - <a
|
||
href="https://github.com/ansible">GitHub.com/ansible</a>, <a
|
||
href="https://github.com/ansible-collections">GitHub.com/ansible-collections</a>
|
||
and <a
|
||
href="https://github.com/ansible-community">GitHub.com/ansible-community</a>.</li>
|
||
<li><a href="https://old.reddit.com/r/ansible/">reddit.com/r/ansible</a>
|
||
- The Ansible subreddit.</li>
|
||
<li><a
|
||
href="https://old.reddit.com/r/ansible/comments/jv5shj/ansible_discord_server_come_get_ansible_help_in/">Discord</a>
|
||
- The Ansible discord.</li>
|
||
<li><a href="https://ansible.com/community">ansible.com/community</a> -
|
||
Twitter, mailing lists, meetups and more.</li>
|
||
</ul>
|
||
<p>There are also many Ansible IRC channels on <a
|
||
href="https://libera.chat/">libera.chat</a> that are bridged to <a
|
||
href="https://matrix.org/">Matrix</a>. You can find the full list and
|
||
how to connect in the official documentation <a
|
||
href="https://docs.ansible.com/ansible/latest/community/communication.html">documentation</a>
|
||
but here’s a few:</p>
|
||
<table>
|
||
<colgroup>
|
||
<col style="width: 15%" />
|
||
<col style="width: 19%" />
|
||
<col style="width: 65%" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr class="header">
|
||
<th>IRC</th>
|
||
<th>Matrix</th>
|
||
<th>Topic</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="odd">
|
||
<td>#ansible</td>
|
||
<td>#users:ansible.com</td>
|
||
<td>General Ansible user support and discussion</td>
|
||
</tr>
|
||
<tr class="even">
|
||
<td>#ansible-devel</td>
|
||
<td>#devel:ansible.com</td>
|
||
<td>Developer discussions around code, bugs and features</td>
|
||
</tr>
|
||
<tr class="odd">
|
||
<td>#ansible-community</td>
|
||
<td>#community:ansible.com</td>
|
||
<td>Community working group, wide range of topics including weekly
|
||
meetings</td>
|
||
</tr>
|
||
<tr class="even">
|
||
<td>#ansible-docs</td>
|
||
<td>#docs:ansible.com</td>
|
||
<td>Documentation working group, discuss docs and participate in weekly
|
||
meetings</td>
|
||
</tr>
|
||
<tr class="odd">
|
||
<td>#ansible-devtools</td>
|
||
<td>#devtools:ansible.com</td>
|
||
<td>For devtools such as ansible-lint, molecule and the vscode
|
||
plugin</td>
|
||
</tr>
|
||
<tr class="even">
|
||
<td>#ansible-awx</td>
|
||
<td>#awx:ansible.com</td>
|
||
<td>For the AWX open source project, upstream of Ansible
|
||
Tower/Automation controller</td>
|
||
</tr>
|
||
<tr class="odd">
|
||
<td>#ansible-network</td>
|
||
<td>#network:ansible.com</td>
|
||
<td>For general support and discussion around network automation with
|
||
Ansible</td>
|
||
</tr>
|
||
<tr class="even">
|
||
<td>#ansible-fr</td>
|
||
<td>#francais:ansible.com</td>
|
||
<td>For discussion about Ansible in french</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id="tutorials">Tutorials</h2>
|
||
<blockquote>
|
||
<p>Tutorials and courses to learn Ansible.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.digitalocean.com/community/tutorial_series/how-to-manage-remote-servers-with-ansible">How
|
||
To Manage Remote Servers with Ansible</a> - This Tutorial goes over how
|
||
to use Ansible to manage remote servers.</li>
|
||
<li><a href="https://github.com/leucos/ansible-tuto">Ansible Tutorial by
|
||
leucos</a> - 12 Step Tutorial for Ansible.</li>
|
||
<li><a href="https://hackr.io/tutorials/learn-ansible">Programming
|
||
Community Curated Resources for learning Ansible</a> - A list of
|
||
recommended resources.</li>
|
||
<li><a
|
||
href="https://www.toptechskills.com/ansible-tutorials-courses/">Ansible
|
||
TopTechSkills.com Tutorial Series on Ansible</a> - Tutorials on how to
|
||
Install and use Ansible.</li>
|
||
<li><a
|
||
href="https://ansible.github.io/workshops/exercises/ansible_rhel/">Official
|
||
Ansible labs by Red Hat</a> - Training Course for Ansible Automation
|
||
Platform.</li>
|
||
<li><a
|
||
href="https://www.digitalocean.com/community/tags/ansible?subtype=tutorial">Ansible
|
||
Tutorials on DigitalOcean</a> - Basic tutorials on
|
||
DigitalOcean.com.</li>
|
||
<li><a
|
||
href="http://bluebanquise.com/documentation/releases/1.5.0/training_ansible.html">Ansible
|
||
Tutorial by BlueBanquise team</a> - Basic Ansible tutorial.</li>
|
||
<li><a href="https://spacelift.io/blog/ansible-tutorial">Ansible
|
||
Tutorial for Beginners: Playbook & Examples</a> - Introduction to
|
||
Ansible for beginners.</li>
|
||
<li><a href="https://ansible.puzzle.ch/">Ansible Tutorials for Beginners
|
||
and Advanced</a> - Workshop on multiple topics with different levels of
|
||
difficulty.</li>
|
||
<li><a href="https://github.com/geerlingguy/ansible-for-devops">Ansible
|
||
For DevOps</a> - This repository contains Ansible examples developed to
|
||
support different sections of <a
|
||
href="https://www.ansiblefordevops.com">Ansible for DevOps</a>, a book
|
||
on Ansible by Jeff Geerling.</li>
|
||
</ul>
|
||
<h2 id="books">Books</h2>
|
||
<blockquote>
|
||
<p>Books about Ansible.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a href="https://www.ansiblefordevops.com/">Ansible for DevOps</a> -
|
||
This book helps to start using Ansible to provision and manage anywhere
|
||
from one to thousands of servers. Free sample can be read <a
|
||
href="https://leanpub.com/ansible-for-devops/read_sample">here</a>.</li>
|
||
<li><a href="https://www.ansibleforkubernetes.com/">Ansible for
|
||
Kubernetes</a> - Deploy and maintain real-world massively-scalable and
|
||
high-available applications with Ansible.</li>
|
||
<li><a
|
||
href="https://www.digitalocean.com/community/books/how-to-manage-remote-servers-with-ansible-ebook">How
|
||
To Manage Remote Servers with Ansible eBook</a> - This book is based on
|
||
the “How To Manage Remote Servers with Ansible” tutorial series.</li>
|
||
</ul>
|
||
<h2 id="videos">Videos</h2>
|
||
<blockquote>
|
||
<p>Video tutorials and Ansible training.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.youtube.com/channel/UCPJo5UY1KsP7J1BuHmiWNzQ">Ansible
|
||
YouTube Channel</a> - Official Ansible YouTube channel.</li>
|
||
<li><a href="https://youtu.be/iVWmbStE1MM">Introduction to Ansible</a> -
|
||
Introduction to Ansible by Cloud Academy.</li>
|
||
<li><a
|
||
href="https://www.jeffgeerling.com/blog/2020/ansible-101-jeff-geerling-youtube-streaming-series">Ansible
|
||
101 by Jeff Geerling</a> - Great video series on Ansible, by Jeff
|
||
Geerling.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLMyOob-UkeytIleCbMlFfCzaunOh27hm6">Ansible
|
||
TopTechSkills.com Tutorial Series on YouTube</a> - Video tutorials on
|
||
Ansible.</li>
|
||
<li><a
|
||
href="https://www.redhat.com/en/services/training/do007-ansible-essentials-simplicity-automation-technical-overview">Ansible
|
||
Essentials - Course</a> - Free Video Classroom on Ansible essentials by
|
||
Red Hat.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/watch?v=KuiAiUyuDY4&list=PLnFWJCugpwfzTlIJ-JtuATD2MBBD7_m3u&index=1">Complete
|
||
Ansible Course 2020 by DevOps Journey</a> - Free Video Course on Ansible
|
||
including labs to follow along.</li>
|
||
<li><a
|
||
href="https://youtube.com/playlist?list=PLT98CRl2KxKEUHie1m24-wkyHpEsa4Y70">Getting
|
||
started with Ansible</a> - YouTube tutorial series by LearnLinuxTV.</li>
|
||
</ul>
|
||
<h2 id="tools">Tools</h2>
|
||
<blockquote>
|
||
<p>Tools for and using Ansible.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a href="https://www.ansible.com/products/controller">Automation
|
||
Controller</a> - Automation Controller (formerly Ansible Tower) by Red
|
||
Hat helps you scale IT automation, manage complex deployments and speed
|
||
productivity. Extend the power of Ansible to your entire team.</li>
|
||
<li><a href="https://github.com/ansible/awx">AWX</a> - AWX provides a
|
||
web-based user interface, REST API, and task engine built on top of
|
||
Ansible. It is the upstream project for Automation Controller, a
|
||
commercial derivative of AWX.</li>
|
||
<li><a href="https://github.com/ansible/ansible-lint">Ansible Lint</a> -
|
||
Checks Playbooks for best practices and behavior that could potentially
|
||
be improved.</li>
|
||
<li><a href="https://github.com/thegeeklab/ansible-later">Ansible
|
||
Later</a> - Another best practice scanner. Checks Playbooks and Roles
|
||
for best practices and behavior that could potentially be improved.</li>
|
||
<li><a href="https://github.com/thegeeklab/ansible-doctor">Ansible
|
||
Doctor</a> - Simple annotation like documentation generator for Ansible
|
||
roles based on Jinja2 templates.</li>
|
||
<li><a href="https://github.com/fboender/ansible-cmdb">Ansible cmdb</a>
|
||
- Takes the output of Ansible’s fact gathering and converts it into a
|
||
static HTML page.</li>
|
||
<li><a href="https://github.com/ansible-community/ara">ARA</a> - ARA
|
||
Records Ansible playbooks and makes them easier to understand and
|
||
troubleshoot with a reporting API, UI and CLI.</li>
|
||
<li><a
|
||
href="https://mitogen.networkgenomics.com/ansible_detailed.html">Mitogen
|
||
for Ansible</a> - Speed up Ansible substantially with Mitogen.</li>
|
||
<li><a href="https://molecule.readthedocs.io/en/latest/">Molecule</a> -
|
||
Molecule aids in the development and testing of Ansible roles.</li>
|
||
<li><a
|
||
href="https://www.packer.io/plugins/provisioners/ansible/ansible-local">Packer
|
||
Ansible Provisioner</a> - This Provisioner can be used to automate VM
|
||
Image creation via Packer with Ansible.</li>
|
||
<li><a
|
||
href="https://github.com/KeyboardInterrupt/ansible_xlsx_inventory">Excel
|
||
Ansible Inventory</a> - Turn any Excel Spreadsheet into an Ansible
|
||
Inventory.</li>
|
||
<li><a href="https://github.com/mantl/terraform.py">terraform.py</a> -
|
||
Ansible dynamic inventory script for parsing Terraform state files.</li>
|
||
<li><a
|
||
href="https://github.com/ansible/ansible-navigator">ansible-navigator</a>
|
||
- A text-based user interface (TUI) for Ansible.</li>
|
||
<li><a href="https://hewlettpackard.github.io/squest/">squest</a> -
|
||
Self-service portal for Automation Controller job templates.</li>
|
||
<li><a
|
||
href="https://ansible-community.github.io/ansible-bender/build/html/index.html">ansible-bender</a>
|
||
- Tool which bends containers using Ansible playbooks and turns them
|
||
into container images.</li>
|
||
<li><a
|
||
href="https://github.com/ansible/ansible-runner">ansible-runner</a> - A
|
||
tool and python library that helps when interfacing with Ansible
|
||
directly or as part of another system whether that be through a
|
||
container image interface, as a standalone tool, or as a Python module
|
||
that can be imported.</li>
|
||
<li><a
|
||
href="https://ansible-builder.readthedocs.io/en/latest/">ansible-builder</a>
|
||
- Using Ansible content that depends on non-default dependencies can be
|
||
tricky. Packages must be installed on each node, play nicely with other
|
||
software installed on the host system, and be kept in sync.</li>
|
||
<li><a href="https://github.com/Checkmarx/kics">kics</a> - SAST Tool
|
||
that scans your ansible infrastructure as code playbooks for security
|
||
vulnverables, compliance issues and misconfigurations.</li>
|
||
<li><a href="https://github.com/maschmann/php-ansible">php-ansible
|
||
Library</a> - OOP-Wrapper for Ansible, making Ansible available in
|
||
PHP.</li>
|
||
<li><a href="https://github.com/cidrblock/td4a">TD4A</a> - Design aid
|
||
for building and testing jinja2 templates, combines data in yaml format
|
||
with a jinja2 template and render the output.</li>
|
||
<li><a
|
||
href="https://github.com/haidaraM/ansible-playbook-grapher">Ansible
|
||
Playbook Grapher</a> - Command line tool to create a graph representing
|
||
your Ansible playbook plays, tasks and roles.</li>
|
||
<li><a
|
||
href="https://github.com/xlab-steampunk/ansible-doc-extractor">ansible-doc-extractor</a>
|
||
- A tool that extracts documentation from Ansible modules in the HTML
|
||
form.</li>
|
||
<li><a href="https://github.com/ansible-semaphore/semaphore">Ansible
|
||
Semaphore</a> - Ansible Semaphore is a modern UI for Ansible.</li>
|
||
<li><a href="https://steampunk.si/spotter/">Steampunk Spotter</a> -
|
||
Provides an Assisted Automation Writing tool that analyzes and offers
|
||
recommendations for your Ansible Playbooks.</li>
|
||
<li><a
|
||
href="https://gitlab.com/jlecomte/ansible/ansible-roster">ansible-roster</a>
|
||
- Ansible Roster inventory plugin to generate inventory from a host
|
||
oriented yaml file. Supports ranges, regex hostnames, file inclusions,
|
||
and variable merging.</li>
|
||
<li><a href="https://hewlettpackard.github.io/monkeyble/">Monkeyble</a>
|
||
- A callback plugin that allow to execute end-to-end tests on playbooks
|
||
with a Pythonic testing and CI/CD approach to detect regressions.</li>
|
||
<li><a
|
||
href="https://github.com/telekom-mms/Automated-Ansible-Role-Documentation">aar-doc
|
||
- Automated Ansible Role Documentation</a> - Generate documentation
|
||
automatically from an Ansible role’s metadata.</li>
|
||
<li><a
|
||
href="https://github.com/ansible-community/antsichaut">antsichaut</a> -
|
||
automate the filling of a changelog.yaml used by
|
||
antsibull-changelog.</li>
|
||
</ul>
|
||
<h2 id="blog-posts-and-opinions">Blog posts and opinions</h2>
|
||
<blockquote>
|
||
<p>Best practices and other opinions on Ansible.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a
|
||
href="https://reinteractive.com/posts/167-ansible-real-life-good-practices">Ansible
|
||
(Real Life) Good Practices</a> - Best practice guidelines.</li>
|
||
<li><a
|
||
href="https://hodgkins.io/testing-ansible-roles-windows-test-kitchen">Testing
|
||
Ansible Roles Against Windows with Test-Kitchen</a> - Using Test-Kitchen
|
||
with Ansible to apply playbooks to Windows machines and test them with
|
||
<a href="https://github.com/pester/Pester/">Pester</a>.</li>
|
||
<li><a
|
||
href="https://andidog.de/blog/2017-04-24-ansible-best-practices">Ansible
|
||
Best Practices by AndiDog</a> - Practices covering many aspects of an
|
||
Ansible setup, including hints to support different environments
|
||
(testing, staging, production).</li>
|
||
<li><a
|
||
href="https://steampunk.si/blog/getting-started-with-ansible/">Getting
|
||
started with Ansible</a> - Introduces Ansible, provides installation
|
||
instructions and gives an interactive walkthrough of Ansible’s basic
|
||
functionalities, like running Ansible playbooks and installing Ansible
|
||
content.</li>
|
||
<li><a href="https://steampunk.si/blog/taking-ansible-apart/">Taking
|
||
Ansible apart</a> - Describes and shows how most commonly used Ansible
|
||
components work.</li>
|
||
</ul>
|
||
<h3 id="german">German</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.my-it-brain.de/wordpress/ansible-was-ich-am-ad-hoc-modus-schaetze/">Ansible
|
||
– Was ich am Ad-hoc-Modus schätze</a> - Opinion what the author likes
|
||
about the Ansible Ad-Hoc mode.</li>
|
||
</ul>
|
||
<h3 id="french">French</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://blog.stephane-robert.info/post/introduction-ansible/">Apprendre
|
||
et Maitriser Ansible l’outil de gestion de configuration</a> - A large
|
||
of courses on Ansible in French.</li>
|
||
</ul>
|
||
<h2 id="playbooks-roles-and-collections">Playbooks, Roles and
|
||
Collections</h2>
|
||
<blockquote>
|
||
<p>Awesome production ready Playbooks, Roles and Collections to get you
|
||
up and running.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/geerlingguy/ansible-vagrant-examples">Ansible
|
||
Vagrant Examples by geerlingguy</a> - Ansible examples using Vagrant to
|
||
deploy to local VMs.</li>
|
||
<li><a
|
||
href="https://github.com/olivomarco/my-ansible-linux-setup">Ansible
|
||
playbook for Linux machine setup</a> - Ansible playbook for setting up a
|
||
self-updating, hardened Debian/Ubuntu machine with Docker daemon.</li>
|
||
<li><a href="https://dev-sec.io/">DevSec Hardening Framework</a> - The
|
||
DevSec collection helps you harden your Linux Based OS as well as MySQL,
|
||
NGINX and SSH Server/Services.</li>
|
||
<li><a href="https://github.com/Thomvaill/tads-boilerplate">T.A.D.S.
|
||
boilerplate</a> - Provision and deploy a Docker Swarm cluster to
|
||
development environment and to production. Infrastructure as Code and
|
||
DevOps best practices.</li>
|
||
<li><a href="https://github.com/openstack/openstack-ansible">Openstack
|
||
Ansible</a> - Ansible Playbooks for deploying <a
|
||
href="https://www.openstack.org/">OpenStack</a>.</li>
|
||
<li><a href="https://robertdebock.nl">Robert de Bock</a> - A extensive
|
||
collection of Ansible roles.</li>
|
||
<li><a href="https://docs.debops.org/en/master/">DebOps</a> - A
|
||
extensive collection of Debian based Ansible Playbooks.</li>
|
||
<li><a href="https://github.com/HQarroum/ansible-ssm">ansible-ssm</a> -
|
||
An ansible role to provision physical and virtual hosts with the AWS SSM
|
||
agent.</li>
|
||
<li><a
|
||
href="https://github.com/bluebanquise/bluebanquise">BlueBanquise</a> -
|
||
An ansible coherent roles collection to deploy clusters.</li>
|
||
<li><a
|
||
href="https://github.com/search?q=topic%3Aansible+org%3Aredhat-cop&type=Repositories&s=updated&o=desc">redhat-cop</a>
|
||
- Repositories with ansible topic of the Red Hat Communities of Practice
|
||
project.</li>
|
||
</ul>
|
||
<h2 id="editor-and-ide-integrations">Editor and IDE Integrations</h2>
|
||
<blockquote>
|
||
<p>Awesome Integrations into Text Editors and IDE’s to make development
|
||
with/for Ansible easier.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a href="https://github.com/ansible/ansible-language-server">Ansible
|
||
Language Server</a> - Language Server that adds support for Ansible, to
|
||
compatible Editors.</li>
|
||
<li><a
|
||
href="https://emacs-lsp.github.io/lsp-mode/page/lsp-ansible/">Emacs -
|
||
Ansible client for Language Server Protocol</a> - Emacs support for
|
||
Ansible Language Server Protocol.</li>
|
||
<li><a
|
||
href="https://marketplace.visualstudio.com/items?itemName=redhat.ansible">VS
|
||
Code - official Ansible Extension</a> - Adds language support for
|
||
Ansible to Visual Studio Code and OpenVSX compatible editors by
|
||
leveraging ansible-language-server.</li>
|
||
</ul>
|