SlideShare a Scribd company logo
Network Automation:
Ansible 101
APRICOT - Feb 28th, 2017
Bronwyn Lewis and Matt Peterson
Our assumptions
➔ New to the world of “DevOps”
➔ No prior Ansible knowledge
➔ Want to stop hand-crafting
your network configs
Introduction
➔ Tutorial dependencies
➔ Introductions
➔ DevOps intro
Agenda
Tutorial
➔ Ansible intro & concepts
➔ Configuration templating
➔ Homework, next steps
Tutorial repository
https://git.io/vZKZH
Required knowledge
1. basic familiarity with the command line
2. use of a command line text editor (e.g. vim or nano)
http://git.io/vZKZH
Required
➔ Linux, MacOS, or Win10
➔ Python 2.7
➔ Ansible 2.2
Technical requirements
Recommendations
➔ Ubuntu 16.04
➔ VM (VirtualBox, Vagrant)
http://git.io/vZKZH
Introductions
whois Bronwyn Lewis
● Technical advisor at SFMIX
● Networking, systems, and automation
@ SFMIX and PCH for 3+ years
● Background in operations, project
management, & international affairs
whois Matt Peterson
● Principal at Two P (network / systems)
● President at SFMIX (San Francisco IXP)
● Previously: Cumulus Networks, Tumblr,
Square, Burning Man
Got {Net}DevOps?
DevOps
● Unite people and {organization appropriate} methods
○ Typically Developers & Operations staff
○ Shared service(s) availability responsibility
● Not a specific software program, license, certification
{Net}DevOps
Leverage common DevOps tenants within Networking
● Configuration management (today’s focus)
● Infrastructure as code
● Reactive to infrastructure as a whole
● Consistency (sometimes viewed as transparency)
This is not a DevOps talk
● DevOps Kung Fu
https://github.com/chef/devops-kungfu
● Phoenix Project / IT Revolution
http://itrevolution.com/
● DevOps Cafe podcast
http://devopscafe.org/
Automation Tools
while true ; do cat ~/.history ; done
Automation tools aren’t new
● Expect (1990)
● CFEngine (1993)
● Puppet (2005)
● NETCONF (2006)
● OpenConfig (2014)
● Lots of homegrown tools
And much, much more...
Today’s frameworks
What’s great about frameworks?
Technical Benefits
- procedural
- repeatable
- idempotent
Other Benefits
- open source (majority)
- enterprise support
- community
Why Ansible?
1. agent’less
2. low risk (run it locally)
3. small investment
4. easy to learn (abstraction!)
Abstraction
instructions:
what: update pkgs
where: myServer1, myServer5
when: 23.00UTC
reference:
pkgs: openssh, apache
How Ansible works
localhost
*default assumption, unless module
exists for target host OS
*
remote host(s)
→
SSH
←
(But we’re running it locally.)
localhost
Terminology
WARNING!
Visually boring, but
important information
packed slides ahead.
(Sorry.)
JSON
● Data exchange format
● More powerful than CSV
○ Data can imply it’s a list,
integer, string, etc.
{
"roles": {
"noc": {
"name": "Alice"
},
"dev": {
"name": "Ian"
}
}
}
YAML
● Human readable data
format, subset of JSON
● Always starts with ---
● Filename extension .yml
or .yaml
# EXAMPLE DATA FILE 1
---
roles:
- { who: dev, name: Ian }
- { who: noc, name: Alice }
# EXAMPLE DATA FILE 2
---
roles:
noc:
name: Alice
dev:
name: Ian
Jinja2
● Python template engine
● Enumerates files using
variable data
● Supports conditionals:
○ If statements
○ Loops
○ Piping
● Ansible standard file
extension .j2
# EXAMPLE TEMPLATE
Employees:
{% for k,v in roles %}
Role: {% k %}
Name: {% v %}
{% endfor %}
Hosts
● Group host addresses,
assign names, specify
variables, etc.
● Default is /etc/ansible/hosts
○ can override this easily
# EXAMPLE HOSTS LIST
[dev]
test-switch1 mgmt_ip=10.1.10.1
100.0.0.42
dev-router4
[prod]
mywebsite.com
172.16.0.56 name=dev42.prod
172.16.0.17
Playbooks
● Specifies execution
● Single or multiple OK
● You can write all tasks and
vars in a playbook...
○ … but not recommended
---
- name: Generate configs
hosts: localhost
gather_facts: no
roles:
- router
- switch
Facts
● Gathers information on the
remote host(s)
○ Hardware, OS, uptime,
MAC address & more
● You can use this info like a
regular variable data point
# EXAMPLE SYSTEM FACTS
"ansible_architecture":
"x86_64",
"ansible_bios_date":
"09/20/2012",
"ansible_bios_version":
"6.00",
Inventory
● Allows you to pass in
specific data with
different playbooks
● Can specify hosts,
group vars, and
host-specific vars
● Can be accessed
across multiple roles
[EXAMPLE STRUCTURE]
myplaybook.yml
roles
inventory
hosts
group_vars
sites.yml
Roles
● A built-in structure for
compartmentalizing
● Roles make it easy /
clean to manage
execution
● Makes scaling and
collaboration easier!
[EXAMPLE STRUCTURE]
ansible
myplaybook.yml
roles
router
tasks
templates
switch
tasks
Hands-on
General outline
● Inventory + Roles
● Variables
● Templates
○ IP Address Filter
● Tasks
● Hosts
● Playbook
Hello world
Hello world
(before)
Network Automation: Ansible 101
Hello world
(after)
Structure
├── myplaybook.yml
├── inventory
│ ├── group_vars
│ │ └── sites.yml
│ └── hosts
└── roles
├── router
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ │ └── template1.j2
│ └── vars
│ └── main.yml
└── switch
● Lots of ways to structure
○ Use roles?
○ Use an inventory?
○ Global, group, host variables?
● Depends on your situation
● No “right” way
Reference files
Copy these from workspace/reference/
config1: we’ll use this as our 1st template
config2: we’ll use this as our 2nd template
config1-dhcp: advanced example template
config2-dhcp: advanced example template
ipaddress: RFC 5737 IP addresses (for demo/docs)
variables: we’ll use these as our demo vars
Inventory + roles
● Inventory is an easy way to share variables
across roles, as well as managing hosts &
host-specific variables
● Roles make managing multiple templates and
sets of tasks easier by compartmentalizing them
Variables
● Variables can be formatted individually, as a flat
list, as a dictionary, or as an array
● Specific formatting can vary
⚠ Formatting impacts how you pass variables into
templates and tasks — be careful here! ⚠
Templates
● You can template anything!
● Lots of neat advanced features, including:
○ If, when, and for statements/loops
○ Variable manipulation via filters
Tasks
● Procedural list of actions to execute, which
combines templates and vars
● Conditions can be included, and are based on
vars (i.e., only do X when Y is present)
IP address filter
● The ipaddr() filter is included in Ansible 1.9<
● Provides an interface to the netaddr Python
package; does a lot of neat things including:
○ subnet manipulation
○ address validation
○ address conversion
○ MAC address formatting
Hosts
● What host we should be running the tasks on -
normally this would be a remote host, but for us:
localhost
Playbook
● Brings it together:
○ Hosts
○ Roles
■ Tasks
■ Templates
○ Variables
● And executes!
---
- name: Create files
hosts: localhost
connection: local
gather_facts: no
roles:
- router
Running a play
ansible-playbook -i inventory myplaybook.yml
[command] [flag] [dir] [playbook]
You’ve got configs!
And if it didn’t work...
Common issues:
● Missing packages?
● Missing variables?
● Formatting weirdness?
● Typos?
Ansible can provide clues.
Ansible Debugging 101
Common Ansible debugging issues include:
One or more undefined variables: 'dict object'
has no attribute 'hostname'
One or more undefined variables: 'hostname' is
undefined
ERROR: Syntax Error while loading YAML script
So… what’s next?
● Think how you can apply this to your work
● Start small; doesn’t need to be overly complex
● Check out more resources...
Some resources
● http://jedelman.com/
● https://blog.tylerc.me/
● https://pynet.twb-tech.com/
● http://packetpushers.net/
● http://keepingitclassless.net/
● http://ansible-tips-and-tricks.rtfd.org/
books blogs/sites
… and more!
Join us for 102 after the break...
● Advanced templating techniques
● Inventory + advanced variable & hosts management
● Dynamic inventory
● And more!
Thanks!
1. Questions? Comments?
2. Come talk to us!
3. Email or tweet us
me@bronwynlewis.com @bronwyn
matt@peterson.org @dorkmatt
Ad

More Related Content

What's hot (20)

Ansible
AnsibleAnsible
Ansible
Raul Leite
 
Ansible - Hands on Training
Ansible - Hands on TrainingAnsible - Hands on Training
Ansible - Hands on Training
Mehmet Ali Aydın
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansible
Khizer Naeem
 
Ansible
AnsibleAnsible
Ansible
Kamil Lelonek
 
Ansible
AnsibleAnsible
Ansible
Knoldus Inc.
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
Knoldus Inc.
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Martin Danielsson
 
Network automation (NetDevOps) with Ansible
Network automation (NetDevOps) with AnsibleNetwork automation (NetDevOps) with Ansible
Network automation (NetDevOps) with Ansible
Bangladesh Network Operators Group
 
Kubernetes
KubernetesKubernetes
Kubernetes
erialc_w
 
Automating with Ansible
Automating with AnsibleAutomating with Ansible
Automating with Ansible
Ricardo Schmidt
 
(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview
Bob Killen
 
Ansible
AnsibleAnsible
Ansible
Vishal Yadav
 
Ansible
AnsibleAnsible
Ansible
Rahul Bajaj
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
Frederik Mogensen
 
OpenStack Nova Scheduler
OpenStack Nova Scheduler OpenStack Nova Scheduler
OpenStack Nova Scheduler
Peeyush Gupta
 
Zabbix
ZabbixZabbix
Zabbix
pundir5
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
Bruno Cornec
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into Containerd
Kohei Tokunaga
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
ShapeBlue
 
OpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image LifecycleOpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image Lifecycle
Mihai Criveti
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansible
Khizer Naeem
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
Knoldus Inc.
 
Kubernetes
KubernetesKubernetes
Kubernetes
erialc_w
 
(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview
Bob Killen
 
OpenStack Nova Scheduler
OpenStack Nova Scheduler OpenStack Nova Scheduler
OpenStack Nova Scheduler
Peeyush Gupta
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
Bruno Cornec
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into Containerd
Kohei Tokunaga
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
ShapeBlue
 
OpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image LifecycleOpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image Lifecycle
Mihai Criveti
 

Viewers also liked (20)

Ansible Automation to Rule Them All
Ansible Automation to Rule Them AllAnsible Automation to Rule Them All
Ansible Automation to Rule Them All
Tim Fairweather
 
The Death of Transit and Beyond
The Death of Transit and BeyondThe Death of Transit and Beyond
The Death of Transit and Beyond
APNIC
 
Technical and Business Considerations for DNSSEC Deployment
Technical and Business Considerations for DNSSEC DeploymentTechnical and Business Considerations for DNSSEC Deployment
Technical and Business Considerations for DNSSEC Deployment
APNIC
 
Ansible loves Python, Python Philadelphia meetup
Ansible loves Python, Python Philadelphia meetupAnsible loves Python, Python Philadelphia meetup
Ansible loves Python, Python Philadelphia meetup
Greg DeKoenigsberg
 
Evolving the network for 5G
Evolving the network for 5GEvolving the network for 5G
Evolving the network for 5G
APNIC
 
MPLS-based Metro Ethernet Networks
MPLS-based Metro Ethernet NetworksMPLS-based Metro Ethernet Networks
MPLS-based Metro Ethernet Networks
APNIC
 
Build cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack AnsibleBuild cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack Ansible
Jirayut Nimsaeng
 
OpenStack Ansible for private cloud at Kaidee
OpenStack Ansible for private cloud at KaideeOpenStack Ansible for private cloud at Kaidee
OpenStack Ansible for private cloud at Kaidee
Jirayut Nimsaeng
 
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
Serguei Gitinsky
 
Ansible & Vagrant
Ansible & VagrantAnsible & Vagrant
Ansible & Vagrant
Mukul Malhotra
 
Openstack ansible
Openstack ansibleOpenstack ansible
Openstack ansible
George Paraskevas
 
New Relic Plugin for Cassandra | Blue Medora
New Relic Plugin for Cassandra | Blue MedoraNew Relic Plugin for Cassandra | Blue Medora
New Relic Plugin for Cassandra | Blue Medora
Blue Medora
 
VMware vROps Management Pack for Amazon DynamoDB
VMware vROps Management Pack for Amazon DynamoDBVMware vROps Management Pack for Amazon DynamoDB
VMware vROps Management Pack for Amazon DynamoDB
Blue Medora
 
Ironic 140622212631-phpapp02
Ironic 140622212631-phpapp02Ironic 140622212631-phpapp02
Ironic 140622212631-phpapp02
Narender Kumar
 
VMware vROps Management Pack for Hadoop
VMware vROps Management Pack for HadoopVMware vROps Management Pack for Hadoop
VMware vROps Management Pack for Hadoop
Blue Medora
 
Flexible, simple deployments with OpenStack-Ansible
Flexible, simple deployments with OpenStack-AnsibleFlexible, simple deployments with OpenStack-Ansible
Flexible, simple deployments with OpenStack-Ansible
Major Hayden
 
Managing sensitive data with Ansible vault
Managing sensitive data with Ansible vaultManaging sensitive data with Ansible vault
Managing sensitive data with Ansible vault
Pascal Stauffer
 
Analyzing SAP Performance with VMware vRealize Operations (vROps)
Analyzing SAP Performance with VMware vRealize Operations (vROps)Analyzing SAP Performance with VMware vRealize Operations (vROps)
Analyzing SAP Performance with VMware vRealize Operations (vROps)
Blue Medora
 
Business Automation and Service Delivery Platform for Openstack based cloud p...
Business Automation and Service Delivery Platform for Openstack based cloud p...Business Automation and Service Delivery Platform for Openstack based cloud p...
Business Automation and Service Delivery Platform for Openstack based cloud p...
RackNap
 
VMware vROps Management Pack for Amazon RDS
VMware vROps Management Pack for Amazon RDSVMware vROps Management Pack for Amazon RDS
VMware vROps Management Pack for Amazon RDS
Blue Medora
 
Ansible Automation to Rule Them All
Ansible Automation to Rule Them AllAnsible Automation to Rule Them All
Ansible Automation to Rule Them All
Tim Fairweather
 
The Death of Transit and Beyond
The Death of Transit and BeyondThe Death of Transit and Beyond
The Death of Transit and Beyond
APNIC
 
Technical and Business Considerations for DNSSEC Deployment
Technical and Business Considerations for DNSSEC DeploymentTechnical and Business Considerations for DNSSEC Deployment
Technical and Business Considerations for DNSSEC Deployment
APNIC
 
Ansible loves Python, Python Philadelphia meetup
Ansible loves Python, Python Philadelphia meetupAnsible loves Python, Python Philadelphia meetup
Ansible loves Python, Python Philadelphia meetup
Greg DeKoenigsberg
 
Evolving the network for 5G
Evolving the network for 5GEvolving the network for 5G
Evolving the network for 5G
APNIC
 
MPLS-based Metro Ethernet Networks
MPLS-based Metro Ethernet NetworksMPLS-based Metro Ethernet Networks
MPLS-based Metro Ethernet Networks
APNIC
 
Build cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack AnsibleBuild cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack Ansible
Jirayut Nimsaeng
 
OpenStack Ansible for private cloud at Kaidee
OpenStack Ansible for private cloud at KaideeOpenStack Ansible for private cloud at Kaidee
OpenStack Ansible for private cloud at Kaidee
Jirayut Nimsaeng
 
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
Serguei Gitinsky
 
New Relic Plugin for Cassandra | Blue Medora
New Relic Plugin for Cassandra | Blue MedoraNew Relic Plugin for Cassandra | Blue Medora
New Relic Plugin for Cassandra | Blue Medora
Blue Medora
 
VMware vROps Management Pack for Amazon DynamoDB
VMware vROps Management Pack for Amazon DynamoDBVMware vROps Management Pack for Amazon DynamoDB
VMware vROps Management Pack for Amazon DynamoDB
Blue Medora
 
Ironic 140622212631-phpapp02
Ironic 140622212631-phpapp02Ironic 140622212631-phpapp02
Ironic 140622212631-phpapp02
Narender Kumar
 
VMware vROps Management Pack for Hadoop
VMware vROps Management Pack for HadoopVMware vROps Management Pack for Hadoop
VMware vROps Management Pack for Hadoop
Blue Medora
 
Flexible, simple deployments with OpenStack-Ansible
Flexible, simple deployments with OpenStack-AnsibleFlexible, simple deployments with OpenStack-Ansible
Flexible, simple deployments with OpenStack-Ansible
Major Hayden
 
Managing sensitive data with Ansible vault
Managing sensitive data with Ansible vaultManaging sensitive data with Ansible vault
Managing sensitive data with Ansible vault
Pascal Stauffer
 
Analyzing SAP Performance with VMware vRealize Operations (vROps)
Analyzing SAP Performance with VMware vRealize Operations (vROps)Analyzing SAP Performance with VMware vRealize Operations (vROps)
Analyzing SAP Performance with VMware vRealize Operations (vROps)
Blue Medora
 
Business Automation and Service Delivery Platform for Openstack based cloud p...
Business Automation and Service Delivery Platform for Openstack based cloud p...Business Automation and Service Delivery Platform for Openstack based cloud p...
Business Automation and Service Delivery Platform for Openstack based cloud p...
RackNap
 
VMware vROps Management Pack for Amazon RDS
VMware vROps Management Pack for Amazon RDSVMware vROps Management Pack for Amazon RDS
VMware vROps Management Pack for Amazon RDS
Blue Medora
 
Ad

Similar to Network Automation: Ansible 101 (20)

Improving Operations Efficiency with Puppet
Improving Operations Efficiency with PuppetImproving Operations Efficiency with Puppet
Improving Operations Efficiency with Puppet
Nicolas Brousse
 
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup SunnyvaleIntroduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Jérôme Petazzoni
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Nicolas Brousse
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Jérôme Petazzoni
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
Yaniv cohen
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12x
rkr10
 
Ansible and CloudStack
Ansible and CloudStackAnsible and CloudStack
Ansible and CloudStack
ShapeBlue
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
Stanislav Pogrebnyak
 
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Docker, Inc.
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
dotCloud
 
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Jérôme Petazzoni
 
Ansiblefest 2018 Network automation journey at roblox
Ansiblefest 2018 Network automation journey at robloxAnsiblefest 2018 Network automation journey at roblox
Ansiblefest 2018 Network automation journey at roblox
Damien Garros
 
High performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbHigh performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodb
Wei Shan Ang
 
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Docker Intro at the Google Developer Group and Google Cloud Platform Meet UpDocker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Jérôme Petazzoni
 
linux_internals_2.3 (1).pdf àaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
linux_internals_2.3 (1).pdf àaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalinux_internals_2.3 (1).pdf àaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
linux_internals_2.3 (1).pdf àaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
YasaswiniChintamalla1
 
Why kernelspace sucks?
Why kernelspace sucks?Why kernelspace sucks?
Why kernelspace sucks?
OpenFest team
 
Ansible at work
Ansible at workAnsible at work
Ansible at work
Bas Meijer
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
Jérôme Petazzoni
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
TheFamily
 
Improving Operations Efficiency with Puppet
Improving Operations Efficiency with PuppetImproving Operations Efficiency with Puppet
Improving Operations Efficiency with Puppet
Nicolas Brousse
 
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup SunnyvaleIntroduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Jérôme Petazzoni
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Nicolas Brousse
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Jérôme Petazzoni
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
Yaniv cohen
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12x
rkr10
 
Ansible and CloudStack
Ansible and CloudStackAnsible and CloudStack
Ansible and CloudStack
ShapeBlue
 
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Docker, Inc.
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
dotCloud
 
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Jérôme Petazzoni
 
Ansiblefest 2018 Network automation journey at roblox
Ansiblefest 2018 Network automation journey at robloxAnsiblefest 2018 Network automation journey at roblox
Ansiblefest 2018 Network automation journey at roblox
Damien Garros
 
High performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbHigh performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodb
Wei Shan Ang
 
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Docker Intro at the Google Developer Group and Google Cloud Platform Meet UpDocker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Jérôme Petazzoni
 
linux_internals_2.3 (1).pdf àaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
linux_internals_2.3 (1).pdf àaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalinux_internals_2.3 (1).pdf àaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
linux_internals_2.3 (1).pdf àaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
YasaswiniChintamalla1
 
Why kernelspace sucks?
Why kernelspace sucks?Why kernelspace sucks?
Why kernelspace sucks?
OpenFest team
 
Ansible at work
Ansible at workAnsible at work
Ansible at work
Bas Meijer
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
Jérôme Petazzoni
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
TheFamily
 
Ad

More from APNIC (20)

Global Networking Trends, presented at TWNIC 43rd IP Open Policy Meeting
Global Networking Trends, presented at TWNIC 43rd IP Open Policy MeetingGlobal Networking Trends, presented at TWNIC 43rd IP Open Policy Meeting
Global Networking Trends, presented at TWNIC 43rd IP Open Policy Meeting
APNIC
 
APNIC Policy Update and Participation, presented at TWNIC 43rd IP Open Policy...
APNIC Policy Update and Participation, presented at TWNIC 43rd IP Open Policy...APNIC Policy Update and Participation, presented at TWNIC 43rd IP Open Policy...
APNIC Policy Update and Participation, presented at TWNIC 43rd IP Open Policy...
APNIC
 
Internet Coordination Policy 2 (ICP-2) Review
Internet Coordination Policy 2 (ICP-2) ReviewInternet Coordination Policy 2 (ICP-2) Review
Internet Coordination Policy 2 (ICP-2) Review
APNIC
 
What's going on with IPv6? presented by Geoff Huston
What's going on with IPv6? presented by Geoff HustonWhat's going on with IPv6? presented by Geoff Huston
What's going on with IPv6? presented by Geoff Huston
APNIC
 
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC
 
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC
 
DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)
APNIC
 
DASH - Your Network Health Dashboard, presented by Anna Mulingbayan
DASH - Your Network Health Dashboard, presented by Anna MulingbayanDASH - Your Network Health Dashboard, presented by Anna Mulingbayan
DASH - Your Network Health Dashboard, presented by Anna Mulingbayan
APNIC
 
APNIC and Policy Development Process (PDP)
APNIC and Policy Development Process (PDP)APNIC and Policy Development Process (PDP)
APNIC and Policy Development Process (PDP)
APNIC
 
BGP Best Practices, presented by Imtiaz Sajid
BGP Best Practices, presented by Imtiaz SajidBGP Best Practices, presented by Imtiaz Sajid
BGP Best Practices, presented by Imtiaz Sajid
APNIC
 
IETF 122: draft-ietf-regext-rdap-rir-search-16
IETF 122: draft-ietf-regext-rdap-rir-search-16IETF 122: draft-ietf-regext-rdap-rir-search-16
IETF 122: draft-ietf-regext-rdap-rir-search-16
APNIC
 
Measuring ECN, presented by Geoff Huston at IETF 122
Measuring ECN, presented by Geoff Huston at IETF 122Measuring ECN, presented by Geoff Huston at IETF 122
Measuring ECN, presented by Geoff Huston at IETF 122
APNIC
 
Some DNSSEC Measurements, presented at ICANN 82
Some DNSSEC Measurements, presented at ICANN 82Some DNSSEC Measurements, presented at ICANN 82
Some DNSSEC Measurements, presented at ICANN 82
APNIC
 
Authoritative Nameserver Selection and Recursive Resolvers
Authoritative Nameserver Selection and Recursive ResolversAuthoritative Nameserver Selection and Recursive Resolvers
Authoritative Nameserver Selection and Recursive Resolvers
APNIC
 
APNIC Report, presented at APAN 59 in Yokohama, Japan
APNIC Report, presented at APAN 59 in Yokohama, JapanAPNIC Report, presented at APAN 59 in Yokohama, Japan
APNIC Report, presented at APAN 59 in Yokohama, Japan
APNIC
 
Introduction on how unique identifier systems are managed and coordinated - R...
Introduction on how unique identifier systems are managed and coordinated - R...Introduction on how unique identifier systems are managed and coordinated - R...
Introduction on how unique identifier systems are managed and coordinated - R...
APNIC
 
IPv6 - Global and Malaysia's Perspectives
IPv6 - Global and Malaysia's PerspectivesIPv6 - Global and Malaysia's Perspectives
IPv6 - Global and Malaysia's Perspectives
APNIC
 
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
APNIC
 
APNIC Update, presented by Joyce Chen at APTLD 87
APNIC Update, presented by Joyce Chen at APTLD 87APNIC Update, presented by Joyce Chen at APTLD 87
APNIC Update, presented by Joyce Chen at APTLD 87
APNIC
 
Authoritative Nameserver Selection and Recursive Resolvers
Authoritative Nameserver Selection and Recursive ResolversAuthoritative Nameserver Selection and Recursive Resolvers
Authoritative Nameserver Selection and Recursive Resolvers
APNIC
 
Global Networking Trends, presented at TWNIC 43rd IP Open Policy Meeting
Global Networking Trends, presented at TWNIC 43rd IP Open Policy MeetingGlobal Networking Trends, presented at TWNIC 43rd IP Open Policy Meeting
Global Networking Trends, presented at TWNIC 43rd IP Open Policy Meeting
APNIC
 
APNIC Policy Update and Participation, presented at TWNIC 43rd IP Open Policy...
APNIC Policy Update and Participation, presented at TWNIC 43rd IP Open Policy...APNIC Policy Update and Participation, presented at TWNIC 43rd IP Open Policy...
APNIC Policy Update and Participation, presented at TWNIC 43rd IP Open Policy...
APNIC
 
Internet Coordination Policy 2 (ICP-2) Review
Internet Coordination Policy 2 (ICP-2) ReviewInternet Coordination Policy 2 (ICP-2) Review
Internet Coordination Policy 2 (ICP-2) Review
APNIC
 
What's going on with IPv6? presented by Geoff Huston
What's going on with IPv6? presented by Geoff HustonWhat's going on with IPv6? presented by Geoff Huston
What's going on with IPv6? presented by Geoff Huston
APNIC
 
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC
 
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC
 
DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)
APNIC
 
DASH - Your Network Health Dashboard, presented by Anna Mulingbayan
DASH - Your Network Health Dashboard, presented by Anna MulingbayanDASH - Your Network Health Dashboard, presented by Anna Mulingbayan
DASH - Your Network Health Dashboard, presented by Anna Mulingbayan
APNIC
 
APNIC and Policy Development Process (PDP)
APNIC and Policy Development Process (PDP)APNIC and Policy Development Process (PDP)
APNIC and Policy Development Process (PDP)
APNIC
 
BGP Best Practices, presented by Imtiaz Sajid
BGP Best Practices, presented by Imtiaz SajidBGP Best Practices, presented by Imtiaz Sajid
BGP Best Practices, presented by Imtiaz Sajid
APNIC
 
IETF 122: draft-ietf-regext-rdap-rir-search-16
IETF 122: draft-ietf-regext-rdap-rir-search-16IETF 122: draft-ietf-regext-rdap-rir-search-16
IETF 122: draft-ietf-regext-rdap-rir-search-16
APNIC
 
Measuring ECN, presented by Geoff Huston at IETF 122
Measuring ECN, presented by Geoff Huston at IETF 122Measuring ECN, presented by Geoff Huston at IETF 122
Measuring ECN, presented by Geoff Huston at IETF 122
APNIC
 
Some DNSSEC Measurements, presented at ICANN 82
Some DNSSEC Measurements, presented at ICANN 82Some DNSSEC Measurements, presented at ICANN 82
Some DNSSEC Measurements, presented at ICANN 82
APNIC
 
Authoritative Nameserver Selection and Recursive Resolvers
Authoritative Nameserver Selection and Recursive ResolversAuthoritative Nameserver Selection and Recursive Resolvers
Authoritative Nameserver Selection and Recursive Resolvers
APNIC
 
APNIC Report, presented at APAN 59 in Yokohama, Japan
APNIC Report, presented at APAN 59 in Yokohama, JapanAPNIC Report, presented at APAN 59 in Yokohama, Japan
APNIC Report, presented at APAN 59 in Yokohama, Japan
APNIC
 
Introduction on how unique identifier systems are managed and coordinated - R...
Introduction on how unique identifier systems are managed and coordinated - R...Introduction on how unique identifier systems are managed and coordinated - R...
Introduction on how unique identifier systems are managed and coordinated - R...
APNIC
 
IPv6 - Global and Malaysia's Perspectives
IPv6 - Global and Malaysia's PerspectivesIPv6 - Global and Malaysia's Perspectives
IPv6 - Global and Malaysia's Perspectives
APNIC
 
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
APNIC
 
APNIC Update, presented by Joyce Chen at APTLD 87
APNIC Update, presented by Joyce Chen at APTLD 87APNIC Update, presented by Joyce Chen at APTLD 87
APNIC Update, presented by Joyce Chen at APTLD 87
APNIC
 
Authoritative Nameserver Selection and Recursive Resolvers
Authoritative Nameserver Selection and Recursive ResolversAuthoritative Nameserver Selection and Recursive Resolvers
Authoritative Nameserver Selection and Recursive Resolvers
APNIC
 

Recently uploaded (16)

IT Services Workflow From Request to Resolution
IT Services Workflow From Request to ResolutionIT Services Workflow From Request to Resolution
IT Services Workflow From Request to Resolution
mzmziiskd
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation TemplateSmart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
yojeari421237
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
DataProvider1
 
Understanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep WebUnderstanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep Web
nabilajabin35
 
project_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptxproject_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptx
redzuriel13
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
OSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description fOSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description f
cbr49917
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx
andani26
 
White and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptxWhite and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptx
canumatown
 
Computers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers NetworksComputers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers Networks
Tito208863
 
Perguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolhaPerguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolha
socaslev
 
IT Services Workflow From Request to Resolution
IT Services Workflow From Request to ResolutionIT Services Workflow From Request to Resolution
IT Services Workflow From Request to Resolution
mzmziiskd
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation TemplateSmart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
yojeari421237
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
DataProvider1
 
Understanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep WebUnderstanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep Web
nabilajabin35
 
project_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptxproject_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptx
redzuriel13
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
OSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description fOSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description f
cbr49917
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx
andani26
 
White and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptxWhite and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptx
canumatown
 
Computers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers NetworksComputers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers Networks
Tito208863
 
Perguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolhaPerguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolha
socaslev
 

Network Automation: Ansible 101

  • 1. Network Automation: Ansible 101 APRICOT - Feb 28th, 2017 Bronwyn Lewis and Matt Peterson
  • 2. Our assumptions ➔ New to the world of “DevOps” ➔ No prior Ansible knowledge ➔ Want to stop hand-crafting your network configs
  • 3. Introduction ➔ Tutorial dependencies ➔ Introductions ➔ DevOps intro Agenda Tutorial ➔ Ansible intro & concepts ➔ Configuration templating ➔ Homework, next steps
  • 5. Required knowledge 1. basic familiarity with the command line 2. use of a command line text editor (e.g. vim or nano) http://git.io/vZKZH
  • 6. Required ➔ Linux, MacOS, or Win10 ➔ Python 2.7 ➔ Ansible 2.2 Technical requirements Recommendations ➔ Ubuntu 16.04 ➔ VM (VirtualBox, Vagrant) http://git.io/vZKZH
  • 8. whois Bronwyn Lewis ● Technical advisor at SFMIX ● Networking, systems, and automation @ SFMIX and PCH for 3+ years ● Background in operations, project management, & international affairs
  • 9. whois Matt Peterson ● Principal at Two P (network / systems) ● President at SFMIX (San Francisco IXP) ● Previously: Cumulus Networks, Tumblr, Square, Burning Man
  • 11. DevOps ● Unite people and {organization appropriate} methods ○ Typically Developers & Operations staff ○ Shared service(s) availability responsibility ● Not a specific software program, license, certification
  • 12. {Net}DevOps Leverage common DevOps tenants within Networking ● Configuration management (today’s focus) ● Infrastructure as code ● Reactive to infrastructure as a whole ● Consistency (sometimes viewed as transparency)
  • 13. This is not a DevOps talk ● DevOps Kung Fu https://github.com/chef/devops-kungfu ● Phoenix Project / IT Revolution http://itrevolution.com/ ● DevOps Cafe podcast http://devopscafe.org/
  • 14. Automation Tools while true ; do cat ~/.history ; done
  • 15. Automation tools aren’t new ● Expect (1990) ● CFEngine (1993) ● Puppet (2005) ● NETCONF (2006) ● OpenConfig (2014) ● Lots of homegrown tools And much, much more...
  • 17. What’s great about frameworks? Technical Benefits - procedural - repeatable - idempotent Other Benefits - open source (majority) - enterprise support - community
  • 18. Why Ansible? 1. agent’less 2. low risk (run it locally) 3. small investment 4. easy to learn (abstraction!)
  • 19. Abstraction instructions: what: update pkgs where: myServer1, myServer5 when: 23.00UTC reference: pkgs: openssh, apache
  • 20. How Ansible works localhost *default assumption, unless module exists for target host OS * remote host(s) → SSH ←
  • 21. (But we’re running it locally.) localhost
  • 23. WARNING! Visually boring, but important information packed slides ahead. (Sorry.)
  • 24. JSON ● Data exchange format ● More powerful than CSV ○ Data can imply it’s a list, integer, string, etc. { "roles": { "noc": { "name": "Alice" }, "dev": { "name": "Ian" } } }
  • 25. YAML ● Human readable data format, subset of JSON ● Always starts with --- ● Filename extension .yml or .yaml # EXAMPLE DATA FILE 1 --- roles: - { who: dev, name: Ian } - { who: noc, name: Alice } # EXAMPLE DATA FILE 2 --- roles: noc: name: Alice dev: name: Ian
  • 26. Jinja2 ● Python template engine ● Enumerates files using variable data ● Supports conditionals: ○ If statements ○ Loops ○ Piping ● Ansible standard file extension .j2 # EXAMPLE TEMPLATE Employees: {% for k,v in roles %} Role: {% k %} Name: {% v %} {% endfor %}
  • 27. Hosts ● Group host addresses, assign names, specify variables, etc. ● Default is /etc/ansible/hosts ○ can override this easily # EXAMPLE HOSTS LIST [dev] test-switch1 mgmt_ip=10.1.10.1 100.0.0.42 dev-router4 [prod] mywebsite.com 172.16.0.56 name=dev42.prod 172.16.0.17
  • 28. Playbooks ● Specifies execution ● Single or multiple OK ● You can write all tasks and vars in a playbook... ○ … but not recommended --- - name: Generate configs hosts: localhost gather_facts: no roles: - router - switch
  • 29. Facts ● Gathers information on the remote host(s) ○ Hardware, OS, uptime, MAC address & more ● You can use this info like a regular variable data point # EXAMPLE SYSTEM FACTS "ansible_architecture": "x86_64", "ansible_bios_date": "09/20/2012", "ansible_bios_version": "6.00",
  • 30. Inventory ● Allows you to pass in specific data with different playbooks ● Can specify hosts, group vars, and host-specific vars ● Can be accessed across multiple roles [EXAMPLE STRUCTURE] myplaybook.yml roles inventory hosts group_vars sites.yml
  • 31. Roles ● A built-in structure for compartmentalizing ● Roles make it easy / clean to manage execution ● Makes scaling and collaboration easier! [EXAMPLE STRUCTURE] ansible myplaybook.yml roles router tasks templates switch tasks
  • 33. General outline ● Inventory + Roles ● Variables ● Templates ○ IP Address Filter ● Tasks ● Hosts ● Playbook
  • 38. Structure ├── myplaybook.yml ├── inventory │ ├── group_vars │ │ └── sites.yml │ └── hosts └── roles ├── router │ ├── tasks │ │ └── main.yml │ ├── templates │ │ └── template1.j2 │ └── vars │ └── main.yml └── switch ● Lots of ways to structure ○ Use roles? ○ Use an inventory? ○ Global, group, host variables? ● Depends on your situation ● No “right” way
  • 39. Reference files Copy these from workspace/reference/ config1: we’ll use this as our 1st template config2: we’ll use this as our 2nd template config1-dhcp: advanced example template config2-dhcp: advanced example template ipaddress: RFC 5737 IP addresses (for demo/docs) variables: we’ll use these as our demo vars
  • 40. Inventory + roles ● Inventory is an easy way to share variables across roles, as well as managing hosts & host-specific variables ● Roles make managing multiple templates and sets of tasks easier by compartmentalizing them
  • 41. Variables ● Variables can be formatted individually, as a flat list, as a dictionary, or as an array ● Specific formatting can vary ⚠ Formatting impacts how you pass variables into templates and tasks — be careful here! ⚠
  • 42. Templates ● You can template anything! ● Lots of neat advanced features, including: ○ If, when, and for statements/loops ○ Variable manipulation via filters
  • 43. Tasks ● Procedural list of actions to execute, which combines templates and vars ● Conditions can be included, and are based on vars (i.e., only do X when Y is present)
  • 44. IP address filter ● The ipaddr() filter is included in Ansible 1.9< ● Provides an interface to the netaddr Python package; does a lot of neat things including: ○ subnet manipulation ○ address validation ○ address conversion ○ MAC address formatting
  • 45. Hosts ● What host we should be running the tasks on - normally this would be a remote host, but for us: localhost
  • 46. Playbook ● Brings it together: ○ Hosts ○ Roles ■ Tasks ■ Templates ○ Variables ● And executes! --- - name: Create files hosts: localhost connection: local gather_facts: no roles: - router
  • 47. Running a play ansible-playbook -i inventory myplaybook.yml [command] [flag] [dir] [playbook]
  • 49. And if it didn’t work... Common issues: ● Missing packages? ● Missing variables? ● Formatting weirdness? ● Typos? Ansible can provide clues.
  • 50. Ansible Debugging 101 Common Ansible debugging issues include: One or more undefined variables: 'dict object' has no attribute 'hostname' One or more undefined variables: 'hostname' is undefined ERROR: Syntax Error while loading YAML script
  • 51. So… what’s next? ● Think how you can apply this to your work ● Start small; doesn’t need to be overly complex ● Check out more resources...
  • 52. Some resources ● http://jedelman.com/ ● https://blog.tylerc.me/ ● https://pynet.twb-tech.com/ ● http://packetpushers.net/ ● http://keepingitclassless.net/ ● http://ansible-tips-and-tricks.rtfd.org/ books blogs/sites … and more!
  • 53. Join us for 102 after the break... ● Advanced templating techniques ● Inventory + advanced variable & hosts management ● Dynamic inventory ● And more!
  • 54. Thanks! 1. Questions? Comments? 2. Come talk to us! 3. Email or tweet us [email protected] @bronwyn [email protected] @dorkmatt