The MetaCPAN VM Part II (Using the VM)
- 1. The MetaCPAN VM
Part II
Olaf Alders @wundercounter
Toronto Perl Mongers
Jan 30, 2014
Thursday, 30 January, 14
- 3. Starting your VM
cd metacpan/metacpan-developer
vagrant up
vagrant ssh
Thursday, 30 January, 14
- 4. Just become metacpan
For almost everything, you'll be
better off as the metacpan user
So, "sudo su metacpan" whenever you
start an SSH session
Thursday, 30 January, 14
- 6. Running api tests
# run Elasticsearch in the foreground
# you don't have to stop elasticsearch, but it saves some resources
vagrant ssh
sudo /etc/init.d/elasticsearch stop
sudo /opt/elasticsearch-0.20.2/bin/elasticsearch -f
-Des.http.port=9900 -Des.cluster.name=testing
# log in with a new session to run the tests
# don't pass the -r flag to prove
vagrant ssh
sudo su metacpan
cd ~/api.metacpan.org
source ~/.metacpanrc
prove -lv t
Thursday, 30 January, 14
- 10. Installing Modules
# front end deps
sudo su metacpan
cd ~/metacpan.org
sudo ~/bin/install_modules --installdeps .
# api deps
cd ~/api.metacpan.org
sudo ~/bin/install_modules --installdeps .
# install some arbitrary module
sudo ~/bin/install_modules Acme::Urinal
Thursday, 30 January, 14
- 11. Prefer plackup?
# front end
sudo su metacpan
cd ~/metacpan.org
/etc/init.d/metacpan-www stop
plackup -R lib --port 5001
# api
cd ~/api.metacpan.org
/etc/init.d/metacpan-api stop
plackup -R lib --port 5000
Thursday, 30 January, 14
- 12. Prefer carton?
# assumes you are "metacpan" and have stopped services
# front end
cd ~/metacpan.org
carton install
carton exec plackup -R lib --port 5001
# api
cd ~/api.metacpan.org
carton install
carton exec plackup -R lib --port 5000
Thursday, 30 January, 14
- 14. Playing with Puppet
# on the host, in the dev directory you created
cd metacpan/metacpan-puppet
# let's add a new binary (ncdu) to the system
vi modules/metacpan/manifests/packages.pp
package { ncdu: ensure => present }
cd ../../metacpan-developer
vagrant provision
Thursday, 30 January, 14