From fc4a808cfefa77f3b215c69a5efd50bb4f92ddd6 Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Tue, 18 Mar 2014 15:06:32 -0700 Subject: [PATCH 01/11] Added zypper dependency --- metadata.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/metadata.rb b/metadata.rb index 052dc8d..5ed9e77 100644 --- a/metadata.rb +++ b/metadata.rb @@ -8,6 +8,7 @@ depends "apt" depends "yum" +depends "zypper" # depends "rightscale" recipe "zendserver", "Adds the Zend Server repo and installs the package" From d19348d61a0c49ea829716496d251d6fd48785da Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Tue, 18 Mar 2014 15:09:51 -0700 Subject: [PATCH 02/11] Updated nginx attribute --- metadata.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/metadata.rb b/metadata.rb index 5ed9e77..ea5be12 100644 --- a/metadata.rb +++ b/metadata.rb @@ -45,6 +45,15 @@ "zendserver::install" ] +attribute "zendserver/nginx", + :display_name => "Nginx true or not", + :description => "Set if you are using Nginx instead of Apache true or false boolean", + :required => "optional", + :default => false, + :recipes => [ + "zendserver::install" + ] + attribute "zendserver/adminpassword", :display_name => "Admin password", :description => "Zend Server GUI admin password", From 90b94f8352f74f9065cd4332f89ffd0ba9a9e634 Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Tue, 25 Mar 2014 14:07:20 -0700 Subject: [PATCH 03/11] Zypper related resource --- providers/repository.rb | 59 +++++++++++++++++++++++++++++++++++++++++ resources/repository.rb | 15 +++++++++++ 2 files changed, 74 insertions(+) create mode 100644 providers/repository.rb create mode 100644 resources/repository.rb diff --git a/providers/repository.rb b/providers/repository.rb new file mode 100644 index 0000000..9e744a4 --- /dev/null +++ b/providers/repository.rb @@ -0,0 +1,59 @@ +# +# Cookbook Name:: zendserver +# Provider:: repository +# +# Once there is build in zypper repository support in Chef we can relay of it. +# For now have to take care of it inside zendserver cookbook. +# + +action :add do + if new_resource.key && (new_resource.key =~ /http/) + execute "rpm_import_#{Digest::MD5.hexdigest(new_resource.key)}" do + command "rpm --import #{new_resource.key}" + end + else + Chef::Log.error "Can't import #{new_resource.key}" + end + end + + if ::File.exists? "/etc/zypp/repos.d/rp-#{new_resource.alias}.repo" + Chef::Log.info "Allready added #{new_resource.alias} repo config file" + else + Chef::Log.info "Adding #{new_resource.alias} repository config file" + + # -g option to force GPG key enabled. + execute "zypper_addrepo_#{new_resource.alias}" do + command "zypper addrepo -g -n '#{new_resource.title}' #{new_resource.uri} rp-#{new_resource.alias}" + end + + new_resource.updated_by_last_action(true) + end +end + +action :remove do + if ::File.exists? "/etc/zypp/repos.d/rp-#{new_resource.alias}.repo" + Chef::Log.info "Removing #{new_resource.alias} repository" + + execute "zypper_removerepo_#{new_resource.alias}" do + command "zypper removerepo rp-#{new_resource.alias}" + end + + new_resource.updated_by_last_action(true) + else + Chef::Log.error "Remove failed for #{new_resource.alias}" + end +end + +action :refresh do + if ::File.exists? "/etc/zypp/repos.d/rp-#{new_resource.alias}.repo" + Chef::Log.info "Refreshing #{new_resource.alias} repository" + + execute "zypper_refresh_#{new_resource.alias}" do + command "zypper refresh rp-#{new_resource.alias}" + end + + new_resource.updated_by_last_action(true) + else + Chef::Log.error "Refresh failed for #{new_resource.alias}" + end +end diff --git a/resources/repository.rb b/resources/repository.rb new file mode 100644 index 0000000..15f3cd7 --- /dev/null +++ b/resources/repository.rb @@ -0,0 +1,15 @@ +# +# Cookbook Name:: zendserver +# Resource:: repository +# +# + +actions :add, :remove, :refresh + +attribute :alias, :kind_of => String, :name_attribute => true +attribute :uri, :kind_of => String +attribute :title, :kind_of => String +attribute :keyserver, :kind_of => String, :default => nil +attribute :key, :kind_of => String, :default => nil + +default_action :add From 6cd78a39a9bca9bcdf413212b431df14b4c138b3 Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Tue, 25 Mar 2014 14:17:17 -0700 Subject: [PATCH 04/11] Internal resource --- providers/repository.rb | 2 +- recipes/default.rb | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/providers/repository.rb b/providers/repository.rb index 9e744a4..a6c5d4c 100644 --- a/providers/repository.rb +++ b/providers/repository.rb @@ -1,5 +1,5 @@ # -# Cookbook Name:: zendserver +# Cookbook Name:: zend-server # Provider:: repository # # Once there is build in zypper repository support in Chef we can relay of it. diff --git a/recipes/default.rb b/recipes/default.rb index 8282311..aeb7e54 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -58,10 +58,17 @@ action :add end when "suse" - zypper_repository "zend-server" do - uri "http://repos.zend.com/zend-server/#{version}/sles/ZendServer-x86_64" - key "http://repos.zend.com/zend.key" - title "#{version}" + zendserver_repository "zend-server" do + uri "http://repos.zend.com/zend-server/#{version}/sles/ZendServer-x86_64" + key "http://repos.zend.com/zend.key" + title "zend-server-#{version}" + action :add + end + zendserver_repository "zend-server-noarch" do + uri "http://repos.zend.com/zend-server/#{version}/sles/ZendServer-noarch" + key "http://repos.zend.com/zend.key" + title "zend-server-noarch-#{version}" + action :add end end From ff8b45a983910f7b2c07000e0a943567134edabc Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Tue, 25 Mar 2014 14:20:02 -0700 Subject: [PATCH 05/11] Dash --- resources/repository.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/repository.rb b/resources/repository.rb index 15f3cd7..36e5717 100644 --- a/resources/repository.rb +++ b/resources/repository.rb @@ -1,8 +1,8 @@ # -# Cookbook Name:: zendserver +# Cookbook Name:: zend-server # Resource:: repository # -# + actions :add, :remove, :refresh From d47d2e6382e807082d15b9373dde3c21e1c930d3 Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Tue, 25 Mar 2014 14:27:31 -0700 Subject: [PATCH 06/11] Added cpu architecture detection for repo URL --- recipes/default.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/default.rb b/recipes/default.rb index aeb7e54..f1b63ea 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -14,6 +14,7 @@ version = node[:zendserver][:version] phpversion = node[:zendserver][:phpversion] +cpuarch = node[:kernel][:mashine] case node[:zendserver][:nginx] when true @@ -59,7 +60,7 @@ end when "suse" zendserver_repository "zend-server" do - uri "http://repos.zend.com/zend-server/#{version}/sles/ZendServer-x86_64" + uri "http://repos.zend.com/zend-server/#{version}/sles/ZendServer-#{cpuarch}" key "http://repos.zend.com/zend.key" title "zend-server-#{version}" action :add From c8fe3fd088fc9131e1db52bf3a77c84ed062c422 Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Tue, 25 Mar 2014 14:32:52 -0700 Subject: [PATCH 07/11] Internalization --- metadata.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/metadata.rb b/metadata.rb index ea5be12..fea67f2 100644 --- a/metadata.rb +++ b/metadata.rb @@ -8,7 +8,6 @@ depends "apt" depends "yum" -depends "zypper" # depends "rightscale" recipe "zendserver", "Adds the Zend Server repo and installs the package" From 313dce16d202fce20aa6ff1a5753bc0d758b91c7 Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Tue, 25 Mar 2014 15:01:45 -0700 Subject: [PATCH 08/11] Few fixes to make it all work --- metadata.rb | 2 +- providers/repository.rb | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/metadata.rb b/metadata.rb index fea67f2..df850f2 100644 --- a/metadata.rb +++ b/metadata.rb @@ -48,7 +48,7 @@ :display_name => "Nginx true or not", :description => "Set if you are using Nginx instead of Apache true or false boolean", :required => "optional", - :default => false, + :default => 'false', :recipes => [ "zendserver::install" ] diff --git a/providers/repository.rb b/providers/repository.rb index a6c5d4c..c027dd4 100644 --- a/providers/repository.rb +++ b/providers/repository.rb @@ -10,7 +10,6 @@ if new_resource.key && (new_resource.key =~ /http/) execute "rpm_import_#{Digest::MD5.hexdigest(new_resource.key)}" do command "rpm --import #{new_resource.key}" - end else Chef::Log.error "Can't import #{new_resource.key}" end From 0dfd92af250009b51c6cdcee270366933f3847d5 Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Tue, 25 Mar 2014 15:06:47 -0700 Subject: [PATCH 09/11] Making things work --- providers/repository.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/providers/repository.rb b/providers/repository.rb index c027dd4..559711b 100644 --- a/providers/repository.rb +++ b/providers/repository.rb @@ -6,13 +6,13 @@ # For now have to take care of it inside zendserver cookbook. # -action :add do +action :add do if new_resource.key && (new_resource.key =~ /http/) execute "rpm_import_#{Digest::MD5.hexdigest(new_resource.key)}" do command "rpm --import #{new_resource.key}" - else - Chef::Log.error "Can't import #{new_resource.key}" end + else + Chef::Log.error "Can't import #{new_resource.key}" end if ::File.exists? "/etc/zypp/repos.d/rp-#{new_resource.alias}.repo" From 57e0282c623a235e4b6511ced69517c4dc30c0af Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Tue, 25 Mar 2014 15:23:53 -0700 Subject: [PATCH 10/11] typo s intend of c --- recipes/default.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/default.rb b/recipes/default.rb index f1b63ea..d4b6d4a 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -14,7 +14,7 @@ version = node[:zendserver][:version] phpversion = node[:zendserver][:phpversion] -cpuarch = node[:kernel][:mashine] +cpuarch = node[:kernel][:machine] case node[:zendserver][:nginx] when true From 5bd80c2727b7d52bb2dc2e4c6d98df0a3f1fad79 Mon Sep 17 00:00:00 2001 From: Nick Maiorsky Date: Wed, 26 Mar 2014 14:10:27 -0700 Subject: [PATCH 11/11] Added SUSE to readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fc8e28b..a675eb1 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ Requirements #### Platforms - Debian, Ubuntu - RHEL, CentOS, Oracle Linux +- SLES, OpenSUSE #### Cookbooks - aptitude @@ -45,7 +46,7 @@ Attributes ['zendserver']['nginx'] boolean Set in you are using Nginx instead of Apache true or false boolean - false + 'false' ['zendserver']['ordernumber']