add puppet manifests and conf files for rubbos httpd module
[bottlenecks.git] / testsuites / rubbos / puppet_manifests / modules / rubbos_httpd / manifests / rubbos_httpd_on.pp
1 #############################################################################
2 # Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
3 #
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
9
10
11 class rubbos_httpd::rubbos_httpd_on {
12
13   include params::rubbos_params
14   require rubbos_common::rubbos_common_on
15
16   # Declare some variables
17   $rubbos_app_tools     = $params::rubbos_params::rubbos_app_tools
18
19   # Prepare apache2 directory
20   exec {'mkdir ${rubbos_app_tools}/apache2':
21         command => "mkdir -p ${rubbos_app_tools}/apache2",
22         creates => "${rubbos_app_tools}/apache2",
23         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
24   }
25
26   # Prepare packages
27   file {'${rubbos_app_tools}/httpd-2.0.64.tar.gz':
28         ensure  => file,
29         path    => "${rubbos_app_tools}/httpd-2.0.64.tar.gz",
30         source  => "puppet:///modules/rubbos_httpd/httpd-2.0.64.tar.gz",
31         backup  => false,
32   }
33
34   exec {'tar xzvf ${rubbos_app_tools}/httpd-2.0.64.tar.gz':
35         cwd     => "${rubbos_app_tools}",
36         command => "tar xzvf ${rubbos_app_tools}/httpd-2.0.64.tar.gz",
37         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
38         require => File['${rubbos_app_tools}/httpd-2.0.64.tar.gz'],
39   }
40
41   file {'${rubbos_app_tools}/tomcat-connectors-1.2.32-src.tar.gz':
42         ensure  => file,
43         path    => "${rubbos_app_tools}/tomcat-connectors-1.2.32-src.tar.gz",
44         source  => "puppet:///modules/rubbos_httpd/tomcat-connectors-1.2.32-src.tar.gz",
45         backup  => false,
46   }
47
48   exec {'tar xzvf ${rubbos_app_tools}/tomcat-connectors-1.2.32-src.tar.gz':
49         cwd     => "${rubbos_app_tools}",
50         command => "tar xzvf ${rubbos_app_tools}/tomcat-connectors-1.2.32-src.tar.gz",
51         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
52         require => File['${rubbos_app_tools}/tomcat-connectors-1.2.32-src.tar.gz'],
53   }
54
55   # Add user and group
56   group {'apache':
57         name    => "apache",
58         ensure  => present,
59         before  => User['apache'],
60   }
61   user {'apache':
62         name            => "apache",
63         ensure          => present,
64         groups          => "apache",
65         password        => "apache",
66   }
67
68   # Install apache http server
69   exec {'${rubbos_app_tools}/httpd-2.0.64/configure':
70         cwd     => "${rubbos_app_tools}/httpd-2.0.64",
71         command => "${rubbos_app_tools}/httpd-2.0.64/configure --prefix=${rubbos_app_tools}/apache2 --enable-module=so --enable-so --with-mpm=worker",
72         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
73         require => [
74                 Exec['tar xzvf ${rubbos_app_tools}/httpd-2.0.64.tar.gz'],
75                 User['apache'],
76                 Exec['mkdir ${rubbos_app_tools}/apache2']],
77   }
78
79   exec {'make httpd':
80         cwd     => "${rubbos_app_tools}/httpd-2.0.64",
81         command => "make",
82         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
83         require => Exec['${rubbos_app_tools}/httpd-2.0.64/configure'],
84   }
85
86   exec {'make install httpd':
87         cwd     => "${rubbos_app_tools}/httpd-2.0.64",
88         command => "make install",
89         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
90         require => Exec['make httpd'],
91   }
92
93   # Install mod jk
94   exec {'${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native/configure':
95         cwd     => "${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native",
96         command => "${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native/configure --with-apxs=${rubbos_app_tools}/apache2/bin/apxs --enable-jni --with-java-home=${rubbos_app_tools}/jdk1.6.0_27",
97         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
98         require => Exec['make install httpd'],
99   }
100
101   exec {'make mod jk':
102         cwd     => "${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native",
103         command => "make",
104         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
105         require => Exec['${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native/configure'],
106   }
107
108   exec {'make install mod jk':
109         cwd     => "${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native",
110         command => "make install",
111         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
112         require => Exec['make mod jk'],
113   }
114
115   # Config apache http server
116   file {'${rubbos_app_tools}/apache2/conf/httpd.conf':
117         ensure          => file,
118         path            => "${rubbos_app_tools}/apache2/conf/httpd.conf",
119         source          => "puppet:///modules/rubbos_httpd/apache_conf/httpd.conf",
120         show_diff       => false,
121         require         => Exec['make install mod jk'],
122   }
123
124   file {'${rubbos_app_tools}/apache2/conf/workers.properties':
125         ensure          => file,
126         path            => "${rubbos_app_tools}/apache2/conf/workers.properties",
127         source          => "puppet:///modules/rubbos_httpd/apache_conf/workers.properties",
128         show_diff       => false,
129         require         => Exec['make install mod jk'],
130   }
131
132   file {'${rubbos_app_tools}/apache2/htdocs/rubbos':
133         ensure          => directory,
134         path            => "${rubbos_app_tools}/apache2/htdocs/rubbos",
135         recurse         => true,
136         source          => "puppet:///modules/rubbos_httpd/apache_files/rubbos_html",
137         show_diff       => false,
138         require         => Exec['make install mod jk'],
139   }
140
141   # Ensure apache2 service is running
142   service {'apache http server':
143         ensure          => running,
144         hasstatus       => false,
145         status          => "ps aux | grep 'bin/httpd.*start$'",
146         start           => "${rubbos_app_tools}/apache2/bin/apachectl -f ${rubbos_app_tools}/apache2/conf/httpd.conf -k start",
147         stop            => "${rubbos_app_tools}/apache2/bin/apachectl -f ${rubbos_app_tools}/apache2/conf/httpd.conf -k stop",
148         require         => File['${rubbos_app_tools}/apache2/htdocs/rubbos'],
149   }
150
151 }