Skip to content
Snippets Groups Projects
database.pp 1.71 KiB
Newer Older
  • Learn to ignore specific revisions
  • class iaas::profile::database (
    
       $percona_master = false,
    
       $mysql_cluster_servers = undef,
    
       $mysql_port = undef,
    
       $mysql_users = undef,
       $mysql_databases = undef,
       $mysql_grants = undef,
    
    	require => File['/root/.my.cnf'],
    
         charset => 'utf8',
         collate => 'utf8_general_ci',
         require => File['/root/.my.cnf'],
    
       }
       $mysql_grant_defaults = {
       	ensure 		=> 'present',
       	options 	=> ['GRANT'],
       	privileges => ['ALL'],
    
    	require => File['/root/.my.cnf'],
       } 
       file { '/root/.my.cnf':
        ensure  => 'present',
        content => "[client]
    user=root
    host=localhost
    password=$root_password\n",
        mode    => '600',
      } -> 
    
       package{'xinetd':
    	ensure	=> installed,
       } ->
       service { 'xinetd':
        ensure      => 'running'
    
       class{ 'percona':
    
    	root_password => $root_password,
    
    	mysql_cluster_servers => $mysql_cluster_servers,
    
    	mysql_port => $mysql_port,
    	master => $percona_master,
    
       } ->
       exec { 'drop anonymous users on specific host':
        command => "mysql -u root -p$root_password -e \"GRANT USAGE ON *.* TO \'\'@\'$::hostname\'; DROP USER \'\'@\'$::hostname\';\"",
        path    => [ '/bin', '/usr/bin' ],
       } ->
       exec { 'drop anonymous users on localhost':
        command => "mysql -u root -p$root_password -e \"GRANT USAGE ON *.* TO \'\'@\'localhost\'; DROP USER \'\'@\'localhost\';\"",
        path    => [ '/bin', '/usr/bin' ],
       }   
    
       create_resources(mysql_database, $mysql_databases, $mysql_database_defaults)
       create_resources(mysql_user, $mysql_users, $mysql_user_defaults) 
       create_resources(mysql_grant, $mysql_grants, $mysql_grant_defaults)