From 2313d6c41a0ed086c3035cd17c2ca6952960a521 Mon Sep 17 00:00:00 2001 From: wangyaoguang Date: Tue, 5 Apr 2016 11:04:50 +0800 Subject: [PATCH] add puppet manifests for rubbos mysql module Change-Id: I73cfeede59d590bca677def89d9fc3f2fe991889 JIRA: BOTTLENECK-54 --- .../modules/params/manifests/rubbos_params.pp | 9 ++- .../rubbos_common/manifests/rubbos_common_on.pp | 36 ++++----- .../rubbos_mysql/manifests/rubbos_mysql_off.pp | 78 +++++++++++++++++++ .../rubbos_mysql/manifests/rubbos_mysql_on.pp | 89 ++++++++++++++++++++++ 4 files changed, 191 insertions(+), 21 deletions(-) create mode 100644 testsuites/rubbos/puppet_manifests/modules/rubbos_mysql/manifests/rubbos_mysql_off.pp create mode 100644 testsuites/rubbos/puppet_manifests/modules/rubbos_mysql/manifests/rubbos_mysql_on.pp diff --git a/testsuites/rubbos/puppet_manifests/modules/params/manifests/rubbos_params.pp b/testsuites/rubbos/puppet_manifests/modules/params/manifests/rubbos_params.pp index db1fa828..95951433 100644 --- a/testsuites/rubbos/puppet_manifests/modules/params/manifests/rubbos_params.pp +++ b/testsuites/rubbos/puppet_manifests/modules/params/manifests/rubbos_params.pp @@ -11,8 +11,11 @@ ## 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" } diff --git a/testsuites/rubbos/puppet_manifests/modules/rubbos_common/manifests/rubbos_common_on.pp b/testsuites/rubbos/puppet_manifests/modules/rubbos_common/manifests/rubbos_common_on.pp index 8e7539eb..ca192f73 100644 --- a/testsuites/rubbos/puppet_manifests/modules/rubbos_common/manifests/rubbos_common_on.pp +++ b/testsuites/rubbos/puppet_manifests/modules/rubbos_common/manifests/rubbos_common_on.pp @@ -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 index 00000000..8401470b --- /dev/null +++ b/testsuites/rubbos/puppet_manifests/modules/rubbos_mysql/manifests/rubbos_mysql_off.pp @@ -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 index 00000000..15fe06c0 --- /dev/null +++ b/testsuites/rubbos/puppet_manifests/modules/rubbos_mysql/manifests/rubbos_mysql_on.pp @@ -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}'], + } + +} -- 2.16.6