|
1 | 1 | ey_cloud_report "mysql installation" do
|
2 |
| - message "installation of mysql packages and dependencies started" |
| 2 | + message "Installation of MySQL packages and dependencies started." # AI-GEN - chatgpt |
3 | 3 | end
|
4 | 4 |
|
5 | 5 | apt_repository "mysql57" do
|
|
20 | 20 |
|
21 | 21 | known_versions = []
|
22 | 22 | install_version = node["mysql"]["latest_version"]
|
23 |
| - |
24 |
| -`apt-cache madison percona-server-server-#{node["mysql"]["short_version"]} |awk '{print $3'} && apt-cache madison percona-server-server |awk '{print $3}'`.split(/\n+/).each { |v| known_versions.append(v.split("-")[0]) } |
| 23 | +# AI-GEN START - chatgpt |
| 24 | +short_version = node["mysql"]["short_version"] |
| 25 | +instance_role = node["dna"]["instance_role"] |
| 26 | +# AI-GEN END |
| 27 | + |
| 28 | +# AI-GEN START - chatgpt |
| 29 | +`apt-cache madison percona-server-server-#{short_version} | awk '{print $3}' && apt-cache madison percona-server-server | awk '{print $3}'`.split(/\n+/).each do |v| |
| 30 | + known_versions.append(v.split("-")[0]) |
| 31 | +end |
| 32 | +# AI-GEN END |
25 | 33 | package_version = known_versions.detect { |v| v =~ /^#{install_version}/ }
|
26 | 34 |
|
27 |
| -lock_db_version = node.engineyard.environment.components.find_all { |e| e["key"] == "lock_db_version" }.first["value"] if node.engineyard.environment.lock_db_version? |
| 35 | +# AI-GEN START - chatgpt |
| 36 | +if node.engineyard.environment.lock_db_version? |
| 37 | + lock_db_version = node.engineyard.environment.components.find_all { |e| e["key"] == "lock_db_version" }.first["value"] |
| 38 | +end |
| 39 | +# AI-GEN END |
28 | 40 |
|
29 | 41 | lock_version_file = "/db/.lock_db_version"
|
30 | 42 | db_running = `mysql -N -e "select 1;" 2> /dev/null`.strip == "1"
|
31 | 43 |
|
32 |
| -# create or delete /db/.lock_db_version |
33 |
| -if node["dna"]["instance_role"][/^(db|solo)/] |
| 44 | +# Create or delete /db/.lock_db_version - AI-GEN - chatgpt |
| 45 | +if instance_role[/^(db|solo)/] # AI-GEN - chatgpt |
34 | 46 | execute "dropping lock version file" do
|
35 | 47 | command "echo $(mysql --version | grep -E -o '(Distrib|Ver) [0-9]+\.[0-9]+\.[0-9]+' | awk '{print $NF}') > #{lock_version_file}"
|
36 | 48 | action :run
|
|
43 | 55 | end
|
44 | 56 | end
|
45 | 57 |
|
46 |
| -# install the dependencies of the Percona packages |
| 58 | +# AI-GEN START - chatgpt |
| 59 | +# Install the dependencies of the Percona packages |
47 | 60 | ["debsums", "libaio1", "libmecab2"].each do |package|
|
48 |
| - package package |
| 61 | + package package do |
| 62 | + action :install |
| 63 | + end |
| 64 | +end |
| 65 | +# AI-GEN END |
| 66 | + |
| 67 | +# AI-GEN START - chatgpt |
| 68 | +package "libmysqlclient-dev" do |
| 69 | + action :install |
49 | 70 | end
|
| 71 | +# AI-GEN END |
50 | 72 |
|
51 |
| -package "libmysqlclient-dev" |
52 |
| -# installs mysql client to all instnaces. |
| 73 | +# Installs MySQL client to all instances - AI-GEN - chatgpt |
53 | 74 | if node.engineyard.instance.arch_type == "arm64"
|
54 |
| - package "mysql-client" |
| 75 | + # AI-GEN START - chatgpt |
| 76 | + package "mysql-client" do |
| 77 | + action :install |
| 78 | + end |
| 79 | + # AI-GEN END |
55 | 80 | else
|
56 |
| - package "percona-server-client" |
| 81 | +# AI-GEN START - cursor |
| 82 | + case short_version |
| 83 | + when "5.7" |
| 84 | + package "percona-server-client-5.7" do |
| 85 | + action :install |
| 86 | + end |
| 87 | + when "8.0" |
| 88 | + package "percona-server-client" do |
| 89 | + action :install |
| 90 | + end |
| 91 | + end |
| 92 | +# AI-GEN END |
57 | 93 | end
|
58 | 94 |
|
59 |
| -case node["mysql"]["short_version"] |
60 |
| -when "5.7" |
61 |
| - packages = ["percona-server-common-5.7", "libperconaserverclient20", "percona-server-client-5.7", "percona-server-server-5.7"] |
62 |
| -when "8.0" |
63 |
| - packages = ["percona-server-common", "libperconaserverclient21", "percona-server-client", "percona-server-server"] |
64 |
| -end |
| 95 | +# AI-GEN START - chatgpt |
| 96 | +packages = case short_version |
| 97 | + when "5.7" |
| 98 | + ["percona-server-common-5.7", "libperconaserverclient20", "percona-server-server-5.7"] |
| 99 | + when "8.0" |
| 100 | + ["percona-server-common", "libperconaserverclient21", "percona-server-server"] |
| 101 | + end |
| 102 | +# AI-GEN END |
65 | 103 |
|
66 |
| -if node["dna"]["instance_role"][/db|solo/] |
| 104 | +if instance_role[/db|solo/] # AI-GEN - chatgpt |
67 | 105 | directory "/etc/systemd/system/mysql.service.d" do
|
68 | 106 | owner "root"
|
69 | 107 | group "root"
|
|
80 | 118 | end
|
81 | 119 | end
|
82 | 120 |
|
83 |
| -install_version = if ::File.exist?(node["lock_version_file"]) |
84 |
| - `cat #{node["lock_version_file"]}`.strip |
| 121 | +install_version = if ::File.exist?(lock_version_file) # AI-GEN - chatgpt |
| 122 | + `cat #{lock_version_file}`.strip # AI-GEN - chatgpt |
85 | 123 | else
|
86 | 124 | node["mysql"]["latest_version"]
|
87 | 125 | end
|
| 126 | + |
88 | 127 | if package_version.nil? && node.engineyard.instance.arch_type == "amd64"
|
89 |
| - raise "Chef does not know about MySQL version #{install_version} the current known versions of MySQL #{known_versions}. Please use them or contact support for more assistance" |
| 128 | + raise "Chef does not know about MySQL version #{install_version}. The current known versions of MySQL are #{known_versions.join(', ')}. Please use them or contact support for more assistance." # AI-GEN - chatgpt |
90 | 129 | end
|
91 | 130 |
|
92 |
| -package_version = `apt-cache madison #{packages.last} |awk '{print $3}' |grep #{install_version}`.split(/\n/).last |
| 131 | +package_version = `apt-cache madison #{packages.last} | awk '{print $3}' | grep #{install_version}`.split(/\n/).last # AI-GEN - chatgpt |
93 | 132 |
|
94 | 133 | execute "set-deb-confs" do
|
95 |
| - command %(echo "#{packages.last} #{packages.last}/root-pass password #{node.engineyard.environment['db_admin_password']}" |debconf-set-selections && echo "#{packages.last} #{packages.last}/re-root-pass password #{node.engineyard.environment['db_admin_password']}" |debconf-set-selections) |
| 134 | + command %(echo "#{packages.last} #{packages.last}/root-pass password #{node.engineyard.environment['db_admin_password']}" | debconf-set-selections && echo "#{packages.last} #{packages.last}/re-root-pass password #{node.engineyard.environment['db_admin_password']}" | debconf-set-selections) # AI-GEN - chatgpt |
96 | 135 | end
|
97 | 136 |
|
98 |
| -# Loop the packages because chef doesn't understand, you install the dependency before even in the array... |
99 |
| -if node["dna"]["instance_role"][/^(db|solo)/] |
100 |
| -packages.each do |package| |
101 |
| - apt_package package do |
102 |
| - version "#{package_version}" |
103 |
| - action :install |
104 |
| - options ["--yes", "--fix-missing"] |
105 |
| - ignore_failure true |
106 |
| - only_if { node.engineyard.instance.arch_type == "amd64" } |
| 137 | +# Loop through the packages because chef doesn't understand you install the dependency before even in the array... AI-GEN - chatgpt |
| 138 | +if instance_role[/^(db|solo)/] # AI-GEN - chatgpt |
| 139 | + packages.each do |package| |
| 140 | + apt_package package do |
| 141 | + version package_version # AI-GEN - chatgpt |
| 142 | + action :install |
| 143 | + options "--yes --fix-missing" # AI-GEN - chatgpt |
| 144 | + ignore_failure true |
| 145 | + only_if { node.engineyard.instance.arch_type == "amd64" } |
| 146 | + end |
107 | 147 | end
|
108 | 148 | end
|
109 |
| -end |
110 | 149 |
|
111 | 150 | ey_cloud_report "mysql installation" do
|
112 |
| - message "installation of mysql packages and dependencies finished" |
| 151 | + message "Installation of MySQL packages and dependencies finished." # AI-GEN - chatgpt |
113 | 152 | end
|
114 | 153 |
|
115 |
| -if node["dna"]["instance_role"][/^(db|solo)/] && node["mysql"]["short_version"] == "8.0" |
| 154 | +if instance_role[/^(db|solo)/] && short_version == "8.0" # AI-GEN - chatgpt |
116 | 155 | bash "Set my.cnf alternatives for MySQL 8.0" do
|
117 | 156 | code <<-EOS
|
118 |
| - update-alternatives --install /etc/mysql/my.cnf my.cnf /etc/mysql/percona-server.cnf 1000 |
119 |
| - update-alternatives --set my.cnf /etc/mysql/percona-server.cnf |
120 |
| - EOS |
| 157 | + update-alternatives --install /etc/mysql/my.cnf my.cnf /etc/mysql/percona-server.cnf 1000 |
| 158 | + update-alternatives --set my.cnf /etc/mysql/percona-server.cnf |
| 159 | + EOS |
121 | 160 | end
|
122 | 161 | end
|
0 commit comments