We require assistance in building a set of Puppet scripts/manifests.
We would like to start with a bare Ubuntu server (currently 32-bit 12.04 LTS) and perform the following tasks:
* Configure SSH so that it runs on port 2022, disallows root login and disallows password logins
* Install a firewall (ufw) that only allows incoming TCP connections on ports 2022, 80 and 443, with UDP connections on port 60000
* Create a user, with a given public SSH key, that can run `sudo` without a password
* Create a user, with a given public SSH key, that has no rights to run `sudo`
* Installs monit and configures it to monitor disk space and CPU usage
* Installs logrotate and configures it to rotate the syslog and webserver log files
* Installs nginx and php-fpm
* Installs mysql and wordpress, and then installs and configures the WP-SuperCache plugin.
* Nginx and Wordpress should be configured to accept any incoming requests, regardless of domain
* We will require instructions on how to update the wordpress module when new versions of Wordpress are released
These should be a set of puppet modules that take parameters where required (for example, the user names, the SSH keys, any passwords). This is so we can dynamically generate a site.pp that installs all the modules with the required parameters.
The successful applicant should be technically competent, but also be good at communicating; we do not have any sysadmins at our company, so we would appreciate any advice and there is the possibility of building a long-term relationship.