252293b95bf439d2dd32ad09ff8e689e8dcd3805
[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  => present,
29         path    => "${rubbos_app_tools}/httpd-2.0.64.tar.gz",
30         source  => "puppet:///modules/rubbos_httpd/httpd-2.0.64.tar.gz",
31   }
32
33   exec {'tar xzvf ${rubbos_app_tools}/httpd-2.0.64.tar.gz':
34         cwd         => "${rubbos_app_tools}",
35         command     => "tar xzvf ${rubbos_app_tools}/httpd-2.0.64.tar.gz",
36         path        => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
37         subscribe   => File['${rubbos_app_tools}/httpd-2.0.64.tar.gz'],
38         refreshonly => true,
39   }
40
41   file {'${rubbos_app_tools}/tomcat-connectors-1.2.32-src.tar.gz':
42         ensure  => present,
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   }
46
47   exec {'tar xzvf ${rubbos_app_tools}/tomcat-connectors-1.2.32-src.tar.gz':
48         cwd         => "${rubbos_app_tools}",
49         command     => "tar xzvf ${rubbos_app_tools}/tomcat-connectors-1.2.32-src.tar.gz",
50         path        => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
51         subscribe   => File['${rubbos_app_tools}/tomcat-connectors-1.2.32-src.tar.gz'],
52         refreshonly => true
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         before          => Exec['${rubbos_app_tools}/httpd-2.0.64/configure'],
67   }
68
69   # Install apache http server
70   exec {'${rubbos_app_tools}/httpd-2.0.64/configure':
71         cwd         => "${rubbos_app_tools}/httpd-2.0.64",
72         command     => "${rubbos_app_tools}/httpd-2.0.64/configure --prefix=${rubbos_app_tools}/apache2 --enable-module=so --enable-so --with-mpm=worker",
73         path        => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
74         subscribe   => Exec['tar xzvf ${rubbos_app_tools}/httpd-2.0.64.tar.gz'],
75         refreshonly => true,
76   }
77
78   exec {'make httpd':
79         cwd         => "${rubbos_app_tools}/httpd-2.0.64",
80         command     => "make",
81         path        => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
82         subscribe   => Exec['${rubbos_app_tools}/httpd-2.0.64/configure'],
83         refreshonly => true,
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         subscribe   => Exec['make httpd'],
91         refreshonly => true,
92   }
93
94   # Install mod jk
95   exec {'${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native/configure':
96         cwd         => "${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native",
97         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",
98         path        => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
99         subscribe   => [
100                     Exec['tar xzvf ${rubbos_app_tools}/tomcat-connectors-1.2.32-src.tar.gz'],
101                     Exec['make install httpd']],
102         refreshonly => true,
103   }
104
105   exec {'make mod jk':
106         cwd         => "${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native",
107         command     => "make",
108         path        => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
109         subscribe   => Exec['${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native/configure'],
110         refreshonly => true,
111   }
112
113   exec {'make install mod jk':
114         cwd         => "${rubbos_app_tools}/tomcat-connectors-1.2.32-src/native",
115         command     => "make install",
116         path        => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
117         subscribe   => Exec['make mod jk'],
118         refreshonly => true,
119   }
120
121   # Config apache http server
122   file {'${rubbos_app_tools}/apache2/conf/httpd.conf':
123         ensure          => present,
124         path            => "${rubbos_app_tools}/apache2/conf/httpd.conf",
125         source          => "puppet:///modules/rubbos_httpd/apache_conf/httpd.conf",
126         show_diff       => false,
127         subscribe       => [Exec['make install httpd'],Exec['make install mod jk']],
128   }
129
130   file {'${rubbos_app_tools}/apache2/conf/workers.properties':
131         ensure          => present,
132         path            => "${rubbos_app_tools}/apache2/conf/workers.properties",
133         source          => "puppet:///modules/rubbos_httpd/apache_conf/workers.properties",
134         show_diff       => present,
135         subscribe       => [Exec['make install httpd'],Exec['make install mod jk']],
136   }
137
138   file {'${rubbos_app_tools}/apache2/htdocs/rubbos':
139         ensure          => present,
140         path            => "${rubbos_app_tools}/apache2/htdocs/rubbos",
141         recurse         => true,
142         source          => "puppet:///modules/rubbos_httpd/apache_files/rubbos_html",
143         show_diff       => false,
144         subscribe       => [Exec['make install httpd'],Exec['make install mod jk']],
145   }
146
147   # Ensure apache2 service is running
148   service {'apache http server':
149         ensure          => running,
150         hasstatus       => false,
151         status          => "ps aux | grep 'bin/httpd.*start$'",
152         start           => "${rubbos_app_tools}/apache2/bin/apachectl -f ${rubbos_app_tools}/apache2/conf/httpd.conf -k start",
153         stop            => "${rubbos_app_tools}/apache2/bin/apachectl -f ${rubbos_app_tools}/apache2/conf/httpd.conf -k stop",
154         subscribe       => [
155                         File['${rubbos_app_tools}/apache2/conf/httpd.conf'],
156                         File['${rubbos_app_tools}/apache2/conf/workers.properties']],
157   }
158
159 }