From 98b1d250fd1f77d83c88e0b3bedadaae68e97c0a Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Thu, 29 Mar 2018 01:11:14 +0200 Subject: [PATCH 01/11] switch package managers to official proxysql repo make repo management more generic use upstream defaults --- examples/init.pp | 7 ------ manifests/init.pp | 11 +++------ manifests/install.pp | 22 ++++++++++++++++- manifests/params.pp | 56 ++++++++++++++++++++++---------------------- manifests/repo.pp | 16 ++++--------- 5 files changed, 57 insertions(+), 55 deletions(-) diff --git a/examples/init.pp b/examples/init.pp index 7abdb2ea..2a136308 100644 --- a/examples/init.pp +++ b/examples/init.pp @@ -3,13 +3,6 @@ class { '::proxysql': listen_port => 3306, admin_password => 'SuperSecretPassword', - repo => { - 'debs_proxysql_repo' => { - comment => 'ProxySQL repo', - location => 'http://debs.ugent.be/debian', - repos => 'mysql-dev', - }, - }, } proxy_mysql_server { '192.168.33.31:3306-31': diff --git a/manifests/init.pp b/manifests/init.pp index d7d9a8a9..8ee188af 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -144,19 +144,14 @@ Boolean $save_to_disk = $::proxysql::params::save_to_disk, Boolean $manage_repo = true, - Hash $repo = {}, + Hash $repo = $::proxysql::params::repo, - String $package_source = $::proxysql::params::package_source, - String $package_provider = $::proxysql::params::package_provider, + String $package_source = $::proxysql::params::package_source, + String $package_provider= $::proxysql::params::package_provider, String $sys_owner = $::proxysql::params::sys_owner, String $sys_group = $::proxysql::params::sys_group, - String $rpm_repo_name = $::proxysql::params::rpm_repo_name, - String $rpm_repo_descr = $::proxysql::params::rpm_repo_descr, - String $rpm_repo = $::proxysql::params::rpm_repo, - String $rpm_repo_key = $::proxysql::params::rpm_repo_key, - Hash $override_config_settings = {}, ) inherits ::proxysql::params { diff --git a/manifests/install.pp b/manifests/install.pp index fbe691ed..29ad5f78 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -5,9 +5,29 @@ class proxysql::install { if !$::proxysql::manage_repo { + case $facts['os']['family'] { + 'Debian': { + if ! defined(Package['wget']) { + package { 'wget': + ensure => installed + } + } + + exec { 'wget-package-source': + command => "/usr/bin/wget $::proxysql::package_source -O /tmp/proxysql-package.deb", + creates => '/tmp/proxysql-package.deb', + } + + $real_package_source = '/tmp/proxysql-package.deb' + } + default: { + $real_package_source = $::proxysql::package_source + } + } + package { $::proxysql::package_name: ensure => $::proxysql::package_ensure, - source => $::proxysql::package_source, + source => $real_package_source, provider => $::proxysql::package_provider, install_options => $::proxysql::package_install_options, } diff --git a/manifests/params.pp b/manifests/params.pp index 7e5fff2c..7aa641f3 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -8,9 +8,6 @@ $package_ensure = 'installed' $package_install_options = [] - # Check your version in https://github.com/sysown/proxysql/releases - $package_source = 'https://www.percona.com/redir/downloads/proxysql/proxysql-1.3.2/binary/redhat/6/x86_64/proxysql-1.3.2-1.1.x86_64.rpm' - $service_name = 'proxysql' $service_ensure = 'running' @@ -23,30 +20,38 @@ $admin_listen_ip = '127.0.0.1' $admin_listen_port = 6032 - case $::operatingsystem { + $admin_listen_socket = '/tmp/proxysql_admin.sock' + $sys_owner = 'root' + $sys_group = 'root' + + case $facts['os']['family'] { 'Debian': { - $admin_listen_socket = '/tmp/proxysql_admin.sock' - $package_provider = 'dpkg' - $sys_owner = 'root' - $sys_group = 'root' + $package_provider = 'dpkg' + $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.7/proxysql_1.4.7-ubuntu16_amd64.deb' + $repo = { + comment => 'ProxySQL APT repository', + location => "http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/${::facts['os']['distro']['codename']}/", + release => './', + repos => '', + key => { + 'id' => '1448BF693CA600C799EB935804A562FB79953B49', + 'server' => 'keyserver.ubuntu.com', + } + } } - 'Ubuntu': { - $admin_listen_socket = '/tmp/proxysql_admin.sock' - $package_provider = 'dpkg' - $sys_owner = 'proxysql' - $sys_group = 'proxysql' - } - 'CentOS', 'Fedora', 'Scientific', 'RedHat', 'Amazon', 'OracleLinux': { - $admin_listen_socket = '/tmp/proxysql_admin.sock' - $package_provider = 'rpm' - $sys_owner = 'proxysql' - $sys_group = 'proxysql' + 'RedHat': { + $package_provider = 'rpm' + $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.7/proxysql-1.4.7-1-centos7.x86_64.rpm' + $repo = { + descr => 'ProxySQL YUM repository', + baseurl => 'http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/centos/$releasever', + enabled => true, + gpgcheck => true, + gpgkey => 'http://repo.proxysql.com/ProxySQL/repo_pub_key', + } } default: { - $admin_listen_socket = '/tmp/proxysql_admin.sock' - $package_provider = undef - $sys_owner = 'root' - $sys_group = 'root' + $package_provider = undef } } @@ -67,11 +72,6 @@ $load_to_runtime = true $save_to_disk = true - $rpm_repo_name = 'percona_repo' - $rpm_repo_descr = 'percona_repo_contains_proxysql' - $rpm_repo = 'http://repo.percona.com/release/$releasever/RPMS/$basearch' - $rpm_repo_key = 'https://www.percona.com/downloads/RPM-GPG-KEY-percona' - $config_settings = { datadir => $datadir, admin_variables => { diff --git a/manifests/repo.pp b/manifests/repo.pp index 561d487b..38067bb9 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -5,18 +5,12 @@ # class proxysql::repo inherits proxysql { if $::proxysql::manage_repo == true { - case $::operatingsystem { - 'Debian', 'Ubuntu': { - create_resources('::apt::source', $::proxysql::repo) + case $facts['os']['family'] { + 'Debian': { + create_resources('::apt::source', { 'proxysql_repo' => $::proxysql::repo}) } - 'CentOS', 'Fedora', 'Scientific', 'RedHat', 'Amazon', 'OracleLinux': { - yumrepo { $::proxysql::rpm_repo_name: - descr => $::proxysql::rpm_repo_descr, - baseurl => $::proxysql::rpm_repo, - enabled => true, - gpgcheck => true, - gpgkey => $::proxysql::rpm_repo_key, - } + 'RedHat': { + create_resources('yumrepo', { 'proxysql_repo' => $::proxysql::repo}) } default: { fail('This operatingsystem is not supported (yet).') From c7f2c77bef21eac30964e853fd0bb6d55c7a7db4 Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Fri, 30 Mar 2018 00:28:40 +0200 Subject: [PATCH 02/11] fixed lint errors updated docs started working on rspec tests --- README.markdown | 51 ++++++----------------------------- manifests/init.pp | 23 +++++----------- manifests/install.pp | 10 +++---- manifests/params.pp | 2 +- spec/classes/proxysql_spec.rb | 11 +++----- 5 files changed, 23 insertions(+), 74 deletions(-) diff --git a/README.markdown b/README.markdown index 2dd86f5c..338d170a 100644 --- a/README.markdown +++ b/README.markdown @@ -45,30 +45,9 @@ You can customize options such as (but not limited to) `listen_port`, `admin_pas admin_password => '654321', monitor_password => '123456', override_config_settings => $override_settings, - repo => { - 'debs_proxysql_repo' => { - comment => 'Percona repo', - location => 'http://repo.percona.com/apt', - repos => 'main', - key => { - 'id' => '4D1BB29D63D98E422B2113B19334A25F8507EFA5', - 'server' => 'keyserver.ubuntu.com', - } - }, - }, } ``` -On `Yum` based systems you can do and the module will install ProxySQL from the Percona repo's. -``` -class { '::proxysql': - listen_port => 3306, - admin_password => '654321', - monitor_password => '123456', - manage_repo => true, -} -``` - ## Usage Configuration is done by the `proxysql` class. @@ -187,44 +166,30 @@ Specifies wheter te managed ProxySQL resources should be immediately loaded to t ##### `save_to_disk` Specifies wheter te managed ProxySQL resources should be immediately save to disk. Boolean, defaults to 'true'. -##### `repo` -These are the repo's we will configure. Currently only Debian is supported. This hash will be passed on to `apt::source`. Defaults to {}. - ##### `manage_repo` Determines wheter this module will manage the repositories where ProxySQL might be. Defaults to 'true' ##### `repo` -These are the repo's we will configure. Currently only Debian is supported. This hash will be passed on to `apt::source`. Defaults to {}. +These are the repo's we will configure. Currently only Debian is supported. This hash will be passed on to `apt::source` or `yumrepo` (depending on the OS family). +Defaults to the official upstream repo for your OS. See http://repo.proxysql.com for more info. -##### `manage_rpm` -Determines wheter this module will use local provider instead of the repo to install ProxySQL, defaults to false, ##### `package_source` -location ot the proxysql package for the `package_provider`. Default to 'https://www.percona.com/redir/downloads/proxysql/proxysql-1.3.2/binary/redhat/6/x86_64/proxysql-1.3.2-1.1.x86_64.rpm' +location ot the proxysql package for the `package_provider`. + - Default to 'https://github.com/sysown/proxysql/releases/download/v1.4.7/proxysql-1.4.7-1-centos7.x86_64.rpm' for RedHat based systems + - Default to 'https://github.com/sysown/proxysql/releases/download/v1.4.7/proxysql_1.4.7-ubuntu16_amd64.deb' for Debian based systems ##### `package_provider` provider for package-resource. defaults to `dpkg` for debian-based, `rpm` for redhat base or `undef` for others ##### `sys_owner` -owner of the datadir and config_file, defaults to 'root' on most systems, to 'proxysql' on redhat-based +owner of the datadir and config_file, defaults to 'root' ##### `sys_group` -group of the datadir and config_file, defaults to 'root' on most systems, to 'proxysql' on redhat-based - -##### `rpm_repo_name` -title for the yumrepo-resource in RedHat-based systems, defaults to 'percona_repo' - -##### `rpm_repo_descr` -description for the yumrepo-resource in RedHat-based systems, defaults to 'percona_repo_contains_proxysql' - -##### `rpm_repo` -repo url for the yumrepo-resource in RedHat-based systems, defaults to 'http://repo.percona.com/release/$releasever/RPMS/$basearch' - -##### `rpm_repo_key` -key utl for the yumrepo-resource in RedHat-based systems, defaults to 'https://www.percona.com/downloads/RPM-GPG-KEY-percona' +group of the datadir and config_file, defaults to 'root' ##### `override_config_settings` -Which configuration variables should be overriden. Hash, defaults to {} (empty hash). +Which configuration variables should be overriden. Hash, defaults to `{}` (empty hash). ## Types diff --git a/manifests/init.pp b/manifests/init.pp index 8ee188af..1e06282f 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -81,31 +81,22 @@ # # * `repo` # These are the repo's we will configure. Currently only Debian is supported. This hash will be passed on -# to `apt::source`. Defaults to {}. +# to `apt::source` or `yumrepo` (depending on the OS family). +# Defaults to the official upstream repo for your OS. See http://repo.proxysql.com for more info. # # * `package_source` -# location ot the proxysql package for the `package_provider`. Default to 'https://www.percona.com/redir/downloads/proxysql/proxysql-1.3.2/binary/redhat/6/x86_64/proxysql-1.3.2-1.1.x86_64.rpm' +# location ot the proxysql package for the `package_provider`. +# Default to 'https://github.com/sysown/proxysql/releases/download/v1.4.7/proxysql-1.4.7-1-centos7.x86_64.rpm' for RedHat based systems +# Default to 'https://github.com/sysown/proxysql/releases/download/v1.4.7/proxysql_1.4.7-ubuntu16_amd64.deb' for Debian based systems # # * `package_provider` # provider for package-resource. defaults to `dpkg` for debian-based, `rpm` for redhat base or undef for others # # * `sys_owner` -# owner of the datadir and config_file, defaults to root on most systems, to proxysql on redhat-based +# owner of the datadir and config_file, defaults to root. # # * `sys_group` -# group of the datadir and config_file, defaults to root on most systems, to proxysql on redhat-based -# -# * `rpm_repo_name` -# title for the yumrepo-resource in RedHat-based systems, defaults to 'percona_repo' -# -# * `rpm_repo_descr` -# description for the yumrepo-resource in RedHat-based systems, defaults to 'percona_repo_contains_proxysql' -# -# * `rpm_repo` -# repo url for the yumrepo-resource in RedHat-based systems, defaults to 'http://repo.percona.com/release/$releasever/RPMS/$basearch' -# -# * `rpm_repo_key` -# key utl for the yumrepo-resource in RedHat-based systems, defaults to 'https://www.percona.com/downloads/RPM-GPG-KEY-percona' +# group of the datadir and config_file, defaults to root. # # * `override_config_settings` # Which configuration variables should be overriden. Hash, defaults to {} (empty hash). diff --git a/manifests/install.pp b/manifests/install.pp index 29ad5f78..16b3a11a 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -7,14 +7,10 @@ if !$::proxysql::manage_repo { case $facts['os']['family'] { 'Debian': { - if ! defined(Package['wget']) { - package { 'wget': - ensure => installed - } - } + ensure_packages('wget') - exec { 'wget-package-source': - command => "/usr/bin/wget $::proxysql::package_source -O /tmp/proxysql-package.deb", + exec { 'wget-proxysql-package-source': + command => "/usr/bin/wget ${::proxysql::package_source} -O /tmp/proxysql-package.deb", creates => '/tmp/proxysql-package.deb', } diff --git a/manifests/params.pp b/manifests/params.pp index 7aa641f3..9b396e83 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -36,7 +36,7 @@ key => { 'id' => '1448BF693CA600C799EB935804A562FB79953B49', 'server' => 'keyserver.ubuntu.com', - } + }, } } 'RedHat': { diff --git a/spec/classes/proxysql_spec.rb b/spec/classes/proxysql_spec.rb index b88f499c..131d2ec4 100644 --- a/spec/classes/proxysql_spec.rb +++ b/spec/classes/proxysql_spec.rb @@ -31,16 +31,13 @@ install_options: []) end - case facts[:operatingsystem] + case facts[:os][:family] when 'Debian' then let(:sys_user) { 'root' } let(:sys_group) { 'root' } - when 'Ubuntu' then - let(:sys_user) { 'proxysql' } - let(:sys_group) { 'proxysql' } - when 'CentOS', 'Fedora', 'Scientific', 'RedHat', 'Amazon', 'OracleLinux' then - let(:sys_user) { 'proxysql' } - let(:sys_group) { 'proxysql' } + when 'RedHat' then + let(:sys_user) { 'root' } + let(:sys_group) { 'root' } else let(:sys_user) { 'root' } let(:sys_group) { 'root' } From fcd035d286dd2c79007e50eb0f3715c9eb2b1311 Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Fri, 30 Mar 2018 00:33:42 +0200 Subject: [PATCH 03/11] make rubocop happy again --- spec/classes/proxysql_spec.rb | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/spec/classes/proxysql_spec.rb b/spec/classes/proxysql_spec.rb index 131d2ec4..91b6994d 100644 --- a/spec/classes/proxysql_spec.rb +++ b/spec/classes/proxysql_spec.rb @@ -31,17 +31,8 @@ install_options: []) end - case facts[:os][:family] - when 'Debian' then - let(:sys_user) { 'root' } - let(:sys_group) { 'root' } - when 'RedHat' then - let(:sys_user) { 'root' } - let(:sys_group) { 'root' } - else - let(:sys_user) { 'root' } - let(:sys_group) { 'root' } - end + let(:sys_user) { 'root' } + let(:sys_group) { 'root' } it do is_expected.to contain_file('proxysql-config-file').with(ensure: 'file', From cdffda6dcafb475351aabcfa8bf9242d9bdb3be7 Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Fri, 30 Mar 2018 00:41:46 +0200 Subject: [PATCH 04/11] fixed spec tests --- .fixtures.yml | 1 + manifests/params.pp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.fixtures.yml b/.fixtures.yml index 43a7afa4..58953f0b 100644 --- a/.fixtures.yml +++ b/.fixtures.yml @@ -2,5 +2,6 @@ fixtures: repositories: stdlib: "git://github.com/puppetlabs/puppetlabs-stdlib.git" mysql: "git://github.com/puppetlabs/puppetlabs-mysql.git" + apt: "git://github.com/puppetlabs/puppetlabs-apt.git" symlinks: proxysql: "#{source_dir}" diff --git a/manifests/params.pp b/manifests/params.pp index 9b396e83..bc9731fe 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -30,7 +30,7 @@ $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.7/proxysql_1.4.7-ubuntu16_amd64.deb' $repo = { comment => 'ProxySQL APT repository', - location => "http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/${::facts['os']['distro']['codename']}/", + location => "http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/${::facts['lsbdistcodename']}/", release => './', repos => '', key => { From 184af901720c68d31b2eec63bf9f05c83ec0dba7 Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Sun, 2 Sep 2018 17:01:00 +0200 Subject: [PATCH 05/11] use proper puppet syntax --- manifests/repo.pp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/manifests/repo.pp b/manifests/repo.pp index 38067bb9..5b8d0609 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -10,7 +10,9 @@ create_resources('::apt::source', { 'proxysql_repo' => $::proxysql::repo}) } 'RedHat': { - create_resources('yumrepo', { 'proxysql_repo' => $::proxysql::repo}) + yumrepo { 'proxysql_repo': + * => $::proxysql::repo + } } default: { fail('This operatingsystem is not supported (yet).') From 7e76ffbe1249d3038f11ff2b0890d42664120d44 Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Sun, 2 Sep 2018 17:02:28 +0200 Subject: [PATCH 06/11] use puppet-archive to download the deb file on ubuntu install depenedencies when not using the repo store downloaded file in a privileged folder --- manifests/init.pp | 3 +++ manifests/install.pp | 13 +++++----- manifests/params.pp | 56 ++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 64 insertions(+), 8 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 1e06282f..5584241d 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -138,6 +138,9 @@ Hash $repo = $::proxysql::params::repo, String $package_source = $::proxysql::params::package_source, + String $package_checksum_value = $::proxysql::params::package_checksum_value, + String $package_checksum_type = $::proxysql::params::package_checksum_type, + Array $package_dependencies = $::proxysql::params::package_dependencies, String $package_provider= $::proxysql::params::package_provider, String $sys_owner = $::proxysql::params::sys_owner, diff --git a/manifests/install.pp b/manifests/install.pp index 16b3a11a..5eb468a0 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -7,20 +7,21 @@ if !$::proxysql::manage_repo { case $facts['os']['family'] { 'Debian': { - ensure_packages('wget') - - exec { 'wget-proxysql-package-source': - command => "/usr/bin/wget ${::proxysql::package_source} -O /tmp/proxysql-package.deb", - creates => '/tmp/proxysql-package.deb', + archive { '/root/proxysql-package.deb': + ensure => present, + source => $::proxysql::package_source, + checksum => $::proxysql::package_checksum_value, + checksum_type => $::proxysql::package_checksum_type, } - $real_package_source = '/tmp/proxysql-package.deb' + $real_package_source = '/root/proxysql-package.deb' } default: { $real_package_source = $::proxysql::package_source } } + ensure_packages($::proxysql::package_dependencies) package { $::proxysql::package_name: ensure => $::proxysql::package_ensure, source => $real_package_source, diff --git a/manifests/params.pp b/manifests/params.pp index bc9731fe..4bf565e6 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -27,7 +27,56 @@ case $facts['os']['family'] { 'Debian': { $package_provider = 'dpkg' - $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.7/proxysql_1.4.7-ubuntu16_amd64.deb' + case $facts['os']['name'] { + 'Debian': { + case $facts['os']['distro']['codename'] { + 'jessie': { + $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql_1.4.10-debian8_amd64.deb' + $package_checksum_value = '98bab1b7cd719039b1483f7d51c30d7fc563def7' + $package_checksum_type = 'sha1' + $package_dependencies = [] + } + 'stretch': { + $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql_1.4.10-debian9_amd64.deb' + $package_checksum_value = 'd97a2f870e46d5f3218ab80d6c0db6bcc288127a' + $package_checksum_type = 'sha1' + $package_dependencies = [] + } + default: { + $package_source = undef + $package_checksum_value = undef + $package_checksum_type = undef + $package_dependencies = [] + } + } + } + 'Ubuntu': { + case $facts['os']['distro']['codename'] { + 'trusty': { + $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql_1.4.10-ubuntu14_amd64.deb' + $package_checksum_value = '0b89f290bd9cd7e8bc2b7acd8a7799840a31af94' + $package_checksum_type = 'sha1' + $package_dependencies = [] + } + 'xenial': { + $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql_1.4.10-ubuntu16_amd64.deb' + $package_checksum_value = 'df8695c6296678a0eeda036cddff679cc1ff604e' + $package_checksum_type = 'sha1' + $package_dependencies = [] + } + 'bionic': { + # no upstream bionic builds are provided yet. + } + default: { + $package_source = undef + $package_checksum_value = undef + $package_checksum_type = undef + $package_dependencies = [] + } + } + } + default: {} + } $repo = { comment => 'ProxySQL APT repository', location => "http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/${::facts['lsbdistcodename']}/", @@ -41,7 +90,10 @@ } 'RedHat': { $package_provider = 'rpm' - $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.7/proxysql-1.4.7-1-centos7.x86_64.rpm' + $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql-1.4.10-1-centos67.x86_64.rpm' + $package_checksum_value = 'f5ca4efa9d69e9bd6ba9a96c724b031cd7326051' + $package_checksum_type = 'sha1' + $package_dependencies = ['perl-DBI', 'perl-DBD-mysql'] $repo = { descr => 'ProxySQL YUM repository', baseurl => 'http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/centos/$releasever', From 8cdf98fc81ec619b85780ac9138a88fd53f9c793 Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Sun, 2 Sep 2018 17:09:42 +0200 Subject: [PATCH 07/11] added missing comma --- manifests/repo.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/repo.pp b/manifests/repo.pp index 5b8d0609..a2aba895 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -11,7 +11,7 @@ } 'RedHat': { yumrepo { 'proxysql_repo': - * => $::proxysql::repo + * => $::proxysql::repo, } } default: { From c89c0a625deda1e2312ca11d24e61d36daa63d72 Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Sun, 2 Sep 2018 18:56:51 +0200 Subject: [PATCH 08/11] use lsbcodedistname fact for tests to succeed --- manifests/params.pp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index 4bf565e6..d01a7305 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -29,7 +29,7 @@ $package_provider = 'dpkg' case $facts['os']['name'] { 'Debian': { - case $facts['os']['distro']['codename'] { + case $facts['lsbdistcodename'] { 'jessie': { $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql_1.4.10-debian8_amd64.deb' $package_checksum_value = '98bab1b7cd719039b1483f7d51c30d7fc563def7' @@ -51,7 +51,7 @@ } } 'Ubuntu': { - case $facts['os']['distro']['codename'] { + case $facts['lsbdistcodename'] { 'trusty': { $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql_1.4.10-ubuntu14_amd64.deb' $package_checksum_value = '0b89f290bd9cd7e8bc2b7acd8a7799840a31af94' @@ -79,7 +79,7 @@ } $repo = { comment => 'ProxySQL APT repository', - location => "http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/${::facts['lsbdistcodename']}/", + location => "http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/${facts['lsbdistcodename']}/", release => './', repos => '', key => { From 044a7ce179bde5c4593dfe2b79d078eba51a7b1f Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Sun, 2 Sep 2018 19:29:39 +0200 Subject: [PATCH 09/11] use proper os-release facts --- manifests/params.pp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index d01a7305..94b5025f 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -29,14 +29,14 @@ $package_provider = 'dpkg' case $facts['os']['name'] { 'Debian': { - case $facts['lsbdistcodename'] { - 'jessie': { + case $facts['os']['release']['major'] { + '8': { $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql_1.4.10-debian8_amd64.deb' $package_checksum_value = '98bab1b7cd719039b1483f7d51c30d7fc563def7' $package_checksum_type = 'sha1' $package_dependencies = [] } - 'stretch': { + '9': { $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql_1.4.10-debian9_amd64.deb' $package_checksum_value = 'd97a2f870e46d5f3218ab80d6c0db6bcc288127a' $package_checksum_type = 'sha1' @@ -51,20 +51,20 @@ } } 'Ubuntu': { - case $facts['lsbdistcodename'] { - 'trusty': { + case $facts['os']['release']['major'] { + '14.04': { $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql_1.4.10-ubuntu14_amd64.deb' $package_checksum_value = '0b89f290bd9cd7e8bc2b7acd8a7799840a31af94' $package_checksum_type = 'sha1' $package_dependencies = [] } - 'xenial': { + '16.04': { $package_source = 'https://github.com/sysown/proxysql/releases/download/v1.4.10/proxysql_1.4.10-ubuntu16_amd64.deb' $package_checksum_value = 'df8695c6296678a0eeda036cddff679cc1ff604e' $package_checksum_type = 'sha1' $package_dependencies = [] } - 'bionic': { + '18.04': { # no upstream bionic builds are provided yet. } default: { From 2b34902e59abf576095189a2541e737ccf18b962 Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Sun, 2 Sep 2018 19:33:05 +0200 Subject: [PATCH 10/11] replace $:: by $ --- manifests/config.pp | 2 +- manifests/init.pp | 62 ++++++++++++++++++++++---------------------- manifests/install.pp | 32 +++++++++++------------ manifests/repo.pp | 6 ++--- manifests/service.pp | 14 +++++----- 5 files changed, 58 insertions(+), 58 deletions(-) diff --git a/manifests/config.pp b/manifests/config.pp index 221c2f25..11607ba1 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -4,7 +4,7 @@ # class proxysql::config { - $config_settings = $::proxysql::config_settings + $config_settings = $proxysql::config_settings if $proxysql::manage_config_file { file { 'proxysql-config-file': ensure => file, diff --git a/manifests/init.pp b/manifests/init.pp index 5584241d..bb5b2e0a 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -102,49 +102,49 @@ # Which configuration variables should be overriden. Hash, defaults to {} (empty hash). # class proxysql ( - String $package_name = $::proxysql::params::package_name, - String $package_ensure = $::proxysql::params::package_ensure, - Array[String] $package_install_options = $::proxysql::params::package_install_options, - String $service_name = $::proxysql::params::service_name, - String $service_ensure = $::proxysql::params::service_ensure, + String $package_name = $proxysql::params::package_name, + String $package_ensure = $proxysql::params::package_ensure, + Array[String] $package_install_options = $proxysql::params::package_install_options, + String $service_name = $proxysql::params::service_name, + String $service_ensure = $proxysql::params::service_ensure, - String $datadir = $::proxysql::params::datadir, + String $datadir = $proxysql::params::datadir, - String $listen_ip = $::proxysql::params::listen_ip, - Integer $listen_port = $::proxysql::params::listen_port, - String $listen_socket = $::proxysql::params::listen_socket, + String $listen_ip = $proxysql::params::listen_ip, + Integer $listen_port = $proxysql::params::listen_port, + String $listen_socket = $proxysql::params::listen_socket, - String $admin_username = $::proxysql::params::admin_username, - Sensitive[String] $admin_password = $::proxysql::params::admin_password, - String $admin_listen_ip = $::proxysql::params::admin_listen_ip, - Integer $admin_listen_port = $::proxysql::params::admin_listen_port, - String $admin_listen_socket = $::proxysql::params::admin_listen_socket, + String $admin_username = $proxysql::params::admin_username, + Sensitive[String] $admin_password = $proxysql::params::admin_password, + String $admin_listen_ip = $proxysql::params::admin_listen_ip, + Integer $admin_listen_port = $proxysql::params::admin_listen_port, + String $admin_listen_socket = $proxysql::params::admin_listen_socket, - String $monitor_username = $::proxysql::params::monitor_username, - Sensitive[String] $monitor_password = $::proxysql::params::monitor_password, + String $monitor_username = $proxysql::params::monitor_username, + Sensitive[String] $monitor_password = $proxysql::params::monitor_password, - String $config_file = $::proxysql::params::config_file, - Boolean $manage_config_file = $::proxysql::params::manage_config_file, + String $config_file = $proxysql::params::config_file, + Boolean $manage_config_file = $proxysql::params::manage_config_file, - String $mycnf_file_name = $::proxysql::params::mycnf_file_name, - Boolean $manage_mycnf_file = $::proxysql::params::manage_mycnf_file, + String $mycnf_file_name = $proxysql::params::mycnf_file_name, + Boolean $manage_mycnf_file = $proxysql::params::manage_mycnf_file, - Boolean $restart = $::proxysql::params::restart, + Boolean $restart = $proxysql::params::restart, - Boolean $load_to_runtime = $::proxysql::params::load_to_runtime, - Boolean $save_to_disk = $::proxysql::params::save_to_disk, + Boolean $load_to_runtime = $proxysql::params::load_to_runtime, + Boolean $save_to_disk = $proxysql::params::save_to_disk, Boolean $manage_repo = true, - Hash $repo = $::proxysql::params::repo, + Hash $repo = $proxysql::params::repo, - String $package_source = $::proxysql::params::package_source, - String $package_checksum_value = $::proxysql::params::package_checksum_value, - String $package_checksum_type = $::proxysql::params::package_checksum_type, - Array $package_dependencies = $::proxysql::params::package_dependencies, - String $package_provider= $::proxysql::params::package_provider, + String $package_source = $proxysql::params::package_source, + String $package_checksum_value = $proxysql::params::package_checksum_value, + String $package_checksum_type = $proxysql::params::package_checksum_type, + Array $package_dependencies = $proxysql::params::package_dependencies, + String $package_provider= $proxysql::params::package_provider, - String $sys_owner = $::proxysql::params::sys_owner, - String $sys_group = $::proxysql::params::sys_group, + String $sys_owner = $proxysql::params::sys_owner, + String $sys_group = $proxysql::params::sys_group, Hash $override_config_settings = {}, ) inherits ::proxysql::params { diff --git a/manifests/install.pp b/manifests/install.pp index 5eb468a0..9f03bd5c 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -4,42 +4,42 @@ # class proxysql::install { - if !$::proxysql::manage_repo { + if !$proxysql::manage_repo { case $facts['os']['family'] { 'Debian': { archive { '/root/proxysql-package.deb': ensure => present, - source => $::proxysql::package_source, - checksum => $::proxysql::package_checksum_value, - checksum_type => $::proxysql::package_checksum_type, + source => $proxysql::package_source, + checksum => $proxysql::package_checksum_value, + checksum_type => $proxysql::package_checksum_type, } $real_package_source = '/root/proxysql-package.deb' } default: { - $real_package_source = $::proxysql::package_source + $real_package_source = $proxysql::package_source } } - ensure_packages($::proxysql::package_dependencies) - package { $::proxysql::package_name: - ensure => $::proxysql::package_ensure, + ensure_packages($proxysql::package_dependencies) + package { $proxysql::package_name: + ensure => $proxysql::package_ensure, source => $real_package_source, - provider => $::proxysql::package_provider, - install_options => $::proxysql::package_install_options, + provider => $proxysql::package_provider, + install_options => $proxysql::package_install_options, } } else { - package { $::proxysql::package_name: - ensure => $::proxysql::package_ensure, - install_options => $::proxysql::package_install_options, + package { $proxysql::package_name: + ensure => $proxysql::package_ensure, + install_options => $proxysql::package_install_options, } } file { 'proxysql-datadir': ensure => directory, - path => $::proxysql::datadir, - owner => $::proxysql::sys_owner, - group => $::proxysql::sys_group, + path => $proxysql::datadir, + owner => $proxysql::sys_owner, + group => $proxysql::sys_group, mode => '0600', } diff --git a/manifests/repo.pp b/manifests/repo.pp index a2aba895..a9d4252e 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -4,14 +4,14 @@ # Manage the repos where the ProxySQL package might be # class proxysql::repo inherits proxysql { - if $::proxysql::manage_repo == true { + if $proxysql::manage_repo == true { case $facts['os']['family'] { 'Debian': { - create_resources('::apt::source', { 'proxysql_repo' => $::proxysql::repo}) + create_resources('::apt::source', { 'proxysql_repo' => $proxysql::repo}) } 'RedHat': { yumrepo { 'proxysql_repo': - * => $::proxysql::repo, + * => $proxysql::repo, } } default: { diff --git a/manifests/service.pp b/manifests/service.pp index 6c9ccf22..44197bda 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -5,15 +5,15 @@ # class proxysql::service { - if $::proxysql::manage_config_file { + if $proxysql::manage_config_file { $service_require = File['proxysql-config-file'] } else { $service_require = undef } - if $::proxysql::restart { - service { $::proxysql::service_name: - ensure => $::proxysql::service_ensure, + if $proxysql::restart { + service { $proxysql::service_name: + ensure => $proxysql::service_ensure, enable => true, hasstatus => true, hasrestart => false, @@ -24,8 +24,8 @@ require => $service_require, } } else { - service { $::proxysql::service_name: - ensure => $::proxysql::service_ensure, + service { $proxysql::service_name: + ensure => $proxysql::service_ensure, enable => true, hasstatus => true, hasrestart => true, @@ -38,7 +38,7 @@ unless => "test -S ${::proxysql::admin_listen_socket}", tries => '3', try_sleep => '10', - require => Service[$::proxysql::service_name], + require => Service[$proxysql::service_name], path => '/bin:/usr/bin', } From cca201f58ca4ec86f5e8b0504209256b0bfe74de Mon Sep 17 00:00:00 2001 From: Matthias Crauwels Date: Sun, 2 Sep 2018 19:38:14 +0200 Subject: [PATCH 11/11] provide undef defaults --- manifests/params.pp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/manifests/params.pp b/manifests/params.pp index 94b5025f..01fcae75 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -66,13 +66,17 @@ } '18.04': { # no upstream bionic builds are provided yet. + $package_source = undef + $package_checksum_value = undef + $package_checksum_type = undef + $package_dependencies = [] } default: { $package_source = undef $package_checksum_value = undef $package_checksum_type = undef $package_dependencies = [] - } + } } } default: {}