createdb for mysql8
This commit is contained in:
		
							parent
							
								
									17ca7a5299
								
							
						
					
					
						commit
						ff692df2ee
					
				
							
								
								
									
										111
									
								
								mysql.cf
								
								
								
								
							
							
						
						
									
										111
									
								
								mysql.cf
								
								
								
								
							| 
						 | 
					@ -14,20 +14,31 @@ vars:
 | 
				
			||||||
	"cfg" data => mergedata(@(default_cfg),@(cfg_param));
 | 
						"cfg" data => mergedata(@(default_cfg),@(cfg_param));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	freebsd::
 | 
						freebsd::
 | 
				
			||||||
#		"pkg"  string => "mariadb106-server";
 | 
						#	"server_pkgs"  slist => {"mariadb106-server"};
 | 
				
			||||||
		"pkg"  slist => {"mysql80-server"};
 | 
						#	"client_pkgs"  slist => {"mariadb106-client"};
 | 
				
			||||||
 | 
							"server_pkgs"  slist => {"mysql80-server"};
 | 
				
			||||||
		"client_pkgs" slist => {"mysql80-client"};
 | 
							"client_pkgs" slist => {"mysql80-client"};
 | 
				
			||||||
 | 
							"type" string => "mysql8";
 | 
				
			||||||
		"service_name" string => "mysql-server";
 | 
							"service_name" string => "mysql-server";
 | 
				
			||||||
		"cfg_dir" string => "/usr/local/etc/mysql";
 | 
							"cfg_dir" string => "/usr/local/etc/mysql";
 | 
				
			||||||
		"cfg_file" string => "/usr/local/etc/mysql/my.cnf";
 | 
							"cfg_file" string => "/usr/local/etc/mysql/my.cnf";
 | 
				
			||||||
		"bin_dir" string => "/usr/local/bin";
 | 
							"bin_dir" string => "/usr/local/bin";
 | 
				
			||||||
	debian::
 | 
						debian::
 | 
				
			||||||
		"pkg"  slist => {"mariadb-server"};
 | 
							"server_pkgs"  slist => {"mariadb-server"};
 | 
				
			||||||
		"client_pkgs" slist => {"mariadb-client"};
 | 
							"client_pkgs" slist => {"mariadb-client"};
 | 
				
			||||||
 | 
							"type" string => "mariadb";
 | 
				
			||||||
		"service_name" string => "mysql";
 | 
							"service_name" string => "mysql";
 | 
				
			||||||
		"cfg_dir" string => "/etc/mysql";
 | 
							"cfg_dir" string => "/etc/mysql";
 | 
				
			||||||
		"cfg_file" string => "/etc/mysql/my.cnf";
 | 
							"cfg_file" string => "/etc/mysql/my.cnf";
 | 
				
			||||||
		"bin_dir" string => "/usr/bin";
 | 
							"bin_dir" string => "/usr/bin";
 | 
				
			||||||
 | 
						fedora::
 | 
				
			||||||
 | 
							"server_pkgs"  slist => {"mariadb-server"};
 | 
				
			||||||
 | 
							"client_pkgs" slist => {"mariadb-client"};
 | 
				
			||||||
 | 
							"type" string => "mariadb";
 | 
				
			||||||
 | 
							"service_name" string => "mariadb";
 | 
				
			||||||
 | 
							"cfg_dir" string => "/etc/mysql";
 | 
				
			||||||
 | 
							"cfg_file" string => "/etc/my.cnf";
 | 
				
			||||||
 | 
							"bin_dir" string => "/usr/bin";	any::
 | 
				
			||||||
	any::
 | 
						any::
 | 
				
			||||||
		"mysql_cmd" string => "$(bin_dir)/mysql";
 | 
							"mysql_cmd" string => "$(bin_dir)/mysql";
 | 
				
			||||||
		"mysqldump_cmd" string => "$(bin_dir)/mysqldump";
 | 
							"mysqldump_cmd" string => "$(bin_dir)/mysqldump";
 | 
				
			||||||
| 
						 | 
					@ -56,10 +67,6 @@ files:
 | 
				
			||||||
	classes => if_repaired("mysql_repaired");
 | 
						classes => if_repaired("mysql_repaired");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
methods:
 | 
					 | 
				
			||||||
	"any" usebundle => wmde_install_packages(@(mysql.pkg),"mysql"),
 | 
					 | 
				
			||||||
		depends_on => { "mysql_cfg_created"};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
services:
 | 
					services:
 | 
				
			||||||
	"$(service_name)"
 | 
						"$(service_name)"
 | 
				
			||||||
		depends_on => {"mysql_pkgs_installed"},
 | 
							depends_on => {"mysql_pkgs_installed"},
 | 
				
			||||||
| 
						 | 
					@ -74,7 +81,83 @@ services:
 | 
				
			||||||
reports:
 | 
					reports:
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bundle agent install_mysql_server(cfg)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					vars:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"mysqld_idx" slist  => getindices(@(cfg[settings][mysqld]));
 | 
				
			||||||
 | 
						"settings[mysqld][$(mysqld_idx)]" string => "$(cfg[settings][mysqld][$(mysqld_idx)])";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"j" string => storejson(@(cfg));
 | 
				
			||||||
 | 
					methods:
 | 
				
			||||||
 | 
						"any" usebundle => wmde_install_packages(@(mysql.server_pkgs),"mysql_server");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					files:
 | 
				
			||||||
 | 
						"$(mysql.cfg_file)"
 | 
				
			||||||
 | 
						copy_from => seed_cp("$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/my.cnf.mustache"),
 | 
				
			||||||
 | 
						handle => "myslq_server_cfg_created",
 | 
				
			||||||
 | 
						depends_on => {"mysql_server_pkgs_installed"};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"$(mysql.cfg_file)" 
 | 
				
			||||||
 | 
						create => "true",
 | 
				
			||||||
 | 
						perms => m("644"),
 | 
				
			||||||
 | 
						edit_line => set_variable_values_inix("$(this.bundle).settings","mysqld"),
 | 
				
			||||||
 | 
						depends_on => {"myslq_server_cfg_created"},
 | 
				
			||||||
 | 
						handle => "myslq_server_cfg_edited",
 | 
				
			||||||
 | 
						classes => if_repaired("mysql_server_repaired");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					methods:
 | 
				
			||||||
 | 
						"any" usebundle => wmde_service("$(mysql.service_name)","mysql_server_kept","mysql_server_repaired"),
 | 
				
			||||||
 | 
							depends_on => {"myslq_server_cfg_edited"};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					reports:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bundle edit_line set_variable_values_inix(tab, sectionName)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  vars:
 | 
				
			||||||
 | 
					      "index" slist => getindices("$(tab)[$(sectionName)]");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Be careful if the index string contains funny chars
 | 
				
			||||||
 | 
					      "cindex[$(index)]" string => canonify("$(index)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  classes:
 | 
				
			||||||
 | 
					      "edit_$(cindex[$(index)])"     not => strcmp("$($(tab)[$(sectionName)][$(index)])","dontchange"),
 | 
				
			||||||
 | 
					      comment => "Create conditions to make changes";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  field_edits:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # If the line is there, but commented out, first uncomment it
 | 
				
			||||||
 | 
					#      "#+\s*$(index)\s*=.*"
 | 
				
			||||||
 | 
					#      select_region => INI_section(escape("$(sectionName)")),
 | 
				
			||||||
 | 
					 #     edit_field => col("\s*=\s*","1","$(index)","set"),
 | 
				
			||||||
 | 
					  #    if => "edit_$(cindex[$(index)])";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # match a line starting like the key something
 | 
				
			||||||
 | 
					      "\s*$(index)\s*=.*"
 | 
				
			||||||
 | 
					      edit_field => col("\s*=\s*","2","$($(tab)[$(sectionName)][$(index)])","set"),
 | 
				
			||||||
 | 
					      select_region => INI_section(escape("$(sectionName)")),
 | 
				
			||||||
 | 
					      classes => results("bundle", "set_variable_values_ini_not_$(cindex[$(index)])"),
 | 
				
			||||||
 | 
					      if => "edit_$(cindex[$(index)])";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						delete_lines:
 | 
				
			||||||
 | 
							"!include.*";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  insert_lines:
 | 
				
			||||||
 | 
					      "[$(sectionName)]"
 | 
				
			||||||
 | 
					      location => start,
 | 
				
			||||||
 | 
					      comment => "Insert lines";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      "$(index)=$($(tab)[$(sectionName)][$(index)])"
 | 
				
			||||||
 | 
					      select_region => INI_section(escape("$(sectionName)")),
 | 
				
			||||||
 | 
					        if => "!(set_variable_values_ini_not_$(cindex[$(index)])_kept|set_variable_values_ini_not_$(cindex[$(index)])_repaired).edit_$(cindex[$(index)])";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bundle agent install_mysql_client
 | 
					bundle agent install_mysql_client
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -178,19 +261,25 @@ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bundle agent create_mysql_db(cfg)
 | 
					bundle agent create_mysql_db(cfg)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					classes:
 | 
				
			||||||
 | 
						"type_$(mysql.type)" ;
 | 
				
			||||||
vars:
 | 
					vars:
 | 
				
			||||||
	"db_name" string => "$(cfg[db_name])";
 | 
						"db_name" string => "$(cfg[db_name])";
 | 
				
			||||||
	"db_user" string => "$(cfg[db_user])";
 | 
						"db_user" string => "$(cfg[db_user])";
 | 
				
			||||||
	"host" string => "$(cfg[db_user_host])";
 | 
						"host" string => "$(cfg[db_user_host])";
 | 
				
			||||||
	"db_pass" string => "$(cfg[db_pass])";
 | 
						"db_pass" string => "$(cfg[db_pass])";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						type_mariadb::
 | 
				
			||||||
	"args" string => "-e \"CREATE DATABASE IF NOT EXISTS $(db_name); GRANT ALL PRIVILEGES ON $(db_name).* TO '$(db_user)'@'$(host)' IDENTIFIED BY '$(db_pass)'; \" ";
 | 
						"args" string => "-e \"CREATE DATABASE IF NOT EXISTS $(db_name); GRANT ALL PRIVILEGES ON $(db_name).* TO '$(db_user)'@'$(host)' IDENTIFIED BY '$(db_pass)'; \" ";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						type_mysql8::
 | 
				
			||||||
 | 
						"args" string => "-e \"CREATE DATABASE IF NOT EXISTS $(db_name); CREATE USER IF NOT EXISTS '$(db_user)'@'$(host)'; ALTER USER '$(db_user)'@'$(host)' IDENTIFIED BY '$(db_pass)'; GRANT ALL PRIVILEGES ON $(db_name).* TO '$(db_user)'@'$(host)';\" ";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
commands:
 | 
					commands:
 | 
				
			||||||
	debian::
 | 
					
 | 
				
			||||||
        	"$(mysql.mysql_cmd)"
 | 
					       	"$(mysql.mysql_cmd)"
 | 
				
			||||||
		args => "$(args)",
 | 
						args => "$(args)",
 | 
				
			||||||
		inform => "false";
 | 
						inform => "false";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
reports:
 | 
					reports:
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue