2012-07-31 08:43:50 -04:00

321 lines
8.2 KiB
Puppet

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
class puppet-devcloud {
package { 'ebtables':
ensure => latest,
}
service { 'ebtables':
require => Package['ebtables'],
ensure => 'running',
enable => 'true',
}
package { 'iptables':
ensure => latest,
}
file { '/etc/iptables.save':
require => Package['iptables'],
ensure => 'file',
source => 'puppet:///modules/puppet-devcloud/iptables.save',
group => '0',
mode => '644',
owner => '0',
}
file { '/tmp/configebtables.sh':
ensure => 'file',
source => 'puppet:///modules/puppet-devcloud/configebtables.sh',
group => '0',
mode => '777',
owner => '0',
}
exec { "/tmp/configebtables.sh":
require => [
File['/tmp/configebtables.sh'],
Service['ebtables']
],
subscribe => Package['ebtables'],
refreshonly => true,
cwd => '/',
path => '/sbin/:/usr/bin/:/bin',
}
package { 'nfs-server':
ensure => latest,
}
file { '/opt/storage':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
}
file { '/opt/storage/secondary':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
}
file { '/opt/storage/secondary/template':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
}
file { '/opt/storage/secondary/template/tmpl':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
}
file { '/opt/storage/secondary/template/tmpl/1':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
}
file { '/opt/storage/secondary/template/tmpl/1/1':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
}
file { '/opt/storage/secondary/template/tmpl/1/5':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
}
file { '/etc/exports':
require => Package['nfs-server'],
ensure => 'file',
source => 'puppet:///modules/puppet-devcloud/exports',
mode => '644',
owner => '0',
group => '0',
}
service { 'nfs-kernel-server':
require => Package['nfs-server'],
ensure => 'running',
enable => 'true',
}
exec { '/usr/bin/wget http://download.cloud.com/templates/devcloud/defaulttemplates/1/dc68eb4c-228c-4a78-84fa-b80ae178fbfd.vhd -P /opt/storage/secondary/template/tmpl/1/1/':
creates => '/opt/storage/secondary/template/tmpl/1/1/dc68eb4c-228c-4a78-84fa-b80ae178fbfd.vhd',
require => File['/opt/storage/secondary/template/tmpl/1/1/'],
timeout => '0',
}
exec { '/usr/bin/wget http://download.cloud.com/templates/devcloud/defaulttemplates/1/template.properties -P /opt/storage/secondary/template/tmpl/1/1/':
creates => '/opt/storage/secondary/template/tmpl/1/1/template.properties',
require => File['/opt/storage/secondary/template/tmpl/1/1/'],
}
exec { '/usr/bin/wget http://download.cloud.com/templates/devcloud/defaulttemplates/5/ce5b212e-215a-3461-94fb-814a635b2215.vhd -P /opt/storage/secondary/template/tmpl/1/5/':
creates => '/opt/storage/secondary/template/tmpl/1/5/ce5b212e-215a-3461-94fb-814a635b2215.vhd',
require => File['/opt/storage/secondary/template/tmpl/1/5/'],
timeout => '0',
}
exec { '/usr/bin/wget http://download.cloud.com/templates/devcloud/defaulttemplates/5/template.properties -P /opt/storage/secondary/template/tmpl/1/5/':
creates => '/opt/storage/secondary/template/tmpl/1/5/template.properties',
require => File['/opt/storage/secondary/template/tmpl/1/5/'],
}
exec { 'getecho':
command => '/usr/bin/wget http://download.cloud.com/templates/devcloud/echo -P /usr/lib/xcp/plugins/',
creates => '/usr/lib/xcp/plugins/echo',
}
exec { '/bin/chmod -R 777 /usr/lib/xcp':
require => Exec['getecho'],
}
file { '/opt/storage/primary':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
}
file { '/tmp/configlocalstorage.sh':
ensure => 'file',
group => '0',
mode => '777',
owner => '0',
source => 'puppet:///modules/puppet-devcloud/configlocalstorage.sh',
}
exec { "configlocal":
require => [
File['/opt/storage/primary'],
File['/tmp/configlocalstorage.sh']
],
command => '/tmp/configlocalstorage.sh',
cwd => '/',
}
file { '/tmp/configvnc.sh':
ensure => 'file',
source => 'puppet:///modules/puppet-devcloud/configvnc.sh',
mode => '777',
group => '0',
owner => '0',
}
exec { "configvnc":
require => File['/tmp/configvnc.sh'],
command => '/tmp/configvnc.sh',
cwd => '/',
}
package { 'git':
ensure => latest,
}
package { 'unzip':
ensure => latest,
}
package { 'mysql-server':
ensure => latest,
}
package { 'ant':
ensure => latest,
}
package { 'openjdk-6-jdk':
ensure => latest,
}
file { '/opt/cloudstack':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
}
file { '/tmp/updatecode.sh':
ensure => 'file',
source => 'puppet:///modules/puppet-devcloud/updatecode.sh',
mode => '777',
owner => '0',
group => '0',
}
exec { 'get_code':
require => [
Package['git'],
File['/opt/cloudstack/'],
File['/tmp/updatecode.sh']
],
command => '/tmp/updatecode.sh',
cwd => '/opt/cloudstack/',
timeout => '0',
}
file { '/opt/cloudstack/incubator-cloudstack/target':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
require => Exec['get_code'],
}
file { '/opt/cloudstack/incubator-cloudstack/dist':
ensure => 'directory',
group => '0',
mode => '755',
owner => '0',
require => Exec['get_code'],
}
exec { 'downloadtomcat':
command => '/usr/bin/wget http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.32/bin/apache-tomcat-6.0.32.zip -P /opt/cloudstack/',
creates => '/opt/cloudstack/apache-tomcat-6.0.32.zip',
require => File['/opt/cloudstack/'],
timeout => '0',
}
exec { "unziptomcat":
require => [
Package['unzip'],
Exec["downloadtomcat"]
],
creates => "/opt/cloudstack/apache-tomcat-6.0.32",
command => "/usr/bin/unzip apache-tomcat-6.0.32.zip",
cwd => "/opt/cloudstack",
timeout => '0',
}
exec { "catalina_home":
require => Exec["unziptomcat"],
unless => '/bin/grep CATALINA_HOME /root/.bashrc',
command => '/bin/echo "export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32" >> /root/.bashrc',
cwd => '/',
}
package { 'mkisofs':
ensure => latest,
}
exec { "build_cloudstack":
require => [
Package['ant'],
Exec["catalina_home"],
File['/opt/cloudstack/incubator-cloudstack/dist'],
File['/opt/cloudstack/incubator-cloudstack/target'],
Package['mkisofs']
],
command => "/usr/bin/ant clean-all build-all deploy-server deploydb",
cwd => "/opt/cloudstack/incubator-cloudstack/",
timeout => '0',
}
file { '/opt/cloudstack/startdevcloud.sh':
ensure => 'file',
source => 'puppet:///modules/puppet-devcloud/startdevcloud.sh',
mode => '777',
owner => '0',
group => '0',
}
exec { "start_cloudstack":
require => [
Exec["build_cloudstack"],
File["/opt/cloudstack/startdevcloud.sh"]
],
command => "/opt/cloudstack/startdevcloud.sh",
cwd => "/opt/cloudstack/",
}
}