diff --git a/.nodeset.yml b/.nodeset.yml deleted file mode 100644 index 767f9cd2f..000000000 --- a/.nodeset.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- -default_set: 'centos-64-x64' -sets: - 'centos-59-x64': - nodes: - "main.foo.vm": - prefab: 'centos-59-x64' - 'centos-64-x64': - nodes: - "main.foo.vm": - prefab: 'centos-64-x64' - 'fedora-18-x64': - nodes: - "main.foo.vm": - prefab: 'fedora-18-x64' - 'debian-607-x64': - nodes: - "main.foo.vm": - prefab: 'debian-607-x64' - 'debian-70rc1-x64': - nodes: - "main.foo.vm": - prefab: 'debian-70rc1-x64' - 'ubuntu-server-10044-x64': - nodes: - "main.foo.vm": - prefab: 'ubuntu-server-10044-x64' - 'ubuntu-server-12042-x64': - nodes: - "main.foo.vm": - prefab: 'ubuntu-server-12042-x64' diff --git a/README.md b/README.md index 1ba565a28..018afe479 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ $override_options = { For options that you would traditionally represent in this format: -``` +```ini [section] thing = X ``` @@ -88,7 +88,7 @@ $override_options = { produces -```puppet +```ini [mysqld] replicate-do-db = base1 replicate-do-db = base2 @@ -176,7 +176,7 @@ mysql_user { 'root@::1': To instantiate databases and users on an existing MySQL server, you need a `.my.cnf` file in `root`'s home directory. This file must specify the remote server address and credentials. For example: -```puppet +```ini [client] user=root host=localhost @@ -252,7 +252,7 @@ yumrepo { 'percona': gpgcheck => 1, } -class {'mysql::server': +class { 'mysql::server': package_name => 'Percona-Server-server-57', service_name => 'mysql', config_file => '/etc/my.cnf', @@ -266,7 +266,7 @@ class {'mysql::server': mysqld_safe => { log-error => '/var/log/mysqld.log', }, - } + }, } # Note: Installing Percona-Server-server-57 also installs Percona-Server-client-57. @@ -349,7 +349,7 @@ class { 'mysql::server': mysqld_safe => { 'log-error' => '/var/log/mysql/mariadb.log', }, - } + }, } # Dependency management. Only use that part if you are installing the repository @@ -367,7 +367,7 @@ This example shows how to install the MariaDB client and all of the bindings at Specify the version of the package you want with the `package_ensure` parameter. ```puppet -class {'::mysql::client': +class { 'mysql::client': package_name => 'mariadb-client', package_ensure => '1:10.3.21+maria~xenial', bindings_enable => true, @@ -376,7 +376,7 @@ class {'::mysql::client': # Dependency management. Only use that part if you are installing the repository as shown in the Preliminary step of this example. Apt::Source['mariadb'] ~> Class['apt::update'] -> -Class['::mysql::client'] +Class['mysql::client'] ``` ### Install MySQL Community server on CentOS @@ -391,7 +391,7 @@ You can install MySQL Community Server on CentOS using the mysql module and Hier In Puppet: ```puppet -include ::mysql::server +include mysql::server create_resources(yumrepo, hiera('yumrepo', {})) @@ -602,11 +602,11 @@ When the `/root/.mylogin.cnf` exists the environment variable `MYSQL_TEST_LOGIN_ This is required if `create_root_user` and `create_root_login_file` are true. If `root_password` is 'UNSET', then `create_root_user` and `create_root_login_file` are assumed to be false --- that is, the MySQL root user and `/root/.mylogin.cnf` are not created. ```puppet -class { '::mysql::server': -root_password => 'password', -create_root_my_cnf => false, -create_root_login_file => true, -login_file => "puppet:///modules/${module_name}/mylogin.cnf", +class { 'mysql::server': + root_password => 'password', + create_root_my_cnf => false, + create_root_login_file => true, + login_file => 'puppet:///modules/${module_name}/mylogin.cnf', } ``` diff --git a/manifests/backup/mysqlbackup.pp b/manifests/backup/mysqlbackup.pp index c5eefbc2c..2e7f0731e 100644 --- a/manifests/backup/mysqlbackup.pp +++ b/manifests/backup/mysqlbackup.pp @@ -73,9 +73,7 @@ } if $install_cron { - if $::osfamily == 'RedHat' and $::operatingsystemmajrelease == '5' { - ensure_packages('crontabs') - } elsif $::osfamily == 'RedHat' { + if $::osfamily == 'RedHat' { ensure_packages('cronie') } elsif $::osfamily != 'FreeBSD' { ensure_packages('cron') diff --git a/manifests/backup/mysqldump.pp b/manifests/backup/mysqldump.pp index a25975278..af652b0af 100644 --- a/manifests/backup/mysqldump.pp +++ b/manifests/backup/mysqldump.pp @@ -67,9 +67,7 @@ } if $install_cron { - if $::osfamily == 'RedHat' and $::operatingsystemmajrelease == '5' { - ensure_packages('crontabs') - } elsif $::osfamily == 'RedHat' { + if $::osfamily == 'RedHat' { ensure_packages('cronie') } elsif $::osfamily != 'FreeBSD' { ensure_packages('cron') diff --git a/manifests/backup/xtrabackup.pp b/manifests/backup/xtrabackup.pp index 1bfd1e7d7..bc335de5e 100644 --- a/manifests/backup/xtrabackup.pp +++ b/manifests/backup/xtrabackup.pp @@ -59,9 +59,7 @@ } if $install_cron { - if $::osfamily == 'RedHat' and $::operatingsystemmajrelease == '5' { - ensure_packages('crontabs') - } elsif $::osfamily == 'RedHat' { + if $::osfamily == 'RedHat' { ensure_packages('cronie') } elsif $::osfamily != 'FreeBSD' { ensure_packages('cron') diff --git a/manifests/params.pp b/manifests/params.pp index 3a04232db..4e557d550 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -123,28 +123,24 @@ 'Suse': { case $::operatingsystem { 'OpenSuSE': { - if versioncmp( $::operatingsystemmajrelease, '12' ) >= 0 { - $client_package_name = 'mariadb-client' - $server_package_name = 'mariadb' - # First service start fails if this is set. Runs fine without - # it being set, in any case. Leaving it as-is for the mysql. - $basedir = undef - } else { - $client_package_name = 'mysql-community-server-client' - $server_package_name = 'mysql-community-server' - $basedir = '/usr' - } + $socket = '/var/run/mysql/mysql.sock' + $log_error = '/var/log/mysql/mysqld.log' + $pidfile = '/var/run/mysql/mysqld.pid' + $ruby_package_name = 'rubygem-mysql' + $client_package_name = 'mariadb-client' + $server_package_name = 'mariadb' + # First service start fails if this is set. Runs fine without + # it being set, in any case. Leaving it as-is for the mysql. + $basedir = undef } 'SLES','SLED': { - if versioncmp($::operatingsystemrelease, '12') >= 0 { - $client_package_name = 'mariadb-client' - $server_package_name = 'mariadb' - $basedir = undef - } else { - $client_package_name = 'mysql-client' - $server_package_name = 'mysql' - $basedir = '/usr' - } + $socket = '/run/mysql/mysql.sock' + $log_error = '/var/log/mysqld.log' + $pidfile = '/var/lib/mysql/mysqld.pid' + $ruby_package_name = 'ruby-mysql' + $client_package_name = 'mariadb-client' + $server_package_name = 'mariadb' + $basedir = undef } default: { fail("Unsupported platform: puppetlabs-${module_name} currently doesn\'t support ${::operatingsystem}.") @@ -153,14 +149,6 @@ $config_file = '/etc/my.cnf' $includedir = '/etc/my.cnf.d' $datadir = '/var/lib/mysql' - $log_error = $::operatingsystem ? { - /OpenSuSE/ => '/var/log/mysql/mysqld.log', - /(SLES|SLED)/ => '/var/log/mysqld.log', - } - $pidfile = $::operatingsystem ? { - /OpenSuSE/ => '/var/run/mysql/mysqld.pid', - /(SLES|SLED)/ => '/var/lib/mysql/mysqld.pid', - } $root_group = 'root' $mysql_group = 'mysql' $mycnf_owner = undef @@ -168,16 +156,6 @@ $server_service_name = 'mysql' $xtrabackup_package_name_override = 'xtrabackup' - if $::operatingsystem =~ /(SLES|SLED)/ { - if versioncmp( $::operatingsystemmajrelease, '12' ) >= 0 { - $socket = '/run/mysql/mysql.sock' - } else { - $socket = '/var/lib/mysql/mysql.sock' - } - } else { - $socket = '/var/run/mysql/mysql.sock' - } - $ssl_ca = '/etc/mysql/cacert.pem' $ssl_cert = '/etc/mysql/server-cert.pem' $ssl_key = '/etc/mysql/server-key.pem' @@ -188,18 +166,14 @@ $perl_package_name = 'perl-DBD-mysql' $php_package_name = 'apache2-mod_php53' $python_package_name = 'python-mysql' - $ruby_package_name = $::operatingsystem ? { - /OpenSuSE/ => 'rubygem-mysql', - /(SLES|SLED)/ => 'ruby-mysql', - } $client_dev_package_name = 'libmysqlclient-devel' $daemon_dev_package_name = 'mysql-devel' } 'Debian': { - if $::operatingsystem == 'Debian' and versioncmp($::operatingsystemrelease, '9') >= 0 { + if $::operatingsystem == 'Debian' { $provider = 'mariadb' - } else { + } else { # Ubuntu $provider = 'mysql' } if $provider == 'mariadb' { @@ -242,7 +216,7 @@ } $perl_package_name = 'libdbd-mysql-perl' if ($::operatingsystem == 'Ubuntu' and versioncmp($::operatingsystemrelease, '16.04') >= 0) or - ($::operatingsystem == 'Debian' and versioncmp($::operatingsystemrelease, '9') >= 0) { + ($::operatingsystem == 'Debian') { $php_package_name = 'php-mysql' } else { $php_package_name = 'php5-mysql' @@ -260,10 +234,8 @@ } $ruby_package_name = $facts['os']['release']['major'] ? { - '8' => 'ruby-mysql', # jessie '9' => 'ruby-mysql2', # stretch '10' => 'ruby-mysql2', # buster - '14.04' => 'ruby-mysql', # trusty '16.04' => 'ruby-mysql', # xenial '18.04' => 'ruby-mysql2', # bionic '20.04' => 'ruby-mysql2', # focal @@ -487,13 +459,7 @@ case $::operatingsystem { 'Ubuntu': { - # lint:ignore:only_variable_string - if versioncmp("${::operatingsystemmajrelease}", '14.10') > 0 { - # lint:endignore - $server_service_provider = 'systemd' - } else { - $server_service_provider = 'upstart' - } + $server_service_provider = 'systemd' } 'Alpine': { $server_service_provider = 'rc-service' @@ -579,6 +545,6 @@ ## Additional graceful failures if $::osfamily == 'RedHat' and $::operatingsystemmajrelease == '4' and $::operatingsystem != 'Amazon' { - fail("Unsupported platform: puppetlabs-${module_name} only supports RedHat 5.0 and beyond.") + fail("Unsupported platform: puppetlabs-${module_name} only supports RedHat 6.0 and beyond.") } } diff --git a/metadata.json b/metadata.json index ab5785344..0c774e408 100644 --- a/metadata.json +++ b/metadata.json @@ -54,7 +54,6 @@ { "operatingsystem": "Ubuntu", "operatingsystemrelease": [ - "14.04", "16.04", "18.04" ] diff --git a/provision.yaml b/provision.yaml index 53f459fe7..d78d6c41a 100644 --- a/provision.yaml +++ b/provision.yaml @@ -11,19 +11,16 @@ vagrant: travis_deb: provisioner: docker images: - - litmusimage/debian:8 - litmusimage/debian:9 - litmusimage/debian:10 travis_ub_5: provisioner: docker images: - - litmusimage/ubuntu:14.04 - litmusimage/ubuntu:16.04 - litmusimage/ubuntu:18.04 travis_ub_6: provisioner: docker images: - - litmusimage/ubuntu:14.04 - litmusimage/ubuntu:16.04 - litmusimage/ubuntu:18.04 - litmusimage/ubuntu:20.04 @@ -51,10 +48,8 @@ release_checks_5: - oracle-7-x86_64 - scientific-6-x86_64 - scientific-7-x86_64 - - debian-8-x86_64 - debian-9-x86_64 - debian-10-x86_64 - - ubuntu-1404-x86_64 - ubuntu-1604-x86_64 - ubuntu-1804-x86_64 release_checks_6: @@ -71,10 +66,8 @@ release_checks_6: - oracle-7-x86_64 - scientific-6-x86_64 - scientific-7-x86_64 - - debian-8-x86_64 - debian-9-x86_64 - debian-10-x86_64 - - ubuntu-1404-x86_64 - ubuntu-1604-x86_64 - ubuntu-1804-x86_64 - ubuntu-2004-x86_64 diff --git a/spec/acceptance/mysql_backup_spec.rb b/spec/acceptance/mysql_backup_spec.rb index bdc73d986..f3233f645 100644 --- a/spec/acceptance/mysql_backup_spec.rb +++ b/spec/acceptance/mysql_backup_spec.rb @@ -135,7 +135,7 @@ class { 'mysql::server::backup': end context 'with xtrabackup enabled' do - context 'should work with no errors', if: ((os[:family] == 'debian' && os[:release].to_i >= 8) || (os[:family] == 'ubuntu' && os[:release] =~ %r{^16\.04|^18\.04}) || (os[:family] == 'redhat' && os[:release].to_i > 6)) do # rubocop:disable Layout/LineLength + context 'should work with no errors', if: ((os[:family] == 'debian') || (os[:family] == 'ubuntu' && os[:release] =~ %r{^16\.04|^18\.04}) || (os[:family] == 'redhat' && os[:release].to_i > 6)) do pp = <<-MANIFEST class { 'mysql::server': root_password => 'password' } mysql::db { [ @@ -214,7 +214,7 @@ class { 'mysql::server::backup': end end - describe 'xtrabackup.sh', if: Gem::Version.new(mysql_version) < Gem::Version.new('5.7.0') && ((os[:family] == 'debian' && os[:release].to_i >= 8) || (os[:family] == 'ubuntu' && os[:release] =~ %r{^16\.04|^18\.04}) || (os[:family] == 'redhat' && os[:release].to_i > 6)) do # rubocop:disable Layout/LineLength + describe 'xtrabackup.sh', if: Gem::Version.new(mysql_version) < Gem::Version.new('5.7.0') && ((os[:family] == 'debian' && os[:release].to_i >= 9) || (os[:family] == 'ubuntu' && os[:release] =~ %r{^16\.04|^18\.04}) || (os[:family] == 'redhat' && os[:release].to_i > 6)) do # rubocop:disable Layout/LineLength before(:all) do pre_run end @@ -263,7 +263,7 @@ class { 'mysql::server::backup': end context 'with xtrabackup enabled and incremental backups disabled' do - context 'should work with no errors', if: ((os[:family] == 'debian' && os[:release].to_i >= 8) || (os[:family] == 'ubuntu' && os[:release] =~ %r{^16\.04|^18\.04}) || (os[:family] == 'redhat' && os[:release].to_i > 6)) do # rubocop:disable Layout/LineLength + context 'should work with no errors', if: ((os[:family] == 'debian' && os[:release].to_i >= 9) || (os[:family] == 'ubuntu' && os[:release] =~ %r{^16\.04|^18\.04}) || (os[:family] == 'redhat' && os[:release].to_i > 6)) do # rubocop:disable Layout/LineLength pp = <<-MANIFEST class { 'mysql::server': root_password => 'password' } mysql::db { [ @@ -275,11 +275,7 @@ class { 'mysql::server': root_password => 'password' } } case $facts['os']['family'] { /Debian/: { - if versioncmp($::operatingsystemmajrelease, '8') >= 0 { - $source_url = "http://repo.percona.com/apt/percona-release_1.0-22.generic_all.deb" - } else { - $source_url = "http://repo.percona.com/apt/percona-release_latest.${facts['os']['distro']['codename']}_all.deb" - } + $source_url = "http://repo.percona.com/apt/percona-release_1.0-22.generic_all.deb" file { '/tmp/percona-release_latest.deb': ensure => present, @@ -299,15 +295,8 @@ class { 'mysql::server': root_password => 'password' } } } /RedHat/: { - # RHEL/CentOS 5 is no longer supported by Percona, but older versions - # of the repository are still available. - if versioncmp($::operatingsystemmajrelease, '6') >= 0 { - $percona_url = 'http://repo.percona.com/yum/percona-release-latest.noarch.rpm' - $epel_url = "https://download.fedoraproject.org/pub/epel/epel-release-latest-${facts['os']['release']['major']}.noarch.rpm" - } else { - $percona_url = 'http://repo.percona.com/yum/release/5/os/noarch/percona-release-0.1-3.noarch.rpm' - $epel_url = 'https://archives.fedoraproject.org/pub/archive/epel/epel-release-latest-5.noarch.rpm' - } + $percona_url = 'http://repo.percona.com/yum/percona-release-latest.noarch.rpm' + $epel_url = "https://download.fedoraproject.org/pub/epel/epel-release-latest-${facts['os']['release']['major']}.noarch.rpm" ensure_packages('percona-release',{ ensure => present, provider => 'rpm', @@ -342,7 +331,7 @@ class { 'mysql::server::backup': end end - describe 'xtrabackup.sh', if: Gem::Version.new(mysql_version) < Gem::Version.new('5.7.0') && ((os[:family] == 'debian' && os[:release].to_i >= 8) || (os[:family] == 'ubuntu' && os[:release] =~ %r{^16\.04|^18\.04}) || (os[:family] == 'redhat' && os[:release].to_i > 6)) do # rubocop:disable Layout/LineLength + describe 'xtrabackup.sh', if: Gem::Version.new(mysql_version) < Gem::Version.new('5.7.0') && ((os[:family] == 'debian' && os[:release].to_i >= 9) || (os[:family] == 'ubuntu' && os[:release] =~ %r{^16\.04|^18\.04}) || (os[:family] == 'redhat' && os[:release].to_i > 6)) do # rubocop:disable Layout/LineLength before(:all) do pre_run end diff --git a/spec/acceptance/mysql_mariadb_spec.rb b/spec/acceptance/mysql_mariadb_spec.rb index 03a25bd82..bb5cc4646 100644 --- a/spec/acceptance/mysql_mariadb_spec.rb +++ b/spec/acceptance/mysql_mariadb_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper_acceptance' -describe 'mysql server class', if: ((os[:family] == 'debian' && os[:release].to_i > 8) || (os[:family] == 'redhat' && os[:release].to_i > 6)) do +describe 'mysql server class', if: ((os[:family] == 'debian') || (os[:family] == 'redhat' && os[:release].to_i > 6)) do describe 'mariadb' do let(:pp) do <<-MANIFEST diff --git a/spec/acceptance/types/mysql_login_path_spec.rb b/spec/acceptance/types/mysql_login_path_spec.rb index fef53855d..a7f01274f 100644 --- a/spec/acceptance/types/mysql_login_path_spec.rb +++ b/spec/acceptance/types/mysql_login_path_spec.rb @@ -12,7 +12,7 @@ mysql_version = '5.7' end -describe 'mysql_login_path', unless: ("#{os[:family]}-#{os[:release].to_i}" =~ %r{redhat\-5|suse}) do +describe 'mysql_login_path', unless: "#{os[:family]}-#{os[:release].to_i}".include?('suse') do before(:all) do run_shell("rm -rf #{support_bin_dir}") bolt_upload_file('spec/support/mysql_login_path', support_bin_dir)