add puppet manifests for rubbos mysql module
[bottlenecks.git] / testsuites / rubbos / puppet_manifests / modules / rubbos_mysql / manifests / rubbos_mysql_on.pp
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}'],
+  }
+
+}