際際滷

際際滷Share 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
Youre ready to hack

Well discuss how to hack MetaCPAN in
next months presentation

Monday, 11 November, 13

More Related Content

The MetaCPAN VM for Dummies Part One (Installation)