SlideShare a Scribd company logo
MongoDB
Management
Pain Relief
Michael Lynn
Sr. Solutions Architect, MongoDB
@mlynn, @phillyMUG
michael.lynn@mongodb.com
OpsManager
OpsManager
Goals
● Ops Manager, Cloud Manager, Atlas
○ What are they?
○ How do they differ?
○ Why do I need them?
● Ansible
○ What is it and how can I use these tools to relieve some
pain in my life?
00:00:01
Show of
Hands
● Who’s Here?
○ DevOps/Ops?
○ Site Reliability?
○ Engineer?
○ DBA?
○ Developer?
Admin
Evolution 3. Puppet, Salt,
Ansible
Leveraging automated solution for
config mgt, some cloud deployment.
1. Manual
Download by hand, build server from
CD, Manually Start and Config Services.
2. Scripting
Write scripts to maintain
configurations, copy those to
servers and run them.
4. Cloud/Hybrid
Automation
Full Cloud-based pro-
visioning and
management
Managing databases manually can be...
● Painful
● Risky
● Complex
● Susceptible to
human error*
● Unnecessary...
* 80% of all downtime due to people/process error (Gartner)
What’s involved in managing MongoDB?
● Provision / Deploy
● Install/Upgrade Binaries
● Configure Database
● Administer Database
Deploying 42
42
Upgrading 35
70
Maintaining 23
100
Play Top 3 Things DBA’s Hate to Do Manually?
So… what does it take (at scale)?
It can take a lot of manual effort to care for a MongoDB
system in production
● Install + Configure
○ 150+ steps
● Scale out, move servers, resize oplog, etc
○ 10 - 180+ steps
● Upgrades, downgrades
○ 100+ stepsUpgrade
Deploy
Maintain
Up to 95%
Reduction in
Operational
Overhead
• Single-click provisioning, scaling &
upgrades, admin tasks!
• Monitoring, with charts, dashboards
and alerts on 100+ metrics
• Backup and restore, with
point-in-time recovery, support for
sharded clusters
MongoDB Ops Manager
The Best Way to Manage MongoDB In Your Data Center
Up to 95% Reduction in Operational Overhead
1
2
Group/RBAC
Logical/Physical
3 Replica Set Members
3 MongoDB Version
1Add Replica Set
1Repset Name
2Version of MongoDB
3Server Pool Hostnames
4Port to Run MongoDB
1Member Roles
2DB Path on Server
3Advanced Options Settings
4CLICK APPLY
Activity
Deploy Server Instance
Upgrade (Done For You)
Configure
Administer Database
Maintain OS - Mongod
Maintain OS - OpsMgr
Activity
Deploy Server Instance
Upgrade MongoDB
Configure MongoDB
Administer Database
Maintain OS - Mongod
Maintain OS - OpsMgr
Activity
Deploy Server Instance
Upgrade MongoDB
Configure MongoDB
Administer Database
Maintain OS - Mongod
Maintain OS - OpsMgr
Ops
Manager
Cloud
Manager Atlas
CONTROL CONVENIENCE
Ops
Manager
Cloud
Manager Atlas
Where are my servers?
AWS
Where are my servers?
Your Data Center
AWS
Azure
GCP
Where are my servers?
Your Data Center
AWS
Azure
GCP
MongoDB Versions?
Community
Only Most Recent
MongoDB Versions?
Community, Enterprise
MongoDB Versions?
Community, Enterprise
CONTROL CONVENIENCE
Replica Set Architecture (w/ Ops Manager)
15
APP SERVER
APPLICATION
DRIVER
OPS MANAGER
OM APP
APP BACKUP
REPLICA SET
PRIMARY
SECONDARY SECONDARY
OM
AGENT
OM
AGENT
OM
AGENT
MongoDB Deployment - Ops Manager
Configure Host
Provision Host
Configure
Agent
1. AWS 2. New Host 3. Ops Manager
Install OM
Agent
Restart Agent
Install
MongoDB
Configure
Monitoring
Configure
Backups
Configure Host
Provision Host
Configure
Agent
Install OM
Agent
Restart Agent
Install
MongoDB
Configure
Monitoring
Configure
Backups
2. New Host 3. Ops Manager1. AWS
MongoDB Deployment - Cloud Manager & Atlas
Configure Host
Provision Host
Configure
Agent
Install OM
Agent
Restart Agent
Provision New
Hosts
Configure
Monitoring
Configure
Backups
AWS New Host Ops Manager
Provision New
Hosts
Configure
Monitoring
Configure
Backups
1. Cloud / Atlas
MongoDB Deployment - Ops Manager
Configure Host
Provision Host
Configure
Agent
1. AWS 2. New Host 3. Ops Manager
Install OW
Agent
Restart Agent
Install
MongoDB
Configure
Monitoring
Configure
Backups
Configure Host
Provision Host
Configure
Agent
Install OW
Agent
Restart Agent
Install
MongoDB
Configure
Monitoring
Configure
Backups
2. New Host 3. Ops Manager1. AWS
Candidate
for
Automation?
MongoDB Management & Ansible
20
WHAT IS ANSIBLE?
Confidential
It’s a simple automation language that
can perfectly describe an IT application
infrastructure in Ansible Playbooks.
It’s an automation engine that runs
Ansible Playbooks.
Ansible Tower is an enterprise
framework for controlling, securing
and managing your Ansible
automation with a UI and RESTful API.
21
SIMPLE POWERFUL AGENTLESS
App deployment
Configuration management
Workflow orchestration
Orchestrate the app lifecycle
Human readable automation
No special coding skills needed
Tasks executed in order
Get productive quickly
Agentless architecture
Uses OpenSSH & WinRM
No agents to exploit or update
More efficient & more secure
Confidential
22
ANSIBLE TOWER
CONTROL
SIMPLE POWERFUL AGENTLESS
KNOWLEDGE DELEGATION
TOWER EMPOWERS TEAMS TO AUTOMATE
AT ANSIBLE’S CORE IS AN OPEN-SOURCE AUTOMATION ENGINE
Scheduled and
centralized jobs
Visibility and
compliance
Role-based access
and self-service
Everyone speaks the
same language
Designed for
multi-tier deployments
Predictable, reliable,
and secure
Confidential
MongoDB Deployment - Ops Manager
Configure Host
Provision Host
Configure
Agent
1. AWS 2. New Host 3. Ops Manager
Install OW
Agent
Restart Agent
Install
MongoDB
Configure
Monitoring
Configure
Backups
Configure Host
Provision Host
Configure
Agent
Install OW
Agent
Restart Agent
Install
MongoDB
Configure
Monitoring
Configure
Backups
2. New Host 3. Ops Manager1. AWS
Use Ansible
Getting Started with Ansible - Lexicon
● Commands
○ ansible, ansible-playbook
● Configuration
○ ansible.cfg
● Modules
○ Hundreds of stand-alone scripts to solve common requirements
● Plays, Playbooks
○ The execution tools to carry out your management tasks
● Tasks
○ The components that connect ansible to the servers
Why Ansible?
● Simple
● Human Readable
● Agentless (uses SSH)
● Popular - Lots of Modules
● Used by Twitter, NASA, Spotify
Getting Started with Ansible
ansible -m ping -i ansible-hosts
opsManager
Here I’m telling ansible to use the ping module
against the opsManager group in my
ansible-hosts file.
Demo of Ansible
1 - Ansible Configuration Files
2 - Ansible Hosts File
3 - Ansible Modules - Ping
4 - Ansible Environment Variables
5 - Ansible Modules - Script
6 - Ansible Playbooks
7 - Deploying O/M in Playbooks
MongoDB Enterprise Server
MongoDB Enterprise Advanced24x7Support
CommercialLicense
Platform
Certifications
Emergency
Patches
On-Demand
Online Training
Customer
Success
Program
MongoDB CompassMongoDB Ops Manager
Monitoring &
Alerting
Query
Optimization
Backup &
Recovery
Automation &
Configuration
Schema
Visualization
Data Exploration
Ad-Hoc Queries
MongoDB Connector for
BI
Visualization
Analysis
Reporting
LDAP & Kerberos Auditing FIPS 140-2Encryption at Rest
REST API
Post-Demo Check-in
● Atlas
○ DBaaS
○ Deploys new MongoDB Clusters from zero to cluster in minutes.
● Ops Manager
○ Automation for all the things you do with MongoDB - except deploying the agent.
● Ansible
○ Automation for configs, deployment and more - especially deploying O/M Agents
I hope you learned some ways you can relieve the pain associated with manually
configuring, deploying and maintaining your database environment.
Questions?
Get These Scripts and Slides:
http://github.com/mrlynn/ansible-demo
BONUS
SLIDES!
● Slides probably
not used in the
presentation.
Demonstration Setup
Command Description
ansible -m ping -i ansible-hosts all Using the ping module and the hosts file
ansible-hosts in the current directory,
ping all hosts
export ANSIBLE_HOSTS=./ansible_hosts Save some time - ansible uses
environment variables extensivel
ansible -m ping all Same as before - but now ansible
leverages the env var to find the ansible
hosts file.
Demonstration
Command Description
ansible -m script test.sh all Here, we take a local script and execute
it across all of our hosts. Ansible takes
that script and delivers it via scp to the
hosts, executes it and captures the
output.
export ANSIBLE_HOSTS=./ansible_hosts Save some time - ansible uses
environment variables extensivel
ansible -m ping all Same as before - but now ansible
leverages the env var to find the ansible
hosts file.
Appendix A - /etc/ansible/hosts sample
[opsManager]
ec2-54-93-114-205.eu-central-1.compute.amazonaws.com ansible_user=ec2-user
[amlReplicaSet]
ec2-54-93-79-122.eu-central-1.compute.amazonaws.com ansible_user=ec2-user
ec2-54-93-176-246.eu-central-1.compute.amazonaws.com ansible_user=ec2-user
ec2-54-93-207-148.eu-central-1.compute.amazonaws.com ansible_user=ec2-user
[amlReplicaSet:vars]
opsmanagerurl=http://ec2-54-93-114-205.eu-central-1.compute.amazonaws.com:8080
opsmanager=ec2-54-93-114-205.eu-central-1.compute.amazonaws.com
Appendix B - ansible.cfg
[defaults]
host_key_checking = False
private_key_file = PATH/TO/AWS/KEY.FILE
[ssh_connection]
control_path = %(directory)s/%%C
Appendix A: Setup
Setup Step 1 - Configure Keys
Michaels-MBP-3:setup mlynn$ cat ansible.cfg
[defaults]
host_key_checking = False
private_key_file = /Users/mlynn/.ssh/michael.lynn.pem
● Create or identify your AWS key.
● Locate the ansible.cfg file in the setup directory
of this repo.
● Modify ansible.cfg to point to your AWS Key.
Setup Step 1 - EC2 Hosts
Start with:
- 1 running m3.xlarge - Ops
Manager
- 3 running t2.small - Replica Set
Members
Take note of the Public DNS - add these
to ansible-hosts as shown here.
[opsManager]
ec2-107-23-40-226.compute-1.amazonaws.com ansible_user=ec2-user
[ReplicaSet]
ec2-54-159-211-126.compute-1.amazonaws.com ansible_user=ec2-user
ec2-54-84-243-170.compute-1.amazonaws.com ansible_user=ec2-user
ec2-52-90-15-175.compute-1.amazonaws.com ansible_user=ec2-user
[ReplicaSet:vars]
opsmanagerurl=http://ec2-107-23-40-226.compute-1.amazonaws.com:8080
opsmanager=ec2-107-23-40-226.compute-1.amazonaws.com
Setup Step 2 - Install OpsManager Package
Start with:
- 1 running m3.xlarge - Ops
Manager
- 3 running t2.small - Replica Set
Members
Take note of the Public DNS - add these
to ansible-hosts as shown here.
[opsManager]
ec2-54-209-123-125.compute-1.amazonaws.com ansible_user=ec2-user
[ReplicaSet]
ec2-107-23-249-134.compute-1.amazonaws.com ansible_user=ec2-user
ec2-174-129-139-203.compute-1.amazonaws.com ansible_user=ec2-user
ec2-52-91-79-187.compute-1.amazonaws.com ansible_user=ec2-user
[ReplicaSet:vars]
opsmanagerurl=http://ec2-54-209-123-125.compute-1.amazonaws.com:8080
opsmanager=ec2-54-209-123-125.compute-1.amazonaws.com

More Related Content

PDF
Monitoring MySQL with DTrace/SystemTap
PPTX
ROS vs ROS2
PDF
Your first dive into systemd!
PDF
Embedded Linux from Scratch to Yocto
PDF
OverlayFS as a Docker Storage Driver
PPTX
Introduction to ROS (Robot Operating System)
PDF
Ros platform overview
PPTX
Introduction to Linux basic
Monitoring MySQL with DTrace/SystemTap
ROS vs ROS2
Your first dive into systemd!
Embedded Linux from Scratch to Yocto
OverlayFS as a Docker Storage Driver
Introduction to ROS (Robot Operating System)
Ros platform overview
Introduction to Linux basic

What's hot (20)

PPTX
slides.08.pptx
PPTX
OpenStackユーザ会資料 - Masakari
PDF
Introduction to AR with Unity3D
PPSX
FD.IO Vector Packet Processing
PDF
Horovod - Distributed TensorFlow Made Easy
PPTX
Visual studio code
PPT
Ubuntu-Overview
PDF
BPF: Tracing and more
PDF
ROS+GAZEBO
PDF
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
PPT
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 5 - System ...
PDF
Présentation ubuntu 12.10 PDF
PDF
Building a Distributed Collaborative Data Pipeline with Apache Spark
PDF
PPT
Introduction to Ubantu
PDF
Embedded Linux BSP Training (Intro)
PDF
Tycs sem 5 asp.net notes unit 1 2 3 4 (2017)
DOC
21146436 estandares-ieee-802
PDF
Intro to Jupyter Notebooks
ODP
eBPF maps 101
slides.08.pptx
OpenStackユーザ会資料 - Masakari
Introduction to AR with Unity3D
FD.IO Vector Packet Processing
Horovod - Distributed TensorFlow Made Easy
Visual studio code
Ubuntu-Overview
BPF: Tracing and more
ROS+GAZEBO
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 5 - System ...
Présentation ubuntu 12.10 PDF
Building a Distributed Collaborative Data Pipeline with Apache Spark
Introduction to Ubantu
Embedded Linux BSP Training (Intro)
Tycs sem 5 asp.net notes unit 1 2 3 4 (2017)
21146436 estandares-ieee-802
Intro to Jupyter Notebooks
eBPF maps 101
Ad

Viewers also liked (20)

PPTX
Microservices: Living Large in Your Castle Made of Sand
PDF
Ansible, MongoDB Ops Manager and AWS v1.1
PDF
ToursJUG mongoDB
PPTX
MongoDB Shell Tips & Tricks
PPTX
Webinar: Come semplificare l'utilizzo del database con MongoDB Atlas
PDF
MongoDB Evenings Boston - An Update on MongoDB's WiredTiger Storage Engine
PDF
Zenika MongoDB Tour - REX Amadeus
PDF
MongoDB Launchpad 2016: What’s New in the 3.4 Server
PPTX
Seminario web: Simplificando el uso de su base de datos con Atlas
PPTX
GridFS: The Perfect Solution for Media Storage
PPTX
Webinar: Simplifying the Database Experience with MongoDB Atlas
PDF
Big Data Paris: Etude de Cas: KPMG, l’innovation continue grâce au Data Lake ...
PDF
MongoDB day Paris 2012
PPTX
Overcoming the Barriers to Blockchain Adoption
PDF
Webinar: Schema Patterns and Your Storage Engine
PDF
MongoDB Case Study in Healthcare
PDF
Big Data Paris - Air France: Stratégie BigData et Use Cases
PDF
Big Data Paris - A Modern Enterprise Architecture
PDF
Intro to OpenShift, MongoDB Atlas & Live Demo
PDF
How To Connect Spark To Your Own Datasource
Microservices: Living Large in Your Castle Made of Sand
Ansible, MongoDB Ops Manager and AWS v1.1
ToursJUG mongoDB
MongoDB Shell Tips & Tricks
Webinar: Come semplificare l'utilizzo del database con MongoDB Atlas
MongoDB Evenings Boston - An Update on MongoDB's WiredTiger Storage Engine
Zenika MongoDB Tour - REX Amadeus
MongoDB Launchpad 2016: What’s New in the 3.4 Server
Seminario web: Simplificando el uso de su base de datos con Atlas
GridFS: The Perfect Solution for Media Storage
Webinar: Simplifying the Database Experience with MongoDB Atlas
Big Data Paris: Etude de Cas: KPMG, l’innovation continue grâce au Data Lake ...
MongoDB day Paris 2012
Overcoming the Barriers to Blockchain Adoption
Webinar: Schema Patterns and Your Storage Engine
MongoDB Case Study in Healthcare
Big Data Paris - Air France: Stratégie BigData et Use Cases
Big Data Paris - A Modern Enterprise Architecture
Intro to OpenShift, MongoDB Atlas & Live Demo
How To Connect Spark To Your Own Datasource
Ad

Similar to MongoDB Management & Ansible (20)

PDF
Ansible Tutorial.pdf
PDF
Ansible - Hands on Training
PPTX
MongoDB Ops Manager and Kubernetes - James Broadhead
PDF
ansible_rhel.pdf
PDF
Ansible_Basics_ppt.pdf
PPTX
Ansible Devops North East - slides
PDF
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
PDF
Ansible
PPTX
UNIT-I Introduction to Ansible.pptx
PDF
Devops with Python by Yaniv Cohen DevopShift
PPTX
DevOps for database
PDF
Ansible & Salt - Vincent Boon
PPTX
Intro to-ansible-sep7-meetup
PDF
Ansible Introduction
PDF
Ansible.pdf
PDF
Scaling on EC2 in a fast-paced environment (LISA'11 - Full Paper)
PDF
DevOps demystified
PDF
Automating with ansible (part a)
PDF
AWS Intro for Knight News Fellows
Ansible Tutorial.pdf
Ansible - Hands on Training
MongoDB Ops Manager and Kubernetes - James Broadhead
ansible_rhel.pdf
Ansible_Basics_ppt.pdf
Ansible Devops North East - slides
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
Ansible
UNIT-I Introduction to Ansible.pptx
Devops with Python by Yaniv Cohen DevopShift
DevOps for database
Ansible & Salt - Vincent Boon
Intro to-ansible-sep7-meetup
Ansible Introduction
Ansible.pdf
Scaling on EC2 in a fast-paced environment (LISA'11 - Full Paper)
DevOps demystified
Automating with ansible (part a)
AWS Intro for Knight News Fellows

More from MongoDB (20)

PDF
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
PDF
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
PDF
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
PDF
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
PDF
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
PDF
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
PDF
MongoDB SoCal 2020: MongoDB Atlas Jump Start
PDF
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
PDF
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
PDF
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
PDF
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
PDF
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
PDF
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
PDF
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
PDF
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
PDF
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
PDF
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
PDF
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
PDF
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
PDF
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...

MongoDB Management & Ansible

  • 1. MongoDB Management Pain Relief Michael Lynn Sr. Solutions Architect, MongoDB @mlynn, @phillyMUG michael.lynn@mongodb.com OpsManager OpsManager
  • 2. Goals ● Ops Manager, Cloud Manager, Atlas ○ What are they? ○ How do they differ? ○ Why do I need them? ● Ansible ○ What is it and how can I use these tools to relieve some pain in my life? 00:00:01
  • 3. Show of Hands ● Who’s Here? ○ DevOps/Ops? ○ Site Reliability? ○ Engineer? ○ DBA? ○ Developer?
  • 4. Admin Evolution 3. Puppet, Salt, Ansible Leveraging automated solution for config mgt, some cloud deployment. 1. Manual Download by hand, build server from CD, Manually Start and Config Services. 2. Scripting Write scripts to maintain configurations, copy those to servers and run them. 4. Cloud/Hybrid Automation Full Cloud-based pro- visioning and management
  • 5. Managing databases manually can be... ● Painful ● Risky ● Complex ● Susceptible to human error* ● Unnecessary... * 80% of all downtime due to people/process error (Gartner)
  • 6. What’s involved in managing MongoDB? ● Provision / Deploy ● Install/Upgrade Binaries ● Configure Database ● Administer Database Deploying 42 42 Upgrading 35 70 Maintaining 23 100 Play Top 3 Things DBA’s Hate to Do Manually?
  • 7. So… what does it take (at scale)? It can take a lot of manual effort to care for a MongoDB system in production ● Install + Configure ○ 150+ steps ● Scale out, move servers, resize oplog, etc ○ 10 - 180+ steps ● Upgrades, downgrades ○ 100+ stepsUpgrade Deploy Maintain Up to 95% Reduction in Operational Overhead
  • 8. • Single-click provisioning, scaling & upgrades, admin tasks! • Monitoring, with charts, dashboards and alerts on 100+ metrics • Backup and restore, with point-in-time recovery, support for sharded clusters MongoDB Ops Manager The Best Way to Manage MongoDB In Your Data Center Up to 95% Reduction in Operational Overhead
  • 11. 1Repset Name 2Version of MongoDB 3Server Pool Hostnames 4Port to Run MongoDB
  • 12. 1Member Roles 2DB Path on Server 3Advanced Options Settings 4CLICK APPLY
  • 13. Activity Deploy Server Instance Upgrade (Done For You) Configure Administer Database Maintain OS - Mongod Maintain OS - OpsMgr Activity Deploy Server Instance Upgrade MongoDB Configure MongoDB Administer Database Maintain OS - Mongod Maintain OS - OpsMgr Activity Deploy Server Instance Upgrade MongoDB Configure MongoDB Administer Database Maintain OS - Mongod Maintain OS - OpsMgr Ops Manager Cloud Manager Atlas CONTROL CONVENIENCE
  • 14. Ops Manager Cloud Manager Atlas Where are my servers? AWS Where are my servers? Your Data Center AWS Azure GCP Where are my servers? Your Data Center AWS Azure GCP MongoDB Versions? Community Only Most Recent MongoDB Versions? Community, Enterprise MongoDB Versions? Community, Enterprise CONTROL CONVENIENCE
  • 15. Replica Set Architecture (w/ Ops Manager) 15 APP SERVER APPLICATION DRIVER OPS MANAGER OM APP APP BACKUP REPLICA SET PRIMARY SECONDARY SECONDARY OM AGENT OM AGENT OM AGENT
  • 16. MongoDB Deployment - Ops Manager Configure Host Provision Host Configure Agent 1. AWS 2. New Host 3. Ops Manager Install OM Agent Restart Agent Install MongoDB Configure Monitoring Configure Backups Configure Host Provision Host Configure Agent Install OM Agent Restart Agent Install MongoDB Configure Monitoring Configure Backups 2. New Host 3. Ops Manager1. AWS
  • 17. MongoDB Deployment - Cloud Manager & Atlas Configure Host Provision Host Configure Agent Install OM Agent Restart Agent Provision New Hosts Configure Monitoring Configure Backups AWS New Host Ops Manager Provision New Hosts Configure Monitoring Configure Backups 1. Cloud / Atlas
  • 18. MongoDB Deployment - Ops Manager Configure Host Provision Host Configure Agent 1. AWS 2. New Host 3. Ops Manager Install OW Agent Restart Agent Install MongoDB Configure Monitoring Configure Backups Configure Host Provision Host Configure Agent Install OW Agent Restart Agent Install MongoDB Configure Monitoring Configure Backups 2. New Host 3. Ops Manager1. AWS Candidate for Automation?
  • 20. 20 WHAT IS ANSIBLE? Confidential It’s a simple automation language that can perfectly describe an IT application infrastructure in Ansible Playbooks. It’s an automation engine that runs Ansible Playbooks. Ansible Tower is an enterprise framework for controlling, securing and managing your Ansible automation with a UI and RESTful API.
  • 21. 21 SIMPLE POWERFUL AGENTLESS App deployment Configuration management Workflow orchestration Orchestrate the app lifecycle Human readable automation No special coding skills needed Tasks executed in order Get productive quickly Agentless architecture Uses OpenSSH & WinRM No agents to exploit or update More efficient & more secure Confidential
  • 22. 22 ANSIBLE TOWER CONTROL SIMPLE POWERFUL AGENTLESS KNOWLEDGE DELEGATION TOWER EMPOWERS TEAMS TO AUTOMATE AT ANSIBLE’S CORE IS AN OPEN-SOURCE AUTOMATION ENGINE Scheduled and centralized jobs Visibility and compliance Role-based access and self-service Everyone speaks the same language Designed for multi-tier deployments Predictable, reliable, and secure Confidential
  • 23. MongoDB Deployment - Ops Manager Configure Host Provision Host Configure Agent 1. AWS 2. New Host 3. Ops Manager Install OW Agent Restart Agent Install MongoDB Configure Monitoring Configure Backups Configure Host Provision Host Configure Agent Install OW Agent Restart Agent Install MongoDB Configure Monitoring Configure Backups 2. New Host 3. Ops Manager1. AWS Use Ansible
  • 24. Getting Started with Ansible - Lexicon ● Commands ○ ansible, ansible-playbook ● Configuration ○ ansible.cfg ● Modules ○ Hundreds of stand-alone scripts to solve common requirements ● Plays, Playbooks ○ The execution tools to carry out your management tasks ● Tasks ○ The components that connect ansible to the servers
  • 25. Why Ansible? ● Simple ● Human Readable ● Agentless (uses SSH) ● Popular - Lots of Modules ● Used by Twitter, NASA, Spotify
  • 26. Getting Started with Ansible ansible -m ping -i ansible-hosts opsManager Here I’m telling ansible to use the ping module against the opsManager group in my ansible-hosts file.
  • 28. 1 - Ansible Configuration Files
  • 29. 2 - Ansible Hosts File
  • 30. 3 - Ansible Modules - Ping
  • 31. 4 - Ansible Environment Variables
  • 32. 5 - Ansible Modules - Script
  • 33. 6 - Ansible Playbooks
  • 34. 7 - Deploying O/M in Playbooks
  • 35. MongoDB Enterprise Server MongoDB Enterprise Advanced24x7Support CommercialLicense Platform Certifications Emergency Patches On-Demand Online Training Customer Success Program MongoDB CompassMongoDB Ops Manager Monitoring & Alerting Query Optimization Backup & Recovery Automation & Configuration Schema Visualization Data Exploration Ad-Hoc Queries MongoDB Connector for BI Visualization Analysis Reporting LDAP & Kerberos Auditing FIPS 140-2Encryption at Rest REST API
  • 36. Post-Demo Check-in ● Atlas ○ DBaaS ○ Deploys new MongoDB Clusters from zero to cluster in minutes. ● Ops Manager ○ Automation for all the things you do with MongoDB - except deploying the agent. ● Ansible ○ Automation for configs, deployment and more - especially deploying O/M Agents I hope you learned some ways you can relieve the pain associated with manually configuring, deploying and maintaining your database environment.
  • 37. Questions? Get These Scripts and Slides: http://github.com/mrlynn/ansible-demo
  • 38. BONUS SLIDES! ● Slides probably not used in the presentation.
  • 39. Demonstration Setup Command Description ansible -m ping -i ansible-hosts all Using the ping module and the hosts file ansible-hosts in the current directory, ping all hosts export ANSIBLE_HOSTS=./ansible_hosts Save some time - ansible uses environment variables extensivel ansible -m ping all Same as before - but now ansible leverages the env var to find the ansible hosts file.
  • 40. Demonstration Command Description ansible -m script test.sh all Here, we take a local script and execute it across all of our hosts. Ansible takes that script and delivers it via scp to the hosts, executes it and captures the output. export ANSIBLE_HOSTS=./ansible_hosts Save some time - ansible uses environment variables extensivel ansible -m ping all Same as before - but now ansible leverages the env var to find the ansible hosts file.
  • 41. Appendix A - /etc/ansible/hosts sample [opsManager] ec2-54-93-114-205.eu-central-1.compute.amazonaws.com ansible_user=ec2-user [amlReplicaSet] ec2-54-93-79-122.eu-central-1.compute.amazonaws.com ansible_user=ec2-user ec2-54-93-176-246.eu-central-1.compute.amazonaws.com ansible_user=ec2-user ec2-54-93-207-148.eu-central-1.compute.amazonaws.com ansible_user=ec2-user [amlReplicaSet:vars] opsmanagerurl=http://ec2-54-93-114-205.eu-central-1.compute.amazonaws.com:8080 opsmanager=ec2-54-93-114-205.eu-central-1.compute.amazonaws.com
  • 42. Appendix B - ansible.cfg [defaults] host_key_checking = False private_key_file = PATH/TO/AWS/KEY.FILE [ssh_connection] control_path = %(directory)s/%%C
  • 44. Setup Step 1 - Configure Keys Michaels-MBP-3:setup mlynn$ cat ansible.cfg [defaults] host_key_checking = False private_key_file = /Users/mlynn/.ssh/michael.lynn.pem ● Create or identify your AWS key. ● Locate the ansible.cfg file in the setup directory of this repo. ● Modify ansible.cfg to point to your AWS Key.
  • 45. Setup Step 1 - EC2 Hosts Start with: - 1 running m3.xlarge - Ops Manager - 3 running t2.small - Replica Set Members Take note of the Public DNS - add these to ansible-hosts as shown here. [opsManager] ec2-107-23-40-226.compute-1.amazonaws.com ansible_user=ec2-user [ReplicaSet] ec2-54-159-211-126.compute-1.amazonaws.com ansible_user=ec2-user ec2-54-84-243-170.compute-1.amazonaws.com ansible_user=ec2-user ec2-52-90-15-175.compute-1.amazonaws.com ansible_user=ec2-user [ReplicaSet:vars] opsmanagerurl=http://ec2-107-23-40-226.compute-1.amazonaws.com:8080 opsmanager=ec2-107-23-40-226.compute-1.amazonaws.com
  • 46. Setup Step 2 - Install OpsManager Package Start with: - 1 running m3.xlarge - Ops Manager - 3 running t2.small - Replica Set Members Take note of the Public DNS - add these to ansible-hosts as shown here. [opsManager] ec2-54-209-123-125.compute-1.amazonaws.com ansible_user=ec2-user [ReplicaSet] ec2-107-23-249-134.compute-1.amazonaws.com ansible_user=ec2-user ec2-174-129-139-203.compute-1.amazonaws.com ansible_user=ec2-user ec2-52-91-79-187.compute-1.amazonaws.com ansible_user=ec2-user [ReplicaSet:vars] opsmanagerurl=http://ec2-54-209-123-125.compute-1.amazonaws.com:8080 opsmanager=ec2-54-209-123-125.compute-1.amazonaws.com