SlideShare ist ein Scribd-Unternehmen logo
1 von 21
ANSIBLE USE-
CASES AND
CUSTOM
MODULES.
AGENDA
• 1. ANSIBLE WHAT IS THIS? AND WHY?;
• 2. ANSIBLE USE-CASES;
• 3. BENEFITS OF USING ANSIBLE;
• 4. ANSIBLE ON MY PROJECTS;
• 5. ANSIBLE MODULES;
• 6. DEVELOPING CUSTOM MODULE FOR ANSIBLE;
• 7. Q/A
ANSIBLE WHAT IS THIS
• ANSIBLE IS AN OPEN-SOURCE IT AUTOMATION ENGINE, WHICH CAN REMOVE
DRUDGERY FROM YOUR WORK LIFE, AND WILL ALSO IMPROVE THE SCALABILITY,
CONSISTENCY, AND RELIABILITY OF YOUR IT ENVIRONMENT DRAMATICALLY.
• ANSIBLE IS A CONFIGURATION MANAGEMENT SYSTEM (CMS)
ANSIBLE USE-CASES
•PROVISIONING INFRASTRUCTURE
(IAAS);
•DEPLOY SOFTWARE;
•AUTOMATION ROUTINE TASKS;
•DISASTER RECOVERY
BENEFITS OF USING
ANSIBLE• IDEMPOTENT;
• NO AGENT;
• SIMPLE;
• MODULAR;
• VERSIONING;
• AUTOMATIC STEP BY STEP REPORTING;
• ANSIBLE GALAXY;
• POWERFUL & FLEXIBLE;
• ANSIBLE-VAULT
ANSIBLE ON MY
PROJECTS
• SLEEPER;
• AWS CLOUDWATCH MONITORING;
• TEAMCITY SERVER AND AGENT;
• ANSIBLE EVERYWHERE.
ANSIBLE MODULES
• HTTPS://DOCS.ANSIBLE.COM/ANSIBLE/2.4/LIST_OF_ALL_MODULES.HTML
• CLOUD MODULES;
• CLUSTERING MODULES;
• COMMANDS MODULES;
• CRYPTO MODULES;
• FILES MODULES;
• IDENTITY MODULES;
• INVENTORY MODULES;
• MESSAGING MODULES;
• MONITORING MODULES;
• NETWORK MODULES;
• NET TOOLS MODULES;
• NOTIFICATION MODULES;
• PACKAGING MODULES;
• REMOTE MANAGEMENT MODULES;
• SOURCE CONTROL MODULES;
• STORAGE MODULES;
• DATABASE MODULES;
• SYSTEM MODULES;
• UTILITIES MODULES;
• WEB INFRASTRUCTURE MODULES;
• WINDOWS MODULES
WHEN SHOULD YOU DEVELOP A
CUSTOM MODULE?
• HTTPS://GITHUB.COM/ANSIBLE/ANSIBLE/TREE/DEVEL/LI
B/ANSIBLE/MODULES
• DOES A SIMILAR MODULE ALREADY EXIST?
• DOES A PULL REQUEST ALREADY EXIST?
• SHOULD YOU USE OR DEVELOP AN ACTION PLUGIN
INSTEAD?
• SHOULD YOU USE A ROLE INSTEAD?
• SHOULD YOU WRITE MULTIPLE MODULES INSTEAD OF
PREREQUISITES
• READ DOCUMENTATIONS:
HTTPS://DOCS.ANSIBLE.COM/ANSIBLE/LATEST/DEV_GUIDE/DEVELOPING_MODULES_GENERAL.
HTML#DEVELOPING-MODULES-GENERAL
• CONFIGURING DEVELOPMENT ENVIRONMENT:
• 1.CLONE THE ANSIBLE REPOSITORY: $ GIT CLONE HTTPS://GITHUB.COM/ANSIBLE/ANSIBLE.GIT
• 2.CHANGE DIRECTORY INTO THE REPOSITORY ROOT DIR: $ CD ANSIBLE
• 3.CREATE A VIRTUAL ENVIRONMENT: $ PYTHON3 -M VENV VENV (OR FOR PYTHON
2 $ VIRTUALENV VENV. NOTE, THIS REQUIRES YOU TO INSTALL THE VIRTUALENV
PACKAGE: $ PIP INSTALL VIRTUALENV)
• 4.ACTIVATE THE VIRTUAL ENVIRONMENT: $ . VENV/BIN/ACTIVATE
• 5.INSTALL DEVELOPMENT REQUIREMENTS: $ PIP INSTALL -R REQUIREMENTS.TXT
• 6.RUN THE ENVIRONMENT SETUP SCRIPT FOR EACH NEW DEV SHELL
REQUIREMENTS
•INTERACTION WITH WOTD SERVICE VIA API;
•CREATE AND REMOVE SERVICE DEFINITION;
•UPDATE OR AVOID CHANGING SERVICE
DEFINITION;
•WORK WITH JSON AND YAML FORMAT;
•INTERACTION WITH LINUX DAEMON
DEVELOPING PROCESS
• FOLDER LIBRARY;
• PYTHON FILE WITH CODE;
• IMPORT ALL REQUIRED PYTHON MODULES;
• CREATE METHODS ACCORDING TO REQUIREMENTS AND
MAIN METHOD;
• CREATE PYTHON META-CLASS FOR DOCUMENTATION;
• TEST PROCESS;
• CREATE PULL REQUEST FOR MERGE AND WORK WITH
COMMENTS;
DEBUG
• ENVIRONMENT VARIABLE OR ANSIBLEC.CFG
ANSIBLE_KEEP_REMOTE_FILES=1;
• ANSIBLE DEBUG OPTION –VVVVV;
• PYTHON /HOME/BADGER/.ANSIBLE/TMP/ANSIBLE-TMP-
1461434734.35-235318071810595/PING EXPLODE;
• PYTHON /HOME/BADGER/.ANSIBLE/TMP/ANSIBLE-TMP-
1461434734.35-235318071810595/PING EXECUTE
IMPORT ALL REQUIRED PYTHON MODULES
• IMPORT JSON;
• IMPORT REQUESTS;
• IMPORT OS;
• IMPORT SYS;
• FROM ANSIBLE.MODULE_UTILS.BASIC IMPORT
ANSIBLEMODULE;
• FROM __FUTURE__ IMPORT ABSOLUTE_IMPORT, DIVISION,
PRINT_FUNCTION
CREATE METHODS ACCORDING TO
REQUIREMENTS AND MAIN METHOD
• WOTD_RELOAD_RESTART;
• IS_SERVICE_LIST_UPDATE;
• UPDATE_CONFIG_DEFINITION;
• CREATE_CONFIG_DEFINITION;
• REMOVE_CONFIG_DEFINITION;
• SERVICE_DEFINITION_CHANGED;
• CONVERT_TO_CONFIG_API_JSON;
• MAIN
CREATE PYTHON META-CLASS FOR
DOCUMENTATION
• DOCUMENTATION
• MODULE: CONFIG_API
• SHORT_DESCRIPTION: INTERACTS WITH WOTD SERVICE
• DESCRIPTION: - INTERACTS WITH CONFIG-API SERVICE, SUPPORT JSON AND YAML TEMPLATE
FORMAT FOR SERVICES CONFIGURATION
• VERSION_ADDED: "1.0"
• OPTIONS: STATE:
• DESCRIPTION: - THE ACTION THAT CAN BE MAKE WITH SERVICE'S CONFIGURATION
• TYPE: STR CHOICES: [ PRESENT, ABSENT ]
• DEFAULT: PRESENT
EXAMPLES
TEST PROCESS
• USED :
•SIMPLE PLAYBOOK;
•END TO END TESTING ON MERGE REQUESTS;
• POSSIBLE TO USE :
•SANITY;
•UNIT TESTS;
•INTEGRATION TESTS
BEST PRACTICES AND RECOMMENDATIONS
• MODULES SHOULD RETURN ONLY RELEVANT OUTPUT;
• RETURN CODES FROM MODULES ARE ACTUALLY NOT
SIGNIFICANT;
• MODULES MUST OUTPUT VALID JSON ONLY;
• MODULES MUST BE SELF-CONTAINED IN ONE FILE TO BE
AUTO-TRANSFERRED BY ANSIBLE;
• INCLUDE A MINIMUM OF DEPENDENCIES IF POSSIBLE;
• ‘YES’, ‘NO’, ‘TRUE’, ‘FALSE’ FOR BOOLEAN TYPE
QUESTIONS
•THANK YOU!

Weitere ähnliche Inhalte

Ähnlich wie DataArt Odessa IT talk: Ansible use-cases and custom modules

Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
Databricks
 
Ibm websphere server administration training
Ibm websphere  server administration trainingIbm websphere  server administration training
Ibm websphere server administration training
FuturePoint Technologies
 

Ähnlich wie DataArt Odessa IT talk: Ansible use-cases and custom modules (20)

Static Analysis Tools for C# Demo
Static Analysis Tools for C# DemoStatic Analysis Tools for C# Demo
Static Analysis Tools for C# Demo
 
Deployit Product Demo
Deployit Product DemoDeployit Product Demo
Deployit Product Demo
 
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
Operationalizing Machine Learning—Managing Provenance from Raw Data to Predic...
 
Operating system and its uses
Operating system and its usesOperating system and its uses
Operating system and its uses
 
OpenStack Enabling DevOps
OpenStack Enabling DevOpsOpenStack Enabling DevOps
OpenStack Enabling DevOps
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
 
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by ChefSoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
 
Reigniting the Volusion platform
Reigniting the Volusion platformReigniting the Volusion platform
Reigniting the Volusion platform
 
IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the Cloud
 
Using Nagios with Chef
Using Nagios with ChefUsing Nagios with Chef
Using Nagios with Chef
 
cloud basics.pptx
cloud basics.pptxcloud basics.pptx
cloud basics.pptx
 
Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
 
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 201510 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
 
Intro to.net core 20170111
Intro to.net core   20170111Intro to.net core   20170111
Intro to.net core 20170111
 
Ibm websphere server administration training
Ibm websphere  server administration trainingIbm websphere  server administration training
Ibm websphere server administration training
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Zen Test Labs Mobile Application Testing
Zen Test Labs Mobile Application TestingZen Test Labs Mobile Application Testing
Zen Test Labs Mobile Application Testing
 
Building and Managing Reliable Infrastructure with Chef and Chef Delivery
Building and Managing Reliable Infrastructure with Chef and Chef DeliveryBuilding and Managing Reliable Infrastructure with Chef and Chef Delivery
Building and Managing Reliable Infrastructure with Chef and Chef Delivery
 
SolarWinds Federal User Group 2016 - SolarWinds Network Management Products U...
SolarWinds Federal User Group 2016 - SolarWinds Network Management Products U...SolarWinds Federal User Group 2016 - SolarWinds Network Management Products U...
SolarWinds Federal User Group 2016 - SolarWinds Network Management Products U...
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Malaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptxMalaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptx
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and Prevention
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 

DataArt Odessa IT talk: Ansible use-cases and custom modules

  • 2. AGENDA • 1. ANSIBLE WHAT IS THIS? AND WHY?; • 2. ANSIBLE USE-CASES; • 3. BENEFITS OF USING ANSIBLE; • 4. ANSIBLE ON MY PROJECTS; • 5. ANSIBLE MODULES; • 6. DEVELOPING CUSTOM MODULE FOR ANSIBLE; • 7. Q/A
  • 3. ANSIBLE WHAT IS THIS • ANSIBLE IS AN OPEN-SOURCE IT AUTOMATION ENGINE, WHICH CAN REMOVE DRUDGERY FROM YOUR WORK LIFE, AND WILL ALSO IMPROVE THE SCALABILITY, CONSISTENCY, AND RELIABILITY OF YOUR IT ENVIRONMENT DRAMATICALLY. • ANSIBLE IS A CONFIGURATION MANAGEMENT SYSTEM (CMS)
  • 4. ANSIBLE USE-CASES •PROVISIONING INFRASTRUCTURE (IAAS); •DEPLOY SOFTWARE; •AUTOMATION ROUTINE TASKS; •DISASTER RECOVERY
  • 5. BENEFITS OF USING ANSIBLE• IDEMPOTENT; • NO AGENT; • SIMPLE; • MODULAR; • VERSIONING; • AUTOMATIC STEP BY STEP REPORTING; • ANSIBLE GALAXY; • POWERFUL & FLEXIBLE; • ANSIBLE-VAULT
  • 6. ANSIBLE ON MY PROJECTS • SLEEPER; • AWS CLOUDWATCH MONITORING; • TEAMCITY SERVER AND AGENT; • ANSIBLE EVERYWHERE.
  • 7. ANSIBLE MODULES • HTTPS://DOCS.ANSIBLE.COM/ANSIBLE/2.4/LIST_OF_ALL_MODULES.HTML • CLOUD MODULES; • CLUSTERING MODULES; • COMMANDS MODULES; • CRYPTO MODULES; • FILES MODULES; • IDENTITY MODULES; • INVENTORY MODULES; • MESSAGING MODULES; • MONITORING MODULES; • NETWORK MODULES; • NET TOOLS MODULES;
  • 8. • NOTIFICATION MODULES; • PACKAGING MODULES; • REMOTE MANAGEMENT MODULES; • SOURCE CONTROL MODULES; • STORAGE MODULES; • DATABASE MODULES; • SYSTEM MODULES; • UTILITIES MODULES; • WEB INFRASTRUCTURE MODULES; • WINDOWS MODULES
  • 9. WHEN SHOULD YOU DEVELOP A CUSTOM MODULE? • HTTPS://GITHUB.COM/ANSIBLE/ANSIBLE/TREE/DEVEL/LI B/ANSIBLE/MODULES • DOES A SIMILAR MODULE ALREADY EXIST? • DOES A PULL REQUEST ALREADY EXIST? • SHOULD YOU USE OR DEVELOP AN ACTION PLUGIN INSTEAD? • SHOULD YOU USE A ROLE INSTEAD? • SHOULD YOU WRITE MULTIPLE MODULES INSTEAD OF
  • 10. PREREQUISITES • READ DOCUMENTATIONS: HTTPS://DOCS.ANSIBLE.COM/ANSIBLE/LATEST/DEV_GUIDE/DEVELOPING_MODULES_GENERAL. HTML#DEVELOPING-MODULES-GENERAL • CONFIGURING DEVELOPMENT ENVIRONMENT: • 1.CLONE THE ANSIBLE REPOSITORY: $ GIT CLONE HTTPS://GITHUB.COM/ANSIBLE/ANSIBLE.GIT • 2.CHANGE DIRECTORY INTO THE REPOSITORY ROOT DIR: $ CD ANSIBLE • 3.CREATE A VIRTUAL ENVIRONMENT: $ PYTHON3 -M VENV VENV (OR FOR PYTHON 2 $ VIRTUALENV VENV. NOTE, THIS REQUIRES YOU TO INSTALL THE VIRTUALENV PACKAGE: $ PIP INSTALL VIRTUALENV) • 4.ACTIVATE THE VIRTUAL ENVIRONMENT: $ . VENV/BIN/ACTIVATE • 5.INSTALL DEVELOPMENT REQUIREMENTS: $ PIP INSTALL -R REQUIREMENTS.TXT • 6.RUN THE ENVIRONMENT SETUP SCRIPT FOR EACH NEW DEV SHELL
  • 11. REQUIREMENTS •INTERACTION WITH WOTD SERVICE VIA API; •CREATE AND REMOVE SERVICE DEFINITION; •UPDATE OR AVOID CHANGING SERVICE DEFINITION; •WORK WITH JSON AND YAML FORMAT; •INTERACTION WITH LINUX DAEMON
  • 12. DEVELOPING PROCESS • FOLDER LIBRARY; • PYTHON FILE WITH CODE; • IMPORT ALL REQUIRED PYTHON MODULES; • CREATE METHODS ACCORDING TO REQUIREMENTS AND MAIN METHOD; • CREATE PYTHON META-CLASS FOR DOCUMENTATION; • TEST PROCESS; • CREATE PULL REQUEST FOR MERGE AND WORK WITH COMMENTS;
  • 13. DEBUG • ENVIRONMENT VARIABLE OR ANSIBLEC.CFG ANSIBLE_KEEP_REMOTE_FILES=1; • ANSIBLE DEBUG OPTION –VVVVV; • PYTHON /HOME/BADGER/.ANSIBLE/TMP/ANSIBLE-TMP- 1461434734.35-235318071810595/PING EXPLODE; • PYTHON /HOME/BADGER/.ANSIBLE/TMP/ANSIBLE-TMP- 1461434734.35-235318071810595/PING EXECUTE
  • 14. IMPORT ALL REQUIRED PYTHON MODULES • IMPORT JSON; • IMPORT REQUESTS; • IMPORT OS; • IMPORT SYS; • FROM ANSIBLE.MODULE_UTILS.BASIC IMPORT ANSIBLEMODULE; • FROM __FUTURE__ IMPORT ABSOLUTE_IMPORT, DIVISION, PRINT_FUNCTION
  • 15. CREATE METHODS ACCORDING TO REQUIREMENTS AND MAIN METHOD • WOTD_RELOAD_RESTART; • IS_SERVICE_LIST_UPDATE; • UPDATE_CONFIG_DEFINITION; • CREATE_CONFIG_DEFINITION; • REMOVE_CONFIG_DEFINITION; • SERVICE_DEFINITION_CHANGED; • CONVERT_TO_CONFIG_API_JSON; • MAIN
  • 16. CREATE PYTHON META-CLASS FOR DOCUMENTATION • DOCUMENTATION • MODULE: CONFIG_API • SHORT_DESCRIPTION: INTERACTS WITH WOTD SERVICE • DESCRIPTION: - INTERACTS WITH CONFIG-API SERVICE, SUPPORT JSON AND YAML TEMPLATE FORMAT FOR SERVICES CONFIGURATION • VERSION_ADDED: "1.0" • OPTIONS: STATE: • DESCRIPTION: - THE ACTION THAT CAN BE MAKE WITH SERVICE'S CONFIGURATION • TYPE: STR CHOICES: [ PRESENT, ABSENT ] • DEFAULT: PRESENT
  • 18.
  • 19. TEST PROCESS • USED : •SIMPLE PLAYBOOK; •END TO END TESTING ON MERGE REQUESTS; • POSSIBLE TO USE : •SANITY; •UNIT TESTS; •INTEGRATION TESTS
  • 20. BEST PRACTICES AND RECOMMENDATIONS • MODULES SHOULD RETURN ONLY RELEVANT OUTPUT; • RETURN CODES FROM MODULES ARE ACTUALLY NOT SIGNIFICANT; • MODULES MUST OUTPUT VALID JSON ONLY; • MODULES MUST BE SELF-CONTAINED IN ONE FILE TO BE AUTO-TRANSFERRED BY ANSIBLE; • INCLUDE A MINIMUM OF DEPENDENCIES IF POSSIBLE; • ‘YES’, ‘NO’, ‘TRUE’, ‘FALSE’ FOR BOOLEAN TYPE