summaryrefslogtreecommitdiff
path: root/global/overlay/etc/puppet/modules/sunet/manifests/wordpress.pp
blob: 8465e79996debb3924a7d5fd8b19f2889299a4f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# a basic wp setup using docker

define sunet::wordpress (
$name              = undef, 
$db_host           = undef,
$wordpress_version = "4.1.1", 
$myqsl_version     = "5.7") 
{
   $db_hostname = $db_host ? {
      undef   => "mysql_${sanitized_name}.docker",
      default => $db_host
   }
   $sanitized_name = regsubst($name, '[^0-9A-Za-z.\-]', '-', 'G')
   $pwd = hiera('${sanitized_name}_db_password','NOT_SET_IN_HIERA')
   file {"/data/${sanitized_name}/html": ensure => directory }
   sunet::docker_run {
      name        => "wordpress_${sanitized_name}",
      image       => "wordpress",
      imagetag    => $wordpress_version,
      volumes     => ["/data/${sanitized_name}/html:/var/www/html"],
      port        => ["8080:80"]
      environment => [ "WORDPRESS_DB_HOST=${db_hostname}",
                       "WORDPRESS_DB_USER=${sanitized_name}",
                       "WORDPRESS_DB_NAME=${sanitized_name}",
                       "WORDPRESS_DB_PASSWORD=${pwd}" ]
   }

   if (!$db_host) {
      file {"/data/${sanitized_name}/db": ensure => directory }
      sunet::docker_run {
          name        => "mysql_${sanitized_name}",
          image       => "mysql",
          imagetag    => $mysql_version,
          volumes     => ["/data/${sanitized_name}/db:/var/lib/mysql"],
          environment => ["MYSQL_USER=${sanitized_name}",
                          "MYSQL_PASSWORD=${pwd}",
                          "MYSQL_ROOT_PASSWORD=${pwd}",
                          "MYSQL_DATABASE=${sanitized_name}"]
      }
   }
}