Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers...
Transcript of Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers...
![Page 1: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/1.jpg)
@garethgreenawayOpen Source Summit North America 2018Open Source Summit North America 2018 @garethgreenaway
SaltStack for DevelopersExtending SaltStack
1
![Page 2: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/2.jpg)
@garethgreenawayOpen Source Summit North America 2018Open Source Summit North America 2018 @garethgreenaway
Gareth
![Page 3: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/3.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
![Page 4: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/4.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
![Page 5: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/5.jpg)
@garethgreenawayOpen Source Summit North America 2018Open Source Summit North America 2018 @garethgreenaway5
![Page 6: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/6.jpg)
@garethgreenawayOpen Source Summit North America 2018Open Source Summit North America 2018 @garethgreenaway
![Page 7: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/7.jpg)
@garethgreenawayOpen Source Summit North America 2018Open Source Summit North America 2018 @garethgreenaway
![Page 8: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/8.jpg)
@garethgreenawayOpen Source Summit North America 2018Open Source Summit North America 2018 @garethgreenaway
![Page 9: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/9.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenawayOpen Source Summit North America 2018
SaltStack for DevelopersExtending SaltStack
![Page 10: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/10.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
What is SaltStack?
![Page 11: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/11.jpg)
@garethgreenawayOpen Source Summit North America 2018
SaltStack == Salt
11
Salt == SaltStack
![Page 12: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/12.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Configuration Management
Remote Execution
Event Driven Orchestration
DevOps Platform
What is SaltStack?
![Page 13: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/13.jpg)
@garethgreenawayOpen Source Summit North America 2018
![Page 14: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/14.jpg)
@garethgreenawayOpen Source Summit North America 2018
![Page 15: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/15.jpg)
@garethgreenawayOpen Source Summit North America 2018
![Page 16: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/16.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
SaltStack Loader
![Page 17: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/17.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Standard Modules
![Page 18: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/18.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Virtual Modules
![Page 19: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/19.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Lazy Loader
![Page 20: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/20.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Types of Modules
![Page 21: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/21.jpg)
@garethgreenawayOpen Source Summit North America 2018
Remote Execution ModulesThe heavy lifters of SaltStack.
Typically calling out to other programs and services.
Used by other modules.
Examples:
● file● cmd● docker● pkg (aptpkg, yumpkg, freebsdpkg, mac_pkgutil)
21
![Page 22: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/22.jpg)
@garethgreenawayOpen Source Summit North America 2018
State ModulesUsed for configuration management.
Examples:
● pkg● x509● schedule● file● apache_module
22
![Page 23: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/23.jpg)
@garethgreenawayOpen Source Summit North America 2018 23
![Page 24: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/24.jpg)
@garethgreenawayOpen Source Summit North America 2018
Grain ModulesUsed to report information about machines running SaltStack.
Populated or updated on server start or minion software start.
Updated periodically.
Similar to facts from Facter, used by Puppet & Ansible or Chef Ohai attributes.
Examples: Salt version, Python version, operating system.
24
![Page 25: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/25.jpg)
@garethgreenawayOpen Source Summit North America 2018
Runner ModulesExecution modules run on minions, runners run on the master calling out to the minions.
Examples:
● Jobs runner● State runner● Event runner
25
![Page 26: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/26.jpg)
@garethgreenawayOpen Source Summit North America 2018
Returners ModulesGives a minion a way to return data to something besides the master.
Examples:
● MySQL● Slack● SMS● SMTP
26
![Page 27: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/27.jpg)
@garethgreenawayOpen Source Summit North America 2018
PillarCentralized system to define configuration.
Examples:
● consul● etcd● postgres● mysql● mongodb● s3● gpg
27
![Page 28: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/28.jpg)
@garethgreenawayOpen Source Summit North America 2018
Outputter modulesDetermine the output from the command line interfaces
Examples:
● json● yaml● progress
28
![Page 29: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/29.jpg)
@garethgreenawayOpen Source Summit North America 2018
Cloud modulesUsed to manage virtual machines on various cloud providers.
Examples:
● Amazon EC2● Google Cloud● Azure● Digital Ocean● VMWare● Openstack
29
![Page 30: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/30.jpg)
@garethgreenawayOpen Source Summit North America 2018
BeaconsAllows various software, both Salt components and external applications to report data to Salt.
Examples:
● diskusage● inotify● wtmp/btmp● ps
30
![Page 31: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/31.jpg)
@garethgreenawayOpen Source Summit North America 2018
EnginesAllow Salt to provide internal information and services to long-running external processes.
Examples:
● Docker● Slack● Logstash● SQS Events
31
![Page 32: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/32.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Agenda
1. Tools & Best Practices2. Briefly look at the Salt loader3. Custom Salt Modules4. Updating Replacing an existing beacon module5. Custom Salt engines
![Page 33: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/33.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Tools
![Page 34: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/34.jpg)
@garethgreenawayOpen Source Summit North America 2018
Editor Bits
● https://github.com/saltstack/salt-vim● https://github.com/saltstack/sublime-text● Emacs salt-mode● https://github.com/w0rp/ale● https://github.com/Valloric/YouCompleteMe
34
![Page 35: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/35.jpg)
@garethgreenawayOpen Source Summit North America 2018
Testing
● https://github.com/cachedout/barnacle● https://github.com/saltstack/kitchen-salt● PyENV
35
![Page 36: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/36.jpg)
@garethgreenawayOpen Source Summit North America 2018
Documentation● https://docs.saltstack.com/en/latest/● Salt sys.doc, state_doc, runner_doc, etc.
36
![Page 37: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/37.jpg)
@garethgreenawayOpen Source Summit North America 2018 37
![Page 38: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/38.jpg)
@garethgreenawayOpen Source Summit North America 2018
Debugging● PyCharm Professional Edition● PyDev (http://www.pydev.org)● pdb● pudb● ptvsd: Visual Studio Remote Debugging Server
38
![Page 39: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/39.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
SaltConf 17Megan Wilhite
https://bit.ly/2KXujUB
![Page 40: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/40.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
salt-extendhttps://bit.ly/2Gd0E6z
![Page 41: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/41.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
SaltStack Development
Basics
![Page 42: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/42.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
The __virtual__ function
● Not required, but definitely best practice.
● Executed when Salt minion starts up.● Optionally provides identification for the name of the module.● Commonly used to identify whether the module should be loaded
and made available.● __virtual_aliases__ allows you to provide multiple namesNEW
![Page 43: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/43.jpg)
@garethgreenawayOpen Source Summit North America 2018
Commonly Used Dunder Variables
43
![Page 44: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/44.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
__opts__
![Page 45: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/45.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
__salt__
![Page 46: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/46.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
__grains__
![Page 47: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/47.jpg)
@garethgreenawayOpen Source Summit North America 2018
__pillar__
47
![Page 48: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/48.jpg)
@garethgreenawayOpen Source Summit North America 2018
__utils__
48
![Page 49: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/49.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Docstrings
''' My function in my Salt module
CLI Example:
.. code-block:: bash
salt '*' really_cool.function argument keyword=value
'''
![Page 50: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/50.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Private Functions
● Name starts with an underscore.● Only used internally by the module.● Will not show up in results from sys.doc and friends
![Page 51: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/51.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Public Functions
● Called directly by Salt commands● Will show up in the results returned from sys.doc and friends, such as
list_functions.
![Page 52: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/52.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Logging
import logging
log = logging.getLogger(__name__)
log.info('Useful for users')
log.warn('Something went wrong but I am still good to go.')
log.error('Something has gone wrong and should be fixed.')
log.debug('Useful information for developers.')
![Page 53: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/53.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Python2/Python3 Compatibility
from __future__ import absolute_import, unicode_literals, print_function
![Page 54: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/54.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Custom Modules
![Page 55: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/55.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
Why?
![Page 56: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/56.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
beacons: 27clouds: 34engines: 17grains: 21log handlers: 5output: 17modules: 481proxy: 18renderers: 20returners: 39sdb: 14states: 317utils: 129
SaltConf 17Module Counts
![Page 57: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/57.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
beacons: 28cloud: 34engines: 18grains: 25log handlers: 5output: 17modules: 497proxy: 19renderers: 21returners: 40sdb: 14states: 338utils: 135
Current Module Counts
![Page 58: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/58.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
So why?
![Page 59: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/59.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
All Code Exampleshttps://bit.ly/2rLheVH
Let’s Look At Some Code!
![Page 60: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/60.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenaway
![Page 61: Extending SaltStack SaltStack for Developers › wp-content › ...SaltStack for Developers Extending SaltStack. @garethgreenaway ... used by Puppet & Ansible or Chef Ohai attributes.](https://reader034.fdocuments.us/reader034/viewer/2022052423/5f0e09707e708231d43d4e21/html5/thumbnails/61.jpg)
@garethgreenawayOpen Source Summit North America 2018 @garethgreenawayOpen Source Summit North America 2018
Thanks for coming!
Questions?