add puppet manifests for rubbos mysql module 71/11871/1
authorwangyaoguang <sunshine.wang@huawei.com>
Tue, 5 Apr 2016 03:04:50 +0000 (11:04 +0800)
committerwangyaoguang <sunshine.wang@huawei.com>
Tue, 5 Apr 2016 03:07:45 +0000 (11:07 +0800)
Change-Id: I73cfeede59d590bca677def89d9fc3f2fe991889
JIRA: BOTTLENECK-54

testsuites/rubbos/puppet_manifests/modules/params/manifests/rubbos_params.pp
testsuites/rubbos/puppet_manifests/modules/rubbos_common/manifests/rubbos_common_on.pp
testsuites/rubbos/puppet_manifests/modules/rubbos_mysql/manifests/rubbos_mysql_off.pp [new file with mode: 0644]
testsuites/rubbos/puppet_manifests/modules/rubbos_mysql/manifests/rubbos_mysql_on.pp [new file with mode: 0644]

index db1fa82..9595143 100644 (file)
 ## Variables used in {rubbos} test suite
 class params::rubbos_params {
 
-  $rubbos_app          = "/bottlenecks/rubbos/app"
-  $rubbos_app_tools    = "/bottlenecks/rubbos/app_tools"
-  $rubbos_home         = "/bottlenecks/rubbos/app/RUBBoS"
+  $rubbos_app           = "/bottlenecks/rubbos/app"
+  $rubbos_app_tools     = "/bottlenecks/rubbos/app_tools"
+  $rubbos_home          = "/bottlenecks/rubbos/app/RUBBoS"
+  $mysql_user_group     = "mysql"
+  $mysql_user_name      = "mysql"
+  $mysql_user_password  = "mysql"
 
 }
index 8e7539e..ca192f7 100644 (file)
@@ -9,13 +9,13 @@
 
 
 class rubbos_common::rubbos_common_on {
-
+  
   include params::rubbos_params
 
   # Declare some variables
-  $rubbos_app          = $params::rubbos_params::rubbos_app
-  $rubbos_app_tool     = $params::rubbos_params::rubbos_app_tool
-  $rubbos_home         = $params::rubbos_params::rubbos_home
+  $rubbos_app           = $params::rubbos_params::rubbos_app
+  $rubbos_app_tools     = $params::rubbos_params::rubbos_app_tools
+  $rubbos_home          = $params::rubbos_params::rubbos_home
 
   # Prepare RUBBOS_APP folder
   exec {'mkdir -p ${rubbos_app}':
@@ -24,19 +24,19 @@ class rubbos_common::rubbos_common_on {
         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
   }
 
-  # Prepare RUBBOS_APP_TOOLS folder
-  exec {'mkdir -p ${rubbos_app_tool}':
-        command => "mkdir -p ${rubbos_app_tool}",
-        unless  => "test -d ${rubbos_app_tool}",
+  # Prepare RUBBOS_APP_TOOLS folder 
+  exec {'mkdir -p ${rubbos_app_tools}':
+        command => "mkdir -p ${rubbos_app_tools}",
+        unless  => "test -d ${rubbos_app_tools}",
         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
   }
 
   # Prepare RUBBOS_HOME folder
   exec {'mkdir -p ${rubbos_home}':
-        command        => "mkdir -p ${rubbos_home}",
-        unless => "test -d ${rubbos_home}",
-        path   => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
-        require        => Exec['mkdir -p ${rubbos_app}'],
+        command => "mkdir -p ${rubbos_home}",
+        unless  => "test -d ${rubbos_home}",
+        path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+        require => Exec['mkdir -p ${rubbos_app}'],
   }
 
   # Prepare common packages:
@@ -54,19 +54,19 @@ class rubbos_common::rubbos_common_on {
   }
 
   # Install jdk
-  file {'${rubbos_app_tool}/jdk-6u27-linux-x64.bin':
+  file {'${rubbos_app_tools}/jdk-6u27-linux-x64.bin':
         ensure  => file,
-        path    => "${rubbos_app_tool}/jdk-6u27-linux-x64.bin",
+        path    => "${rubbos_app_tools}/jdk-6u27-linux-x64.bin",
         source  => "puppet:///modules/rubbos_common/jdk-6u27-linux-x64.bin",
         mode    => 0711,
         backup  => false,
-       require => Exec['mkdir -p ${rubbos_app_tool}'],
+        require => Exec['mkdir -p ${rubbos_app_tools}'],
   }
   exec {'jdk-6u27-linux-x64.bin':
-        cwd     => "${rubbos_app_tool}",
-        command => "${rubbos_app_tool}/jdk-6u27-linux-x64.bin",
+        cwd     => "${rubbos_app_tools}",
+        command => "${rubbos_app_tools}/jdk-6u27-linux-x64.bin",
         path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
-        require => File['${rubbos_app_tool}/jdk-6u27-linux-x64.bin'],
+        require => File['${rubbos_app_tools}/jdk-6u27-linux-x64.bin'],
   }
 
 }
diff --git a/testsuites/rubbos/puppet_manifests/modules/rubbos_mysql/manifests/rubbos_mysql_off.pp b/testsuites/rubbos/puppet_manifests/modules/rubbos_mysql/manifests/rubbos_mysql_off.pp
new file mode 100644 (file)
index 0000000..8401470
--- /dev/null
@@ -0,0 +1,78 @@
+#############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+class rubbos_mysql::rubbos_mysql_off {
+
+  include params::rubbos_params
+
+  # Declare some variables
+  $rubbos_app_tools     = $params::rubbos_params::rubbos_app_tools
+  $mysql_user_group     = $params::rubbos_params::mysql_user_group
+  $mysql_user_name      = $params::rubbos_params::mysql_user_name
+  $mysql_user_password  = $params::rubbos_params::mysql_user_password
+
+  file {'${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64.tar.gz':
+        path    => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64.tar.gz",
+        ensure  => absent,
+        backup  => false,
+  }
+
+  # Stop mysql
+  service {'stop mysql':
+        ensure          => stopped,
+        hasstatus       => false,
+        provider        => "upstart",
+        status          => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64/support-files/mysql.server status | grep 'MySQL running'",
+        start           => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64/bin/mysqld_safe &",
+        stop            => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64/bin/mysqladmin shutdown",
+  }
+
+  file {'${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64':
+        ensure  => absent,
+        path    => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64",
+        force   => true,
+        recurse => true,
+        backup  => false,
+        require => Service['stop mysql'],
+  }
+
+  # Remove user and group
+  user {'${mysql_user_name}':
+        name            => "${mysql_user_name}",
+        ensure          => absent,
+        groups          => "${mysql_user_group}",
+        password        => "${mysql_user_password}",
+        require         => File['${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64'],
+  }
+
+  group {'${mysql_user_group}':
+        name    => "${mysql_user_group}",
+        ensure  => absent,
+        require => User['${mysql_user_name}'],
+  }
+
+  # Remove softlink
+  exec {'rm -rf /usr/local/mysql':
+        cwd     => "/usr/local",
+        command => "rm -rf /usr/local/mysql",
+        onlyif  => "test -h /usr/local/mysql",
+        path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+        require => Group['mysql'],
+  }
+
+  # Remove packages
+  package {'libaio-dev':
+        ensure  => absent,
+  }
+  package {'libaio1':
+        ensure  => absent,
+  }
+
+}
diff --git a/testsuites/rubbos/puppet_manifests/modules/rubbos_mysql/manifests/rubbos_mysql_on.pp b/testsuites/rubbos/puppet_manifests/modules/rubbos_mysql/manifests/rubbos_mysql_on.pp
new file mode 100644 (file)
index 0000000..15fe06c
--- /dev/null
@@ -0,0 +1,89 @@
+#############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+class rubbos_mysql::rubbos_mysql_on {
+
+  include params::rubbos_params
+  require rubbos_common::rubbos_common_on
+
+  # Declare some variables
+  $rubbos_app           = $params::rubbos_params::rubbos_app
+  $rubbos_app_tools     = $params::rubbos_params::rubbos_app_tools
+  $rubbos_home          = $params::rubbos_params::rubbos_home
+  $mysql_user_group     = $params::rubbos_params::mysql_user_group
+  $mysql_user_name      = $params::rubbos_params::mysql_user_name
+  $mysql_user_password  = $params::rubbos_params::mysql_user_password
+
+  # Add group and user
+  group {'${mysql_user_group}':
+        name    => "${mysql_user_group}",
+        ensure  => present,
+        before  => User['${mysql_user_name}'],
+  }
+  user {'${mysql_user_name}':
+        name            => "${mysql_user_name}",
+        ensure          => present,
+        groups          => "${mysql_user_group}",
+        password        => "${mysql_user_password}",
+        before          => File['${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64.tar.gz'],
+  }
+
+  # Prepare needed packages for mysql installation
+  package {'libaio-dev':
+        ensure  => installed,
+        before  => Exec['scripts/mysql_install_db --user=${mysql_user_name}'],
+  }
+  package {'libaio1':
+        ensure  => installed,
+        before  => Exec['scripts/mysql_install_db --user=${mysql_user_name}'],
+  }
+
+  # Prepare and install mysql
+  file {'${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64.tar.gz':
+        path    => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64.tar.gz",
+        ensure  => present,
+        source  => "puppet:///modules/rubbos_mysql/mysql-5.5.46-linux2.6-x86_64.tar.gz",
+        backup  => false,
+        notify  => Exec['tar -xf ${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64.tar.gz'],
+  }
+
+  exec {'tar -xf ${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64.tar.gz':
+        cwd     => "${rubbos_app_tools}",
+        command => "tar -xf ${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64.tar.gz",
+        creates => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64/scripts/mysql_install_db",
+        path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+  }
+
+  exec {'ln -s ${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64 mysql':
+        cwd             => "/usr/local",
+        command         => "ln -s ${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64 mysql",
+        path            => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+        subscribe       => Exec['tar -xf ${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64.tar.gz'],
+  }
+
+  exec {'scripts/mysql_install_db --user=${mysql_user_name}':
+        cwd     => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64",
+        command => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64/scripts/mysql_install_db --user=${mysql_user_name}",
+        path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+        require => Exec['ln -s ${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64 mysql'],
+  }
+
+  # Start mysql service
+  service {'mysql':
+        ensure          => running,
+        hasstatus       => false,
+        provider        => upstart,
+        status          => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64/support-files/mysql.server status | grep 'MySQL running'",
+        start           => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64/bin/mysqld_safe &",
+        stop            => "${rubbos_app_tools}/mysql-5.5.46-linux2.6-x86_64/bin/mysqladmin shutdown",
+        require         => Exec['scripts/mysql_install_db --user=${mysql_user_name}'],
+  }
+
+}