Ansible, MongoDB Ops Manager and AWS v1.1
-
Upload
michael-lynn -
Category
Software
-
view
199 -
download
0
Transcript of Ansible, MongoDB Ops Manager and AWS v1.1
![Page 1: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/1.jpg)
MongoDB Pain Relief
Michael LynnSr. Solutions Architect, MongoDB
@mlynn, @[email protected]
OpsManager
OpsManager
Relieving the pain associated with manually managing your large-scale MongoDB estate.
![Page 2: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/2.jpg)
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?
![Page 3: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/3.jpg)
Show of Hands
• Who’s Here?– DevOps/Ops?– Site Reliability?– Engineer?– DBA?– Developer?
![Page 4: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/4.jpg)
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
![Page 5: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/5.jpg)
Managing databases manually can be...
• Painful• Risky• Complex• Susceptible to
human error*• Unnecessary...
* 80% of all downtime due to people/process error (Gartner)
![Page 6: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/6.jpg)
What’s involved in managing MongoDB?
● Provision / Deploy
● Install/Upgrade Binaries
● Configure Database
● Administer Database
● Maintain OS - Mongod
Deploying 42
42
Upgrading 35
70
Maintaining 23
100
Play Top 3 Things DBA’s Hate to Do Manually?
![Page 7: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/7.jpg)
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
![Page 8: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/8.jpg)
• 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 ManagerThe Best Way to Manage MongoDB In Your Data Center
Up to 95% Reduction in Operational Overhead
![Page 9: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/9.jpg)
• 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 Cloud ManagerThe Best Way to Manage MongoDB In The Cloud
Up to 95% Reduction in Operational Overhead
![Page 10: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/10.jpg)
• Scalable back-end for your application on-demand
• Secure by default• Highly available, even while scaling• Patch maintenance performed for
you• Your own MongoDB cluster in the
cloud
MongoDB AtlasMongoDB’s Database as a Service
![Page 11: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/11.jpg)
OpsManager Demo
http://ec2-54-162-176-239.compute-1.amazonaws.com:8080
This finds and leverages servers
where you’ve already installed the
automation agent
![Page 12: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/12.jpg)
This provisions hosts AND deploys the
automation agents.
![Page 13: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/13.jpg)
OpsManager Demo
![Page 14: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/14.jpg)
1
2
Group/RBAC
Logical/Physical
3 Replica Set Members
3 MongoDB Version
![Page 15: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/15.jpg)
1Add Replica Set
![Page 16: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/16.jpg)
1Repset Name
2Version of MongoDB
3Server Pool Hostnames
4Port to Run MongoDB
![Page 17: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/17.jpg)
1Member Roles
2DB Path on Server
3Advanced Options Settings
4CLICK APPLY
![Page 18: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/18.jpg)
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
![Page 19: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/19.jpg)
MongoDB Enterprise Server
MongoDB Enterprise Advanced2
4 x
7 S
uppo
rtC
omm
ercial License
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
![Page 20: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/20.jpg)
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 Manager 1. AWS
More?
More?
![Page 21: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/21.jpg)
http://ec2-54-162-176-239.compute-1.amazonaws.com:8080
![Page 22: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/22.jpg)
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
![Page 23: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/23.jpg)
This provisions hosts AND deploys the
automation agents.
![Page 24: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/24.jpg)
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 Manager 1. AWS
Candidate for
Automation?
![Page 25: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/25.jpg)
![Page 26: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/26.jpg)
26
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 runsAnsible Playbooks.
Ansible Tower is an enterprise framework for controlling, securing and managing your Ansible automation with a UI and RESTful API.
![Page 27: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/27.jpg)
27
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
![Page 28: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/28.jpg)
28
ANSIBLE TOWER
CONTROL
SIMPLE POWERFUL AGENTLESS
KNOWLEDGE DELEGATION
TOWER EMPOWERS TEAMS TO AUTOMATE
AT ANSIBLE’S CORE IS AN OPEN-SOURCE AUTOMATION ENGINE
Scheduled andcentralized jobs
Visibility and compliance
Role-based access and self-service
Everyone speaks thesame language
Designed for multi-tier deployments
Predictable, reliable,and secure
Confidential
![Page 29: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/29.jpg)
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
![Page 30: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/30.jpg)
Why Ansible?• Simple• Human Readable• Agentless (uses SSH)• Popular - Lots of Modules• Used by Twitter, NASA, Spotify
![Page 31: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/31.jpg)
Demo of Ansible
![Page 32: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/32.jpg)
Follow Along• Git (or download)
– git clone http://github.com/mrlynn/ansible-demo– Thank you Torsten Spindler
• Ansible– brew install ansible
• Pipe Viewer (optional)– Simulates typing
• AWS->EC2– Keys Set Up
![Page 33: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/33.jpg)
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.
![Page 34: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/34.jpg)
Questions?
Get These Scripts and Slides:http://github.com/mrlynn/ansible-demo
![Page 35: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/35.jpg)
1 - Ansible Configuration Files
![Page 36: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/36.jpg)
2 - Ansible Hosts File
![Page 37: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/37.jpg)
3 - Ansible Modules - Ping
![Page 38: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/38.jpg)
4 - Ansible Environment Variables
![Page 39: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/39.jpg)
5 - Ansible Modules - Script
![Page 40: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/40.jpg)
6 - Ansible Playbooks
![Page 41: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/41.jpg)
7 - Deploying O/M in Playbooks
![Page 42: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/42.jpg)
BONUS SLIDES!
• Slides probably not used in the presentation.
![Page 43: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/43.jpg)
Replica Set Architecture (w/ Ops Manager)
43
APP SERVER
APPLICATION
DRIVER
OPS MANAGER
OM APP
APP BACKUP
REPLICA SET
PRIMARY
SECONDARY SECONDARY
OM AGENT
OM AGENT
OM AGENT
![Page 44: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/44.jpg)
Demonstration SetupCommand 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.
![Page 45: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/45.jpg)
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.
![Page 46: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/46.jpg)
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-userec2-54-93-176-246.eu-central-1.compute.amazonaws.com ansible_user=ec2-userec2-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:8080opsmanager=ec2-54-93-114-205.eu-central-1.compute.amazonaws.com
![Page 47: Ansible, MongoDB Ops Manager and AWS v1.1](https://reader030.fdocuments.net/reader030/viewer/2022012404/5873bb011a28abbc788b5523/html5/thumbnails/47.jpg)
Appendix B - ansible.cfg[defaults]host_key_checking = Falseprivate_key_file = PATH/TO/AWS/KEY.FILE
[ssh_connection]control_path = %(directory)s/%%C