SlideShare a Scribd company logo
Automatic Configuration 
Management for Kamailio 
and Asterisk 
or “How I Stopped Worrying About Deployments” 
Giacomo Vacca 
Senior Network Applications Developer
labs.truphone.com 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
2
@giavac – Giacomo Vacca 
• Doing VoIP 10+ years 
• Leads Network Apps Dev 
• All sorts of OS apps in RTC 
• WebRTC, Devops enthusiast 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 3
Embracing Config Management 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 4
Penetration of cfg mgmt in trulabs 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 5
github/trulabs and Puppet usage 
• 44 custom modules 
• 2 public modules 
• ~10 3rd party modules 
• ~2000 commits 
• ~4000 lines of code 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 6
• Quicker to build and configure a new VM 
• Quicker to setup applications 
• Easier triage/debugging 
• Simpler Change Requests 
• Higher team satisfaction  
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
7 
Visible improvements
• Open Source configuration management 
• Defines the final status (‘what’, not ‘how’) 
• Idempotent 
puppetlabs.com (I’m not affiliated) 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
8 
So, what’s Puppet?
• Puppet code is contained in MANIFESTS 
• Puppet functionalities are organized in 
MODULES 
• “Compiled” manifests are CATALOGUES 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
9 
Puppet - terminology
• As many environments as you want 
–Each environment defines a Site 
•A Site defines a group of Nodes 
– Every host is a Node 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
10 
Puppet - architecture
Master/Slave vs Standalone 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 11
https://forge.puppetlabs.com/trulabs/kamailio 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
12 
A Puppet module for Kamailio
• Tested on debian wheezy; works on Ubuntu 
• Several levels of control 
–Manage Kamailio as a service 
–Choose package version 
–TLS/WebSockets enabled/disabled 
• Used on Production 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
13 
trulabs-kamailio
From empty VM to running app 
apt-get update && apt-get install -y puppet 
puppet module install trulabs-kamailio 
puppet apply –v  
/etc/puppet/modules/kamailio/tests/init.pp  
--show_diff --noop 
# You can check with: 
dpkg -l | grep kamailio 
netstat –nap | grep 506. 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 14
trulabs-kamailio - structure 
• manifests 
– config.pp 
– init.pp 
– install.pp 
– params.pp 
– repo.pp and repo/ 
– service.pp 
• templates 
– etc_default_kamailio.erb 
– kamailio-local.cfg.erb 
– kamailio.cfg.erb 
– tls.cfg.erb 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 15
e.g.: Kamailio for WebSockets 
class kamailio_ws::install () inherits kamailio_ws { 
class { '::kamailio': 
service_manage => true, 
service_enable => true, 
service_ensure => 'running', 
manage_repo => true, 
with_tls => true, 
with_websockets => true, 
with_ephem_auth => true, 
manage_config => false, 
} 
} 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 16
• Firewall 
– Open up UDP+TCP, 5060, 5061 
– Open TCP 5666 for Nagios client 
• TCP keepalive 
• SSL certs: 
– Ensure existing and with correct permissions 
• Swap memory: 
– Ensure created and with correct size 
• monit, fail2ban, basic tools: Install and configure 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
17 
kamailio_ws – node setup
https://forge.puppetlabs.com/trulabs/asterisk 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
18 
A Puppet module for Asterisk
• Pre-requisites 
–DAHDI (installed as kernel module) 
– apt repos 
• Packages 
– Core 
– Sounds 
– Business logic (from own repo) 
• Configuration files 
– Including optional TLS + certs, ODBC settings 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
19 
Asterisk – module components
node 'default' { 
class { '::asterisk': 
service_manage => true, 
service_enable => true, 
service_ensure => 'running', 
tcpenable => 'yes', 
} 
} 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
20 
Asterisk – minimal configuration
- asterisk, asterisk-modules, asterisk-config 
- asterisk-voicemail 
- asterisk-code-sound-en 
- asterisk-code-sound-en-gsm 
- asterisk-moh-opsound-gsm 
Debian Wheezy: 1.8.13.1~dfsg1-3+deb7u3 
Ubuntu Trusty: 1:11.7.0~dfsg-1ubuntu1 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
21 
Asterisk – packages installed
- UDP 5060 
- TCP 5060 
- Because we used ‘tcp_enable => true’ 
- Change listening port by adding a port in: 
- udpbindaddr (e.g. 0.0.0.0:5070) 
- tcpbindaddr (e.g. 0.0.0.0:5070) 
- RTP ports range (rtpstart – rtpend) 
- Enable TLS with tlsenable => ‘yes’ 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
22 
Asterisk – ports
“But I want my config files” 
manage_config => false 
file { '/etc/asterisk/extensions.conf': 
source => 'puppet:///modules/my_ast/extensions.conf', 
notify => Exec['asterisk-dialplan-reload'], 
} 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 23
“But I want my custom package” 
package_ensure => “my_version”, 
(needs proper apt sources set up) 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 24
Asterisk – setup on a new VM 
apt-get update && apt-get install -y puppet 
## This will also pull puppetlabs-stdlib 
puppet module install trulabs-asterisk 
puppet apply -v /etc/puppet/modules/asterisk/tests/init.pp  
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 25 
--show_diff --noop 
dpkg –l | grep asterisk 
netstat –nap | grep 506. 
asterisk –x ‘core show version’
Protecting asterisk 
firewall { '101 allow to UDP 5060 from kam': 
dport => ‘5060', 
proto => 'udp', 
action => 'accept', 
destination => $::ipaddress_eth0, 
source => $kamailio_ip, 
} -> 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 26
• Why Puppet (and not Chef, Ansible, etc)? 
• How do you test your Puppet modules? 
• Will this work on Ubuntu? 
• Can I automate Puppet runs with Jenkins? 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
27 
FAQ
Puppet & Docker – the future? 
• From VMs to Containers 
• Build Docker images with Puppet 
–Speed up image creation! 
• Deploy Docker containers with Puppet 
–Manage your containers with Puppet 
• Problem with Asterisk: mapping port ranges between host and 
container… hopefully fixed soon! 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 28
• Highly recommended: use Configuration 
Management 
•(The actual tool doesn’t matter much) 
• Develop a common language between dev 
and ops/sysadmin 
• Infrastructure As Code for your Asterisk 
deployments 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
29 
Takeaways
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
Q&A 
Giacomo Vacca 
@giavac 
labs@truphone.com 
https://labs.truphone.com/about/ 
30
Additional slides 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 
31
Popularity of Config Mgmt tools 
Source: http://www.slideshare.net/ZeroTurnaround/traditional-it-ops-vs-dev-ops-devops-days-ignite-talk-by-oliver-white 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 32
Puppet vs Chef – debian* 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 33 
Source: http://popcon.debian.org/
Puppet vs Chef – github 
© 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 34 
Source: github.com at 2014/10/03
Ad

More Related Content

What's hot (19)

Installing lemp with ssl and varnish on Debian 9
Installing lemp with ssl and varnish on Debian 9Installing lemp with ssl and varnish on Debian 9
Installing lemp with ssl and varnish on Debian 9
عطاءالمنعم اثیل شیخ
 
Training Slides: Basics 106: Tungsten Dashboard Overview, Installation and Ar...
Training Slides: Basics 106: Tungsten Dashboard Overview, Installation and Ar...Training Slides: Basics 106: Tungsten Dashboard Overview, Installation and Ar...
Training Slides: Basics 106: Tungsten Dashboard Overview, Installation and Ar...
Continuent
 
Install and Configure Ubuntu for Hadoop Installation for beginners
Install and Configure Ubuntu for Hadoop Installation for beginners Install and Configure Ubuntu for Hadoop Installation for beginners
Install and Configure Ubuntu for Hadoop Installation for beginners
Shilpa Hemaraj
 
6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers
videos
 
OpenCSW - What is the project about?
OpenCSW - What is the project about?OpenCSW - What is the project about?
OpenCSW - What is the project about?
dmichelsen
 
Fabric-让部署变得简单
Fabric-让部署变得简单Fabric-让部署变得简单
Fabric-让部署变得简单
Eric Lo
 
Your Inner Sysadmin - LonestarPHP 2015
Your Inner Sysadmin - LonestarPHP 2015Your Inner Sysadmin - LonestarPHP 2015
Your Inner Sysadmin - LonestarPHP 2015
Chris Tankersley
 
4. open mano set up and usage
4. open mano set up and usage4. open mano set up and usage
4. open mano set up and usage
videos
 
Vagrant
VagrantVagrant
Vagrant
Denys Haryachyy
 
Bpug mcollective 20140624
Bpug mcollective 20140624Bpug mcollective 20140624
Bpug mcollective 20140624
Johan De Wit
 
CoreOS intro
CoreOS introCoreOS intro
CoreOS intro
Timo Derstappen
 
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
purpleocean
 
Running hadoop on ubuntu linux
Running hadoop on ubuntu linuxRunning hadoop on ubuntu linux
Running hadoop on ubuntu linux
TRCK
 
Fail2ban
Fail2banFail2ban
Fail2ban
Ruslan Conk
 
Docker orchestration using core os and ansible - Ansible IL 2015
Docker orchestration using core os and ansible - Ansible IL 2015Docker orchestration using core os and ansible - Ansible IL 2015
Docker orchestration using core os and ansible - Ansible IL 2015
Leonid Mirsky
 
Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)
HungWei Chiu
 
CoreOS @Codetalks Hamburg
CoreOS @Codetalks HamburgCoreOS @Codetalks Hamburg
CoreOS @Codetalks Hamburg
Timo Derstappen
 
Docker Container: isolation and security
Docker Container: isolation and securityDocker Container: isolation and security
Docker Container: isolation and security
宇 傅
 
Understand the iptables step by step
Understand the iptables step by stepUnderstand the iptables step by step
Understand the iptables step by step
HungWei Chiu
 
Training Slides: Basics 106: Tungsten Dashboard Overview, Installation and Ar...
Training Slides: Basics 106: Tungsten Dashboard Overview, Installation and Ar...Training Slides: Basics 106: Tungsten Dashboard Overview, Installation and Ar...
Training Slides: Basics 106: Tungsten Dashboard Overview, Installation and Ar...
Continuent
 
Install and Configure Ubuntu for Hadoop Installation for beginners
Install and Configure Ubuntu for Hadoop Installation for beginners Install and Configure Ubuntu for Hadoop Installation for beginners
Install and Configure Ubuntu for Hadoop Installation for beginners
Shilpa Hemaraj
 
6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers
videos
 
OpenCSW - What is the project about?
OpenCSW - What is the project about?OpenCSW - What is the project about?
OpenCSW - What is the project about?
dmichelsen
 
Fabric-让部署变得简单
Fabric-让部署变得简单Fabric-让部署变得简单
Fabric-让部署变得简单
Eric Lo
 
Your Inner Sysadmin - LonestarPHP 2015
Your Inner Sysadmin - LonestarPHP 2015Your Inner Sysadmin - LonestarPHP 2015
Your Inner Sysadmin - LonestarPHP 2015
Chris Tankersley
 
4. open mano set up and usage
4. open mano set up and usage4. open mano set up and usage
4. open mano set up and usage
videos
 
Bpug mcollective 20140624
Bpug mcollective 20140624Bpug mcollective 20140624
Bpug mcollective 20140624
Johan De Wit
 
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
purpleocean
 
Running hadoop on ubuntu linux
Running hadoop on ubuntu linuxRunning hadoop on ubuntu linux
Running hadoop on ubuntu linux
TRCK
 
Docker orchestration using core os and ansible - Ansible IL 2015
Docker orchestration using core os and ansible - Ansible IL 2015Docker orchestration using core os and ansible - Ansible IL 2015
Docker orchestration using core os and ansible - Ansible IL 2015
Leonid Mirsky
 
Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)
HungWei Chiu
 
CoreOS @Codetalks Hamburg
CoreOS @Codetalks HamburgCoreOS @Codetalks Hamburg
CoreOS @Codetalks Hamburg
Timo Derstappen
 
Docker Container: isolation and security
Docker Container: isolation and securityDocker Container: isolation and security
Docker Container: isolation and security
宇 傅
 
Understand the iptables step by step
Understand the iptables step by stepUnderstand the iptables step by step
Understand the iptables step by step
HungWei Chiu
 

Viewers also liked (20)

Jc valero ponencias 1-2-4 informe sectorial accesibilidad pom en clm
Jc valero ponencias 1-2-4 informe sectorial accesibilidad pom en clmJc valero ponencias 1-2-4 informe sectorial accesibilidad pom en clm
Jc valero ponencias 1-2-4 informe sectorial accesibilidad pom en clm
JCCM1925
 
Shared learning in the digital age #kmb in 140 characters or less
Shared learning in the digital age  #kmb in 140 characters or lessShared learning in the digital age  #kmb in 140 characters or less
Shared learning in the digital age #kmb in 140 characters or less
Bonnie Zink
 
How to Build Your Brand with UC
How to Build Your Brand with UCHow to Build Your Brand with UC
How to Build Your Brand with UC
Digium
 
French action topic 8
French action topic 8French action topic 8
French action topic 8
as436525mhs
 
Applications lab
Applications lab Applications lab
Applications lab
IBM Rational software
 
360º leadership
360º leadership360º leadership
360º leadership
Xavier Roca Torruella
 
Combined evaluation
Combined evaluationCombined evaluation
Combined evaluation
mitchello44
 
Agency1 full keynote_22_07_13
Agency1 full keynote_22_07_13Agency1 full keynote_22_07_13
Agency1 full keynote_22_07_13
Sergey Vorobyov
 
NapoleonCat.com - InternetBeta2013
NapoleonCat.com - InternetBeta2013NapoleonCat.com - InternetBeta2013
NapoleonCat.com - InternetBeta2013
NapoleonCat.com
 
Social Footprint. Czerwiec 2014
Social Footprint. Czerwiec 2014Social Footprint. Czerwiec 2014
Social Footprint. Czerwiec 2014
NapoleonCat.com
 
Java koodimise stiilijuhised
Java koodimise stiilijuhisedJava koodimise stiilijuhised
Java koodimise stiilijuhised
K3v1n_l
 
Raport aktywności na facebooku Czerwiec 2011
Raport aktywności na facebooku Czerwiec 2011Raport aktywności na facebooku Czerwiec 2011
Raport aktywności na facebooku Czerwiec 2011
NapoleonCat.com
 
Kisi kisi uas
Kisi kisi uasKisi kisi uas
Kisi kisi uas
Saeful Anwar
 
6 Ways a New Phone System can make your Life Easier
6 Ways a New Phone System can make your Life Easier6 Ways a New Phone System can make your Life Easier
6 Ways a New Phone System can make your Life Easier
Digium
 
Hanke esittely-siiliset14042011
Hanke esittely-siiliset14042011Hanke esittely-siiliset14042011
Hanke esittely-siiliset14042011
Lähde-voimaa matkalle. ESR-hanke, hallinnoiva kunta Siilinjärvi
 
Rhive 0.0 3
Rhive 0.0 3Rhive 0.0 3
Rhive 0.0 3
JunHo Cho
 
Lecture 12
Lecture 12Lecture 12
Lecture 12
giskende
 
Task 1
Task 1Task 1
Task 1
David_Hickman
 
What's new in Rational Team Concert 3.0
What's new in Rational Team Concert 3.0What's new in Rational Team Concert 3.0
What's new in Rational Team Concert 3.0
IBM Rational software
 
Jc valero ponencias 1-2-4 informe sectorial accesibilidad pom en clm
Jc valero ponencias 1-2-4 informe sectorial accesibilidad pom en clmJc valero ponencias 1-2-4 informe sectorial accesibilidad pom en clm
Jc valero ponencias 1-2-4 informe sectorial accesibilidad pom en clm
JCCM1925
 
Shared learning in the digital age #kmb in 140 characters or less
Shared learning in the digital age  #kmb in 140 characters or lessShared learning in the digital age  #kmb in 140 characters or less
Shared learning in the digital age #kmb in 140 characters or less
Bonnie Zink
 
How to Build Your Brand with UC
How to Build Your Brand with UCHow to Build Your Brand with UC
How to Build Your Brand with UC
Digium
 
French action topic 8
French action topic 8French action topic 8
French action topic 8
as436525mhs
 
Combined evaluation
Combined evaluationCombined evaluation
Combined evaluation
mitchello44
 
Agency1 full keynote_22_07_13
Agency1 full keynote_22_07_13Agency1 full keynote_22_07_13
Agency1 full keynote_22_07_13
Sergey Vorobyov
 
NapoleonCat.com - InternetBeta2013
NapoleonCat.com - InternetBeta2013NapoleonCat.com - InternetBeta2013
NapoleonCat.com - InternetBeta2013
NapoleonCat.com
 
Social Footprint. Czerwiec 2014
Social Footprint. Czerwiec 2014Social Footprint. Czerwiec 2014
Social Footprint. Czerwiec 2014
NapoleonCat.com
 
Java koodimise stiilijuhised
Java koodimise stiilijuhisedJava koodimise stiilijuhised
Java koodimise stiilijuhised
K3v1n_l
 
Raport aktywności na facebooku Czerwiec 2011
Raport aktywności na facebooku Czerwiec 2011Raport aktywności na facebooku Czerwiec 2011
Raport aktywności na facebooku Czerwiec 2011
NapoleonCat.com
 
6 Ways a New Phone System can make your Life Easier
6 Ways a New Phone System can make your Life Easier6 Ways a New Phone System can make your Life Easier
6 Ways a New Phone System can make your Life Easier
Digium
 
Lecture 12
Lecture 12Lecture 12
Lecture 12
giskende
 
What's new in Rational Team Concert 3.0
What's new in Rational Team Concert 3.0What's new in Rational Team Concert 3.0
What's new in Rational Team Concert 3.0
IBM Rational software
 
Ad

Similar to Automatic Configuration Management for Kamailio and Asterisk in the era of Puppet (20)

March 2014 CMUG Minutes
March 2014 CMUG MinutesMarch 2014 CMUG Minutes
March 2014 CMUG Minutes
CM-UG.com
 
Pivotal: Operationalizing 1000 Node Hadoop Cluster - Analytics Workbench
Pivotal: Operationalizing 1000 Node Hadoop Cluster - Analytics WorkbenchPivotal: Operationalizing 1000 Node Hadoop Cluster - Analytics Workbench
Pivotal: Operationalizing 1000 Node Hadoop Cluster - Analytics Workbench
EMC
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
Chien Cheng Wu
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
建澄 吳
 
Managing Oracle Solaris Systems with Puppet
Managing Oracle Solaris Systems with PuppetManaging Oracle Solaris Systems with Puppet
Managing Oracle Solaris Systems with Puppet
glynnfoster
 
Python on Cloud Foundry
Python on Cloud FoundryPython on Cloud Foundry
Python on Cloud Foundry
Ian Huston
 
Foreman-and-Puppet-for-Openstack-Audo-Deployment
Foreman-and-Puppet-for-Openstack-Audo-DeploymentForeman-and-Puppet-for-Openstack-Audo-Deployment
Foreman-and-Puppet-for-Openstack-Audo-Deployment
yating yang
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenter
lzap
 
Manage your switches like servers
Manage your switches like serversManage your switches like servers
Manage your switches like servers
Cumulus Networks
 
OpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, tooOpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, too
inovex GmbH
 
Puppet Primer, Robbie Jerrom, Solution Architect VMware
Puppet Primer, Robbie Jerrom, Solution Architect VMwarePuppet Primer, Robbie Jerrom, Solution Architect VMware
Puppet Primer, Robbie Jerrom, Solution Architect VMware
subtitle
 
V mware
V mwareV mware
V mware
dvmug1
 
Structor - Automated Building of Virtual Hadoop Clusters
Structor - Automated Building of Virtual Hadoop ClustersStructor - Automated Building of Virtual Hadoop Clusters
Structor - Automated Building of Virtual Hadoop Clusters
Owen O'Malley
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020
Akihiro Suda
 
One-Man Ops
One-Man OpsOne-Man Ops
One-Man Ops
Jos Boumans
 
Scalable systems management with puppet
Scalable systems management with puppetScalable systems management with puppet
Scalable systems management with puppet
Puppet
 
Scalable Systems Management with Puppet
Scalable Systems Management with PuppetScalable Systems Management with Puppet
Scalable Systems Management with Puppet
Puppet
 
Puppet Camp Presentation 15
Puppet Camp Presentation 15Puppet Camp Presentation 15
Puppet Camp Presentation 15
Dejan Golja
 
Developer Cloud Solution with OpenStack
Developer Cloud Solution with OpenStackDeveloper Cloud Solution with OpenStack
Developer Cloud Solution with OpenStack
The World Bank
 
NFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center OperationsNFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center Operations
Cumulus Networks
 
March 2014 CMUG Minutes
March 2014 CMUG MinutesMarch 2014 CMUG Minutes
March 2014 CMUG Minutes
CM-UG.com
 
Pivotal: Operationalizing 1000 Node Hadoop Cluster - Analytics Workbench
Pivotal: Operationalizing 1000 Node Hadoop Cluster - Analytics WorkbenchPivotal: Operationalizing 1000 Node Hadoop Cluster - Analytics Workbench
Pivotal: Operationalizing 1000 Node Hadoop Cluster - Analytics Workbench
EMC
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
建澄 吳
 
Managing Oracle Solaris Systems with Puppet
Managing Oracle Solaris Systems with PuppetManaging Oracle Solaris Systems with Puppet
Managing Oracle Solaris Systems with Puppet
glynnfoster
 
Python on Cloud Foundry
Python on Cloud FoundryPython on Cloud Foundry
Python on Cloud Foundry
Ian Huston
 
Foreman-and-Puppet-for-Openstack-Audo-Deployment
Foreman-and-Puppet-for-Openstack-Audo-DeploymentForeman-and-Puppet-for-Openstack-Audo-Deployment
Foreman-and-Puppet-for-Openstack-Audo-Deployment
yating yang
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenter
lzap
 
Manage your switches like servers
Manage your switches like serversManage your switches like servers
Manage your switches like servers
Cumulus Networks
 
OpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, tooOpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, too
inovex GmbH
 
Puppet Primer, Robbie Jerrom, Solution Architect VMware
Puppet Primer, Robbie Jerrom, Solution Architect VMwarePuppet Primer, Robbie Jerrom, Solution Architect VMware
Puppet Primer, Robbie Jerrom, Solution Architect VMware
subtitle
 
V mware
V mwareV mware
V mware
dvmug1
 
Structor - Automated Building of Virtual Hadoop Clusters
Structor - Automated Building of Virtual Hadoop ClustersStructor - Automated Building of Virtual Hadoop Clusters
Structor - Automated Building of Virtual Hadoop Clusters
Owen O'Malley
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020
Akihiro Suda
 
Scalable systems management with puppet
Scalable systems management with puppetScalable systems management with puppet
Scalable systems management with puppet
Puppet
 
Scalable Systems Management with Puppet
Scalable Systems Management with PuppetScalable Systems Management with Puppet
Scalable Systems Management with Puppet
Puppet
 
Puppet Camp Presentation 15
Puppet Camp Presentation 15Puppet Camp Presentation 15
Puppet Camp Presentation 15
Dejan Golja
 
Developer Cloud Solution with OpenStack
Developer Cloud Solution with OpenStackDeveloper Cloud Solution with OpenStack
Developer Cloud Solution with OpenStack
The World Bank
 
NFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center OperationsNFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center Operations
Cumulus Networks
 
Ad

More from Digium (20)

AstriCon 2017 Recap
AstriCon 2017 RecapAstriCon 2017 Recap
AstriCon 2017 Recap
Digium
 
MegaFreight - South Africa’s largest independent freight forwarder
MegaFreight - South Africa’s largest independent freight forwarderMegaFreight - South Africa’s largest independent freight forwarder
MegaFreight - South Africa’s largest independent freight forwarder
Digium
 
Becker School District
Becker School DistrictBecker School District
Becker School District
Digium
 
Danny Windham, Digium CEO, Keynote address - ITEXPO East 2015, Miamii
Danny Windham, Digium CEO, Keynote address - ITEXPO East 2015, MiamiiDanny Windham, Digium CEO, Keynote address - ITEXPO East 2015, Miamii
Danny Windham, Digium CEO, Keynote address - ITEXPO East 2015, Miamii
Digium
 
AstriCon 2014 keynote: Russell Bryant
AstriCon 2014 keynote: Russell BryantAstriCon 2014 keynote: Russell Bryant
AstriCon 2014 keynote: Russell Bryant
Digium
 
Distribution, redundancy and high availability using OpenSIPS
Distribution, redundancy and high availability using OpenSIPSDistribution, redundancy and high availability using OpenSIPS
Distribution, redundancy and high availability using OpenSIPS
Digium
 
Getting the best out of WebRTC
Getting the best out of WebRTCGetting the best out of WebRTC
Getting the best out of WebRTC
Digium
 
Making your Asterisk System Secure
Making your Asterisk System SecureMaking your Asterisk System Secure
Making your Asterisk System Secure
Digium
 
Scaling FastAGI Applications with Go
Scaling FastAGI Applications with GoScaling FastAGI Applications with Go
Scaling FastAGI Applications with Go
Digium
 
WebRTC: The Big Debate, Shut Up and Build Something
WebRTC: The Big Debate, Shut Up and Build SomethingWebRTC: The Big Debate, Shut Up and Build Something
WebRTC: The Big Debate, Shut Up and Build Something
Digium
 
Connecting Non-SIP IP Camera to Your PBX
Connecting Non-SIP IP Camera to Your PBXConnecting Non-SIP IP Camera to Your PBX
Connecting Non-SIP IP Camera to Your PBX
Digium
 
The Past and Future of VoIP
The Past and Future of VoIPThe Past and Future of VoIP
The Past and Future of VoIP
Digium
 
Developing an ivr payment system with asterisk (astricon 2014 las vegas nevada)
Developing an ivr payment system with asterisk (astricon 2014 las vegas nevada)Developing an ivr payment system with asterisk (astricon 2014 las vegas nevada)
Developing an ivr payment system with asterisk (astricon 2014 las vegas nevada)
Digium
 
More than a phone system. A better way to communicate.
More than a phone system. A better way to communicate.More than a phone system. A better way to communicate.
More than a phone system. A better way to communicate.
Digium
 
Real Success Stories from IT Heroes
Real Success Stories from IT HeroesReal Success Stories from IT Heroes
Real Success Stories from IT Heroes
Digium
 
Smart Deductions for Small Business
Smart Deductions for Small BusinessSmart Deductions for Small Business
Smart Deductions for Small Business
Digium
 
Security Strategies for UC
Security Strategies for UCSecurity Strategies for UC
Security Strategies for UC
Digium
 
Switchvox - The Best Value in Unified Communications
Switchvox - The Best Value in Unified CommunicationsSwitchvox - The Best Value in Unified Communications
Switchvox - The Best Value in Unified Communications
Digium
 
Five Essential Benefits Driving UC Adoption by SMBs
Five Essential Benefits Driving UC Adoption by SMBsFive Essential Benefits Driving UC Adoption by SMBs
Five Essential Benefits Driving UC Adoption by SMBs
Digium
 
Top 10 Reasons SMBs Choose Switchvox
Top 10 Reasons SMBs Choose SwitchvoxTop 10 Reasons SMBs Choose Switchvox
Top 10 Reasons SMBs Choose Switchvox
Digium
 
AstriCon 2017 Recap
AstriCon 2017 RecapAstriCon 2017 Recap
AstriCon 2017 Recap
Digium
 
MegaFreight - South Africa’s largest independent freight forwarder
MegaFreight - South Africa’s largest independent freight forwarderMegaFreight - South Africa’s largest independent freight forwarder
MegaFreight - South Africa’s largest independent freight forwarder
Digium
 
Becker School District
Becker School DistrictBecker School District
Becker School District
Digium
 
Danny Windham, Digium CEO, Keynote address - ITEXPO East 2015, Miamii
Danny Windham, Digium CEO, Keynote address - ITEXPO East 2015, MiamiiDanny Windham, Digium CEO, Keynote address - ITEXPO East 2015, Miamii
Danny Windham, Digium CEO, Keynote address - ITEXPO East 2015, Miamii
Digium
 
AstriCon 2014 keynote: Russell Bryant
AstriCon 2014 keynote: Russell BryantAstriCon 2014 keynote: Russell Bryant
AstriCon 2014 keynote: Russell Bryant
Digium
 
Distribution, redundancy and high availability using OpenSIPS
Distribution, redundancy and high availability using OpenSIPSDistribution, redundancy and high availability using OpenSIPS
Distribution, redundancy and high availability using OpenSIPS
Digium
 
Getting the best out of WebRTC
Getting the best out of WebRTCGetting the best out of WebRTC
Getting the best out of WebRTC
Digium
 
Making your Asterisk System Secure
Making your Asterisk System SecureMaking your Asterisk System Secure
Making your Asterisk System Secure
Digium
 
Scaling FastAGI Applications with Go
Scaling FastAGI Applications with GoScaling FastAGI Applications with Go
Scaling FastAGI Applications with Go
Digium
 
WebRTC: The Big Debate, Shut Up and Build Something
WebRTC: The Big Debate, Shut Up and Build SomethingWebRTC: The Big Debate, Shut Up and Build Something
WebRTC: The Big Debate, Shut Up and Build Something
Digium
 
Connecting Non-SIP IP Camera to Your PBX
Connecting Non-SIP IP Camera to Your PBXConnecting Non-SIP IP Camera to Your PBX
Connecting Non-SIP IP Camera to Your PBX
Digium
 
The Past and Future of VoIP
The Past and Future of VoIPThe Past and Future of VoIP
The Past and Future of VoIP
Digium
 
Developing an ivr payment system with asterisk (astricon 2014 las vegas nevada)
Developing an ivr payment system with asterisk (astricon 2014 las vegas nevada)Developing an ivr payment system with asterisk (astricon 2014 las vegas nevada)
Developing an ivr payment system with asterisk (astricon 2014 las vegas nevada)
Digium
 
More than a phone system. A better way to communicate.
More than a phone system. A better way to communicate.More than a phone system. A better way to communicate.
More than a phone system. A better way to communicate.
Digium
 
Real Success Stories from IT Heroes
Real Success Stories from IT HeroesReal Success Stories from IT Heroes
Real Success Stories from IT Heroes
Digium
 
Smart Deductions for Small Business
Smart Deductions for Small BusinessSmart Deductions for Small Business
Smart Deductions for Small Business
Digium
 
Security Strategies for UC
Security Strategies for UCSecurity Strategies for UC
Security Strategies for UC
Digium
 
Switchvox - The Best Value in Unified Communications
Switchvox - The Best Value in Unified CommunicationsSwitchvox - The Best Value in Unified Communications
Switchvox - The Best Value in Unified Communications
Digium
 
Five Essential Benefits Driving UC Adoption by SMBs
Five Essential Benefits Driving UC Adoption by SMBsFive Essential Benefits Driving UC Adoption by SMBs
Five Essential Benefits Driving UC Adoption by SMBs
Digium
 
Top 10 Reasons SMBs Choose Switchvox
Top 10 Reasons SMBs Choose SwitchvoxTop 10 Reasons SMBs Choose Switchvox
Top 10 Reasons SMBs Choose Switchvox
Digium
 

Recently uploaded (20)

Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 

Automatic Configuration Management for Kamailio and Asterisk in the era of Puppet

  • 1. Automatic Configuration Management for Kamailio and Asterisk or “How I Stopped Worrying About Deployments” Giacomo Vacca Senior Network Applications Developer
  • 2. labs.truphone.com © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 2
  • 3. @giavac – Giacomo Vacca • Doing VoIP 10+ years • Leads Network Apps Dev • All sorts of OS apps in RTC • WebRTC, Devops enthusiast © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 3
  • 4. Embracing Config Management © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 4
  • 5. Penetration of cfg mgmt in trulabs © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 5
  • 6. github/trulabs and Puppet usage • 44 custom modules • 2 public modules • ~10 3rd party modules • ~2000 commits • ~4000 lines of code © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 6
  • 7. • Quicker to build and configure a new VM • Quicker to setup applications • Easier triage/debugging • Simpler Change Requests • Higher team satisfaction  © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 7 Visible improvements
  • 8. • Open Source configuration management • Defines the final status (‘what’, not ‘how’) • Idempotent puppetlabs.com (I’m not affiliated) © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 8 So, what’s Puppet?
  • 9. • Puppet code is contained in MANIFESTS • Puppet functionalities are organized in MODULES • “Compiled” manifests are CATALOGUES © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 9 Puppet - terminology
  • 10. • As many environments as you want –Each environment defines a Site •A Site defines a group of Nodes – Every host is a Node © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 10 Puppet - architecture
  • 11. Master/Slave vs Standalone © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 11
  • 12. https://forge.puppetlabs.com/trulabs/kamailio © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 12 A Puppet module for Kamailio
  • 13. • Tested on debian wheezy; works on Ubuntu • Several levels of control –Manage Kamailio as a service –Choose package version –TLS/WebSockets enabled/disabled • Used on Production © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 13 trulabs-kamailio
  • 14. From empty VM to running app apt-get update && apt-get install -y puppet puppet module install trulabs-kamailio puppet apply –v /etc/puppet/modules/kamailio/tests/init.pp --show_diff --noop # You can check with: dpkg -l | grep kamailio netstat –nap | grep 506. © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 14
  • 15. trulabs-kamailio - structure • manifests – config.pp – init.pp – install.pp – params.pp – repo.pp and repo/ – service.pp • templates – etc_default_kamailio.erb – kamailio-local.cfg.erb – kamailio.cfg.erb – tls.cfg.erb © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 15
  • 16. e.g.: Kamailio for WebSockets class kamailio_ws::install () inherits kamailio_ws { class { '::kamailio': service_manage => true, service_enable => true, service_ensure => 'running', manage_repo => true, with_tls => true, with_websockets => true, with_ephem_auth => true, manage_config => false, } } © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 16
  • 17. • Firewall – Open up UDP+TCP, 5060, 5061 – Open TCP 5666 for Nagios client • TCP keepalive • SSL certs: – Ensure existing and with correct permissions • Swap memory: – Ensure created and with correct size • monit, fail2ban, basic tools: Install and configure © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 17 kamailio_ws – node setup
  • 18. https://forge.puppetlabs.com/trulabs/asterisk © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 18 A Puppet module for Asterisk
  • 19. • Pre-requisites –DAHDI (installed as kernel module) – apt repos • Packages – Core – Sounds – Business logic (from own repo) • Configuration files – Including optional TLS + certs, ODBC settings © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 19 Asterisk – module components
  • 20. node 'default' { class { '::asterisk': service_manage => true, service_enable => true, service_ensure => 'running', tcpenable => 'yes', } } © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 20 Asterisk – minimal configuration
  • 21. - asterisk, asterisk-modules, asterisk-config - asterisk-voicemail - asterisk-code-sound-en - asterisk-code-sound-en-gsm - asterisk-moh-opsound-gsm Debian Wheezy: 1.8.13.1~dfsg1-3+deb7u3 Ubuntu Trusty: 1:11.7.0~dfsg-1ubuntu1 © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 21 Asterisk – packages installed
  • 22. - UDP 5060 - TCP 5060 - Because we used ‘tcp_enable => true’ - Change listening port by adding a port in: - udpbindaddr (e.g. 0.0.0.0:5070) - tcpbindaddr (e.g. 0.0.0.0:5070) - RTP ports range (rtpstart – rtpend) - Enable TLS with tlsenable => ‘yes’ © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 22 Asterisk – ports
  • 23. “But I want my config files” manage_config => false file { '/etc/asterisk/extensions.conf': source => 'puppet:///modules/my_ast/extensions.conf', notify => Exec['asterisk-dialplan-reload'], } © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 23
  • 24. “But I want my custom package” package_ensure => “my_version”, (needs proper apt sources set up) © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 24
  • 25. Asterisk – setup on a new VM apt-get update && apt-get install -y puppet ## This will also pull puppetlabs-stdlib puppet module install trulabs-asterisk puppet apply -v /etc/puppet/modules/asterisk/tests/init.pp © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 25 --show_diff --noop dpkg –l | grep asterisk netstat –nap | grep 506. asterisk –x ‘core show version’
  • 26. Protecting asterisk firewall { '101 allow to UDP 5060 from kam': dport => ‘5060', proto => 'udp', action => 'accept', destination => $::ipaddress_eth0, source => $kamailio_ip, } -> © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 26
  • 27. • Why Puppet (and not Chef, Ansible, etc)? • How do you test your Puppet modules? • Will this work on Ubuntu? • Can I automate Puppet runs with Jenkins? © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 27 FAQ
  • 28. Puppet & Docker – the future? • From VMs to Containers • Build Docker images with Puppet –Speed up image creation! • Deploy Docker containers with Puppet –Manage your containers with Puppet • Problem with Asterisk: mapping port ranges between host and container… hopefully fixed soon! © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 28
  • 29. • Highly recommended: use Configuration Management •(The actual tool doesn’t matter much) • Develop a common language between dev and ops/sysadmin • Infrastructure As Code for your Asterisk deployments © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 29 Takeaways
  • 30. © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. Q&A Giacomo Vacca @giavac [email protected] https://labs.truphone.com/about/ 30
  • 31. Additional slides © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 31
  • 32. Popularity of Config Mgmt tools Source: http://www.slideshare.net/ZeroTurnaround/traditional-it-ops-vs-dev-ops-devops-days-ignite-talk-by-oliver-white © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 32
  • 33. Puppet vs Chef – debian* © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 33 Source: http://popcon.debian.org/
  • 34. Puppet vs Chef – github © 2014 Truphone 10 November 2014 Limited. All Rights Reserved. 34 Source: github.com at 2014/10/03

Editor's Notes

  • #2: This presentation is about a practical example of automating the configuration of Linux-based RTC platforms, with particular emphasis on Kamailio and Asterisk. QUESTIONS TO AUDIENCE: Who’s being deploying Asterisk in any sort of automated fashion? Using Puppet? Using something else, like Chef, Ansible, Salt? Even if you’re already doing it, say for example with Chef, I hope this presentation will be useful to challenge or corroborate your process.
  • #3: Truphone is a Global Mobile Network Operator: you can use Truphone in more than 200 countries, and in 66 countries like you do in your home country. Truphone Labs takes care mainly of the Truphone App. MISSION: “a phone in your mobile device”. iOS, Android, BB apps. Platform: Open Source applications and libraries. (and of course Asterisk plays – and has played since day 1– an important part in this)
  • #4: I’ve been working with VoIP-related technologies for the last decade. DEV background.
  • #5: THIS PRESENTATION IS ALSO ABOUT A PERSONAL PATH TOWARDS DEVOPS. I think the typical path to embrace configuration management is coming from a sysadmin role and willing to simplify your life. I come from a different direction: deploying applications and doing system integration, and willing to automate anything that’s possible: “Infrastructure as code”. Also wanted to: Have more time for dev, less for ops-related stuff Share a common language with Ops Get configuration documentation FOR FREE! Play with something new!
  • #6: In 2012 I started challenging that only infrastructure and not apps configuration were automatically managed. Was Master/Slave. I started to move applications configuration into Puppet, incrementally. I reckon THE HARDEST PART IS GOING FROM 0% TO ABOUT 50%, then it’s all downhill. Now we have almost 100% of the apps deployed with Puppet, including pre-requisites, firewall, monitoring, etc.
  • #7: Wheezy: puppet 2.7 Trusty: puppet 3.4
  • #8: VISIBLE IMPROVEMENTS I’m afraid I don’t have terribly accurate numbers, but the order of magnitude – the important thing here – is about right. Build and configure a new VM From weeks to < 5’ Incl. pre-req libs, f/w, swap, Nagios, TCP ka, etc Configure an application of a new VM From hours to minutes From .deb + manual config to all automated Easier Triage/debugging Fewer cfg-related defects, quicker assessment From 3-ways diff to git tools Simpler Change Requests Require fewer iterations before approval Fewer surprises when simulating the deployment Easier to rollback (but fewer rollbacks needed) Higher team satisfaction Efforts shifted from deployment time to deployment preparation Increased confidence Deployments are now considered “cheap” and “low-risk”
  • #9: Puppet has a “community version” or “enterprise version” (as Chef and most of the others)
  • #12: Possibly an overlooked feature/potentiality of Puppet is that it does not mandate a Master! Master/Slave Need to build/configure master (SPOF) Need to secure master/slave connections More secure Standalone (our choice – so far!) No need to have a master at all Easier to extend Need care in handling sensitive data
  • #15: This configuration will pull kamailio deb packages from sipwise repo (which is the official kamailio debian repo).
  • #16: A very common structure for a Puppet module. Templates are based on the default configuration provided inside the official debian packages. You can change the templates depending on your needs.
  • #17: Practical example: build a kamailio instance with WebSockets support. Let’s call it kamailio_ws. See the relevant configuration elements here: with_websockets set to TRUE. Here we’re telling Puppet that the installation phase requires the instantiation of a trulabs-kamailio class with those configuration properties. Puppet will do the job for us.
  • #18: The surrounding conditions for such a host would be: Firewall TCP keepalive settings SSL certificates checks Swap memory configuration Monit Nagios fail2ban Other tools You can build the node with trulabs-kamailio and other 3rd party modules (e.g. puppetlabs-firewall), depending on your needs.
  • #20: Finally, let’s move to Asterisk. If we think about the main components involved in an installation: pre-requisites: apt sources, DAHDI if needed. Packages to be installed: core, sounds, perhaps your own packages from your repos Configuration files (sip.conf, rtp.conf, etc) to set up TLS, ODBC, etc
  • #21: A minimal configuration is the following. See we have the option to enable and manage directly asterisk as a service. We can also enable listening on TCP (default: disabled). This happens by interacting with the configuration files templates.
  • #22: For example, if I apply the previous node definition to a debian wheezy machine, these packages are installed. (this is just the action of installing ‘asterisk’, which will pull the other packages automatically). This happens because the default value for the asterisk package is “latest”. You can set whatever version you want (as long as it’s reachable with the current apt source configuration).
  • #23: Other things that are happening: asterisk is configured to listen on UDP 5060 and TCP 5060. This can be changed by specifying udpbindaddr and tcpbindaddr attributes when instantiating the class.
  • #24: If you want to manage Asterisk’s configuration files outside of the basic trulabs module, You can do so by asking the module not to manage the configuration, and by Managing the desired configuration file(s) directly in Puppeteeze.
  • #25: In analogy with “But I want my config files”, you can specify a custom version. You need to set up apt sources properly.
  • #26: In analogy with what seen with kamailio, here’s the minimum amount of instructions needed to have an asterisk app up and running. You can try this easily inside a docker container.
  • #27: You can add this to your asterisk node definition, so that you protect access (iptables) to UDP 5060 from kamailio only. The arrow in this slide shows an interesting thing: a FACT. Facts are pre-set variables that you can use in your manifests. They make it possible for you to refer to local properties automatically. On the other hand, $kamailio_ip is a variable that you can set, and will determine, in this example, the f/w configuration.