I want to create a puppet script to install Piwik on a dedicated server. I have never used puppet before, and the puppet-piwik module on github is not of much help…
For one, it’s supposed to work on a virtual machine (the docs are all about setting up a virtual box); I created a virtual box to play with, but I need it on a real server.
Then, nowhere does it say what to do with the module… “git clone” it - OK… what next? The docs say to see Readme. Readme says:
Er… all right… what do I do with this? Where do I write it, and how do I run it? How do I set up my own environment? E.g., I am on a CentOS server (so - I want yum, not apt), I want to set up my own server name etc.
Also, after the environment is set up, how do I install Piwik? I mean not just pull the files from git, but run the install and create an admin user with an auth token I already know (which is being used on another server to import data through the API)?
A puppet module to easily deploy piwik. Make sure you have a correct php5 installation. This module only downloads the latest piwik archive and extracts it to a given path.
You may have to install php5-fpm (via puppet-php) and configure your web server (maybe with a puppet nginx module).
Suggested Preparation
This module is as simple as possible. You should be able to choose your own php installation.
First I install the nodes/php module.
puppet module install nodes/php
Using this module I install the necessary php packages. For serving php I use php-fpm with nginx.
class { 'php::extension::mysql': }
class { 'php::extension::mcrypt': }
class { 'php::extension::gd': }
class { 'php::fpm::daemon':
ensure => running
}
Then I install piwik.
At last you may set up your vhost. This is depending on the server module you are using. I use my nginx fork
Usage
class { 'piwik':
path => "/srv/piwik",
user => "www-data",
}
Please note: After the first installation you have to initialize piwik by bootstrapping the database. For this use the setup gui in your browser according to the piwik installation manual.
Plugins
LoginLdap
LoginLdap is a plugin to enable ldap authentication.
Just make sure you have php-ldap installed. Either via a puppet module like nodes/php or via the package resource.