SlideShare a Scribd company logo
The MetaCPAN VM
(for Dummies?)

Olaf Alders @wundercounter
Toronto Perl Mongers
Oct 24, 2013

Monday, 11 November, 13
Why bother?
Installation and configuration from
scratch is non-trivial
Remove some of the up-front cost to
contributors
Develop in an environment which
closely mimics deployment

Monday, 11 November, 13
Software
Requirements
VirtualBox
Vagrant
git

Monday, 11 November, 13
Hardware
Requirements
Less than 1 GB hard disk space
Less than 1 GB of RAM
Some arbitrary amount of CPU

Monday, 11 November, 13
That was the minimum

As far as hardware goes, you can
scale up
Depends on how far you want to take
this

Monday, 11 November, 13
The MetaCPAN Stack
Debian
puppet
ElasticSearch
Catalyst
CPAN or miniCPAN or even some
arbitrary CPAN dirs
perlbrew

Monday, 11 November, 13
The Meta Pieces
cpan-api (the original MetaCPAN)
metacpan-web
metacpan-puppet
metacpan-developer
metacpan-examples

Monday, 11 November, 13
How easy is it?
mkdir metacpan && cd metacpan
git
git
git
git

clone
clone
clone
clone

git://github.com/CPAN-API/metacpan-puppet.git
git://github.com/CPAN-API/cpan-api.git
git://github.com/CPAN-API/metacpan-web.git
git://github.com/CPAN-API/metacpan-explorer.git

cd ..
git clone git://github.com/CPAN-API/metacpan-developer.git
cd metacpan-developer
vagrant up && vagrant ssh

Monday, 11 November, 13
Guest vs Host

Host: your laptop, PC, whatever. your
hardware
Guest: the installed VM

Monday, 11 November, 13
So what?

Edit code using the tools you already
have installed on the *Host*
What?

Monday, 11 November, 13
No SSH setup
required

vagrant ssh “just works”

Monday, 11 November, 13
Port Forwarding
“Just works”

cpan-api

http://localhost:5000

metacpan-web http://localhost:5001

Monday, 11 November, 13
Sharing files
without scp
Files you add to the metacpandeveloper folder will be available
in /vagrant
Files you add to /vagrant will be
available in metacpan-developer

Monday, 11 November, 13
Managing services on
the guest
stop, start, restart services
/etc/init.d/metacpan-www
/etc/init.d/metacpan-api
/etc/init.d/elasticsearch

Monday, 11 November, 13
Does it work?

http://localhost:5001
http://0.0.0.0:5001

Monday, 11 November, 13
Having trouble?

The metacpan-developer README has
lots of great troubleshooting tips

Monday, 11 November, 13
Maybe modules are
missing?
if the dependencies have changed
since the Vagrant boxfile was built,
you may be missing some modules
sudo /home/metacpan/bin/install_modules

Monday, 11 November, 13
You’re ready to hack

We’ll discuss how to hack MetaCPAN in
next month’s presentation

Monday, 11 November, 13

More Related Content

PDF
No Hugging, No Learning
ODP
Mangling
PDF
The MetaCPAN VM Part II (Using the VM)
PDF
Maven 3.0 at Øredev
PDF
Learning Puppet Chapter 1
PDF
Zero Downtime Deployment with Ansible
KEY
Cramp websockets
PPT
Write book in markdown
No Hugging, No Learning
Mangling
The MetaCPAN VM Part II (Using the VM)
Maven 3.0 at Øredev
Learning Puppet Chapter 1
Zero Downtime Deployment with Ansible
Cramp websockets
Write book in markdown

What's hot (20)

ODP
Continuous integration with Git & CI Joe
PDF
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
PDF
Towards Continuous Deployment with Django
PDF
Puppet for SysAdmins
PDF
Continuous Integration Testing in Django
PDF
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
PDF
Zero Downtime Deployment with Ansible
PDF
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
PPT
AppengineJS
PDF
DevOps(3) : Ansible - (MOSG)
PDF
Instruction: dev environment
PPT
Python virtualenv & pip in 90 minutes
PDF
Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...
PDF
PHP-VCR behat case study
PPTX
Docker security configuration
ODP
Capifony. Minsk PHP MeetUp #11
PPT
Assurer - a pluggable server testing/monitoring framework
PDF
PHP-VCR Lightningtalk
PDF
Flask Introduction - Python Meetup
PDF
Frontend JS workflow - Gulp 4 and the like
Continuous integration with Git & CI Joe
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
Towards Continuous Deployment with Django
Puppet for SysAdmins
Continuous Integration Testing in Django
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Zero Downtime Deployment with Ansible
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
AppengineJS
DevOps(3) : Ansible - (MOSG)
Instruction: dev environment
Python virtualenv & pip in 90 minutes
Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...
PHP-VCR behat case study
Docker security configuration
Capifony. Minsk PHP MeetUp #11
Assurer - a pluggable server testing/monitoring framework
PHP-VCR Lightningtalk
Flask Introduction - Python Meetup
Frontend JS workflow - Gulp 4 and the like
Ad

Similar to The MetaCPAN VM for Dummies Part One (Installation) (20)

PDF
Security Testing Using Infrastructure-As-Code
PDF
Instant LAMP Stack with Vagrant and Puppet
PDF
Create Disposable Test Environments with Vagrant and Puppet
PDF
Create Disposable Test Environments with Vagrant and Puppet
PPT
PDF
Puppet and Vagrant in development
PPTX
Virtualization for Developers
PDF
Vagrant-Binding JUG Dortmund
PDF
Intro to vagrant
PDF
Vagrant and Puppet primer - NWDUG Sept 2013
PDF
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
ODP
PPTX
Harmonious Development: Via Vagrant and Puppet
PPTX
Virtualization for Developers
PDF
CPANci: Continuous Integration for CPAN
PDF
Dev/Stage/Prod Parity with Vagrant
PPTX
Vagrant
PPTX
Environments line-up! Vagrant & Puppet 101
PDF
Getting started with puppet and vagrant (1)
PPTX
Virtualization for Developers
Security Testing Using Infrastructure-As-Code
Instant LAMP Stack with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and Puppet
Puppet and Vagrant in development
Virtualization for Developers
Vagrant-Binding JUG Dortmund
Intro to vagrant
Vagrant and Puppet primer - NWDUG Sept 2013
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
Harmonious Development: Via Vagrant and Puppet
Virtualization for Developers
CPANci: Continuous Integration for CPAN
Dev/Stage/Prod Parity with Vagrant
Vagrant
Environments line-up! Vagrant & Puppet 101
Getting started with puppet and vagrant (1)
Virtualization for Developers
Ad

Recently uploaded (20)

PDF
Modernizing your data center with Dell and AMD
PDF
Machine learning based COVID-19 study performance prediction
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Approach and Philosophy of On baking technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Empathic Computing: Creating Shared Understanding
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Big Data Technologies - Introduction.pptx
PPT
Teaching material agriculture food technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Modernizing your data center with Dell and AMD
Machine learning based COVID-19 study performance prediction
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
NewMind AI Monthly Chronicles - July 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?
Approach and Philosophy of On baking technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation_ Review paper, used for researhc scholars
Empathic Computing: Creating Shared Understanding
Diabetes mellitus diagnosis method based random forest with bat algorithm
The AUB Centre for AI in Media Proposal.docx
Spectral efficient network and resource selection model in 5G networks
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
MYSQL Presentation for SQL database connectivity
Big Data Technologies - Introduction.pptx
Teaching material agriculture food technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

The MetaCPAN VM for Dummies Part One (Installation)