Slide 1

Slide 1 text

DEPLOYMENT AUTOMATION AND DEPLOYMENT AUTOMATION AND ORCHESTRATION ORCHESTRATION WITH SALTSTACK WITH SALTSTACK CALVIN HENDRYX-PARKER, CTO CALVIN HENDRYX-PARKER, CTO SIX FEET UP SIX FEET UP

Slide 2

Slide 2 text

DEPLOYMENT AUTOMATION AND DEPLOYMENT AUTOMATION AND ORCHESTRATION WITH SALTSTACK ORCHESTRATION WITH SALTSTACK WHAT IS THE END GOAL? WHAT IS THE END GOAL? » Reliable » Consistent » Repeatable » Scalable » (and preferably as automated as possible)

Slide 3

Slide 3 text

WHAT SETS SALT APART? WHAT SETS SALT APART? » Remote Execution » Event-Driven Orchestration » Agent or Agent-less Operation » Cloud Provisioning » Speed and Scalability

Slide 4

Slide 4 text

SALT TERMINOLOGY SALT TERMINOLOGY » States » Pillars » Reactors » Mines » Events » Beacons » Engines

Slide 5

Slide 5 text

SALT INSTALLATION SALT INSTALLATION » Bootstrap – » Docker – » Package Management careful old packages https://github.com/saltstack/salt-bootstrap https://hub.docker.com/r/saltstack/salt

Slide 6

Slide 6 text

SALT ARCHITECTURE SALT ARCHITECTURE

Slide 7

Slide 7 text

FOLLOW ALONG FOLLOW ALONG http://github.com/calvinhp/salt-orchestation-demo

Slide 8

Slide 8 text

SALT CLI AND REMOTE EXECUTION SALT CLI AND REMOTE EXECUTION Demo using the CLI

Slide 9

Slide 9 text

INTRO TO SALT STATES INTRO TO SALT STATES

Slide 10

Slide 10 text

DEPENDENCY MANAGEMENT IN SALT DEPENDENCY MANAGEMENT IN SALT » Requisite System » Great for Con guration Management

Slide 11

Slide 11 text

JINJA TEMPLATES WITH SALT JINJA TEMPLATES WITH SALT

Slide 12

Slide 12 text

MINION SPECIFIC DATA WITH PILLAR MINION SPECIFIC DATA WITH PILLAR

Slide 13

Slide 13 text

INTRO TO ORCHESTRATION AND INTRO TO ORCHESTRATION AND RUNNERS RUNNERS

Slide 14

Slide 14 text

JOB MANAGEMENT JOB MANAGEMENT » External and Master Job Caches

Slide 15

Slide 15 text

ACTIVE JOBS ACTIVE JOBS vagrant@salt:~$ sudo salt-run jobs.active 20200505044728157234: ---------- Arguments: Function: state.highstate Returned: Running: |_ ---------- app1: 13619 StartTime: 2020, May 05 04:47:28.157234 Target: salt-call Target-type:

Slide 16

Slide 16 text

SCHEDULED TASKS IN SALT SCHEDULED TASKS IN SALT schedule: dev-db-pack: function: state.orchestrate args: - orch.dev-db-pack cron: '0 2 * * 0' dev-db-backup: function: state.orchestrate args: - orch.dev-db-backup cron: '0 23 * * *' prod-db-pack: function: state.orchestrate args: - orch.prod-db-pack cron: '0 2 * * 0' prod-db-backup:

Slide 17

Slide 17 text

ALTERNATE SCHEDULE FORMAT ALTERNATE SCHEDULE FORMAT schedule: dev-backups: function: state.orchestrate args: - orch.dev-db-backup when: - Monday 4:00am - Tuesday 4:00am - Wednesday 4:00am - Thursday 4:00am - Thursday 9:00pm - Friday 4:00am - Saturday 4:00am - Sunday 4:00am

Slide 18

Slide 18 text

RETURNERS RETURNERS » Elasticsearch » RDBMS

Slide 19

Slide 19 text

USING DEPENDENCIES WITH USING DEPENDENCIES WITH ORCHESTRATION ORCHESTRATION » True master control » Orchestrate from above » Cross minion dependencies

Slide 20

Slide 20 text

REQUISITES IN ORCHESTRATIONS REQUISITES IN ORCHESTRATIONS Environment passed in as pillar: test.check_pillar: - present: - envname {% set envname = salt['pillar.get']('envname', 'MISSING ENVNAME') %} Current {{ envname }} Supervisor Status: salt.function: - name: supervisord.status - tgt: {{ envname }}plone0* - require: - test: Environment passed in as pillar

Slide 21

Slide 21 text

USE REACTORS TO ORCHESTRATE USE REACTORS TO ORCHESTRATE » Salt new minions as they are created » Heal broken services by attempting common xes

Slide 22

Slide 22 text

SALT PROXY MINIONS SALT PROXY MINIONS

Slide 23

Slide 23 text

SALT SECURITY SALT SECURITY » Access Control » Hardening Salt » Vault for Secrets

Slide 24

Slide 24 text

ADDING A REST API TO SALT ADDING A REST API TO SALT » Multiple Authentication Back-ends » Supports ACLs » Full async websockets for event noti cations Demo of https://github.com/saltstack/pepper

Slide 25

Slide 25 text

SALT CLOUD SALT CLOUD SUPPORT FOR POPULAR PUBLIC & PRIVATE CLOUDS SUPPORT FOR POPULAR PUBLIC & PRIVATE CLOUDS » AWS Examples

Slide 26

Slide 26 text

ALTERNATE SALT TRANSPORTS ALTERNATE SALT TRANSPORTS » ZeroMQ (Default) » Raw TCP Sockets » RAET Or Execute via SSH

Slide 27

Slide 27 text

SALT MASTER DEPLOYMENT OPTIONS SALT MASTER DEPLOYMENT OPTIONS » Single Master » Master Fail-over » Hierarchal Syndics

Slide 28

Slide 28 text

SALTSTACK ENTERPRISE SALTSTACK ENTERPRISE

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

QUESTIONS? QUESTIONS? GET THIS PROJECT: GET THIS PROJECT: [email protected] [email protected] @calvinhp http://github.com/calvinhp/salt-orchestation-demo