Professional Documents
Culture Documents
Ansible Best Practices: How To Write, How To Execute, and How To Use in Real Life
Ansible Best Practices: How To Write, How To Execute, and How To Use in Real Life
1
GENERAL TIPS TO USE ANSIBLE
How to use
2
AUTOMATION IS CODE
3
CODE NEEDS TO HAVE STYLE GUIDELINES
Do it with style
4
CODE MUST BE
ORGANIZED
USE GIT!
Do it with style
6
GIT - ONE OR MANY?
7
SO, WHAT DO
WE HAVE?
USE READABLE INVENTORY NAMES
9
TAKE ADVANTAGE OF GROUPING
11
VARIABLES
JUST WORDS,
RIGHT?
DESCRIBE VARIABLES WITH THEIR NAMES
a: 25 apache_max_keepalive: 25
data: ab apache_port: 80
data2: abc tomcat_port: 8080
id: 123
13
PREFIX ROLE VARIABLES
apache_max_keepalive: 25
apache_port: 80
tomcat_port: 8080
14
PLACE VARIABLES APPROPRIATELY
● Find the appropriate place for your variables based on what, where and
when they are set or modified
● Separate logic (tasks) from variables and reduce repetitive patterns
● Do not use every possibility to store variables - settle to a defined scheme
and as few places as possible
15
MAKE YOUR PLAYBOOK
READABLE
USE NATIVE YAML SYNTAX
NO!
17
USE FOLDING ONLY IF REALLY REQUIRED
Better, but no
18
USE KEY:VALUE PAIRS
Yes!
19
DO NOT OMIT THE TASK NAME
Exhibit A
TASK [service]
********************************
ok: [web1]
20
USE TASK NAMES
Exhibit B
21
POWERFUL
BLOCKS
USE BLOCK SYNTAX
- block:
copy:
src: critical.conf
dest: /etc/critical/crit.conf
service:
name: critical
state: restarted
rescue:
command: shutdown -h now
23
EXECUTING THE ANSIBLE COMMANDS
How to execute
24
PROPER
LAUNCHING
TROUBLESHOOT ON EXECUTION
-vvvv
--step
--check
--diff
--start-at-task
26
ANALYZE WHAT YOUR ARE RUNNING
27
QUICKLY LAUNCH WITHOUT INVENTORY
28
THE RIGHT
TOOLS
CHECK IMMEDIATELY WHAT WAS DONE
30
USE NATIVE MODULES WHERE POSSIBLE
{{ ansible_managed | comment }}
32
ROLES AND
GALAXIES
USE ROLES WHERE POSSIBLE
34
USE GALAXY - WITH CARE
35
ACCESS RIGHTS
USE BECOME, DON’T BE A ROOT
37
DEBUG YOUR
PROBLEM
HAVE A LOOK AT THE NODE LEVEL
39
IN WORST CASE, DEBUG ACTUAL CODE
Execute with:
40
USE THE DEBUG MODULE
41
GET TOWER TO ADOPT ANSIBLE IN YOUR DATA CENTER
42
TOWER FUNCTIONS
43
TOWER FUNCTIONS
44
BRANCHES, ANYONE?
TAKE ADVANTAGE OF GIT BRANCHES
46
MANY, MANY ROLES
TOWER & ROLES
48
WHAT ARE WE
TALKING TO?
TOWER FUNCTIONS
QUICK TIP
Try right clicking on the icon and using
“Replace Image” to insert your own icons.
50
DOING GOOD JOBS
USE THE POWER OF JOB TEMPLATES
52
1+1+1 = 1
USE WORKFLOWS FOR COMPLEX TASKS
54
DO ASK PROPER QUESTIONS
TOWER FUNCTIONS
QUICK TIP
Try right clicking on the icon and using
“Replace Image” to insert your own icons.
56
A POWERFUL
TEAM
USE TOWER TEAMS, SEPARATIONS
58
ONE KEY TO RULE
THEM ALL ...
USE TOWER SPECIFIC ACCESS CREDENTIALS
60
NOTIFY YOURSELF!
LET TOWER SEND NOTIFICATIONS TO YOU
62
LOGS, ANYONE?
CONNECT TOWER TO CENTRAL LOGGING
64
ALWAYS KEEP
THE LIGHTS ON
USE HA, DEPLOY ISOLATED NODES
66
CONFIDENTIAL Designator
youtube.com/user/RedHatVideos
Red Hat is the world’s leading provider of enterprise
67