Update cookbooks and add wordpress cookbook
This commit is contained in:
@@ -17,19 +17,34 @@ action :add do
|
||||
end
|
||||
end
|
||||
|
||||
def gpg_url(base_url, repo, format, master_token)
|
||||
base_install_url = ::File.join(base_url, node['packagecloud']['base_repo_path'])
|
||||
ext = (format == :deb) ? 'list' : 'repo'
|
||||
gpg_key_url_endpoint = construct_uri_with_options({base_url: base_install_url, repo: repo, endpoint: "gpg_key_url.#{ext}"})
|
||||
if !master_token.nil?
|
||||
gpg_key_url_endpoint.user = master_token
|
||||
gpg_key_url_endpoint.password = ''
|
||||
end
|
||||
|
||||
URI(get(gpg_key_url_endpoint, install_endpoint_params).body.chomp)
|
||||
end
|
||||
|
||||
def install_deb
|
||||
base_url = new_resource.base_url
|
||||
repo_url = construct_uri_with_options({base_url: base_url, repo: new_resource.repository, endpoint: node['platform']})
|
||||
|
||||
Chef::Log.debug("#{new_resource.name} deb repo url = #{repo_url}")
|
||||
|
||||
package 'wget'
|
||||
package 'apt-transport-https'
|
||||
|
||||
repo_url = read_token(repo_url)
|
||||
|
||||
template "/etc/apt/sources.list.d/#{filename}.list" do
|
||||
source 'apt.erb'
|
||||
cookbook 'packagecloud'
|
||||
mode '0644'
|
||||
variables :base_url => read_token(repo_url).to_s,
|
||||
variables :base_url => repo_url.to_s,
|
||||
:distribution => node['lsb']['codename'],
|
||||
:component => 'main'
|
||||
|
||||
@@ -37,10 +52,10 @@ def install_deb
|
||||
notifies :run, "execute[apt-get-update-#{filename}]", :immediately
|
||||
end
|
||||
|
||||
gpg_key_url = ::File.join(base_url, node['packagecloud']['gpg_key_path'])
|
||||
gpg_url = gpg_url(new_resource.base_url, new_resource.repository, :deb, new_resource.master_token)
|
||||
|
||||
execute "apt-key-add-#{filename}" do
|
||||
command "wget -qO - #{gpg_key_url} | apt-key add -"
|
||||
command "wget --auth-no-challenge -qO - #{gpg_url.to_s} | apt-key add -"
|
||||
action :nothing
|
||||
end
|
||||
|
||||
@@ -54,13 +69,9 @@ end
|
||||
|
||||
def install_rpm
|
||||
given_base_url = new_resource.base_url
|
||||
|
||||
base_repo_url = ::File.join(given_base_url, node['packagecloud']['base_repo_path'])
|
||||
|
||||
base_url_endpoint = construct_uri_with_options({base_url: base_repo_url, repo: new_resource.repository, endpoint: 'rpm_base_url'})
|
||||
|
||||
gpg_filename = URI.parse(base_repo_url).host.gsub!('.', '_')
|
||||
|
||||
if new_resource.master_token
|
||||
base_url_endpoint.user = new_resource.master_token
|
||||
base_url_endpoint.password = ''
|
||||
@@ -91,18 +102,15 @@ def install_rpm
|
||||
not_if 'rpm -qa | grep -qw pygpgme'
|
||||
end
|
||||
|
||||
remote_file "/etc/pki/rpm-gpg/RPM-GPG-KEY-#{gpg_filename}" do
|
||||
source ::File.join(given_base_url, node['packagecloud']['gpg_key_path'])
|
||||
mode '0644'
|
||||
end
|
||||
gpg_url = gpg_url(new_resource.base_url, new_resource.repository, :rpm, new_resource.master_token)
|
||||
|
||||
template "/etc/yum.repos.d/#{filename}.repo" do
|
||||
source 'yum.erb'
|
||||
cookbook 'packagecloud'
|
||||
mode '0644'
|
||||
variables :base_url => read_token(base_url).to_s,
|
||||
:gpg_filename => gpg_filename,
|
||||
variables :base_url => base_url.to_s,
|
||||
:name => filename,
|
||||
:gpg_url => gpg_url.to_s,
|
||||
:repo_gpgcheck => 1,
|
||||
:description => filename,
|
||||
:priority => new_resource.priority,
|
||||
@@ -138,6 +146,7 @@ def install_gem
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def read_token(repo_url, gems=false)
|
||||
return repo_url unless new_resource.master_token
|
||||
|
||||
@@ -163,19 +172,27 @@ def read_token(repo_url, gems=false)
|
||||
end
|
||||
|
||||
def install_endpoint_params
|
||||
dist = value_for_platform_family(
|
||||
dist = new_resource.force_dist || value_for_platform_family(
|
||||
'debian' => node['lsb']['codename'],
|
||||
['rhel', 'fedora'] => node['platform_version'],
|
||||
)
|
||||
|
||||
if node['fqdn'].nil?
|
||||
Chef::Log.fatal("This node's fqdn is set to nil, so a read token cannot be issued!" \
|
||||
"Please change your fqdn settings.")
|
||||
hostname = node['packagecloud']['hostname_override'] ||
|
||||
node['fqdn'] ||
|
||||
node['hostname']
|
||||
|
||||
if !hostname
|
||||
raise("Can't determine hostname! Set node['packagecloud']['hostname_override'] " \
|
||||
"if it cannot be automatically determined by Ohai.")
|
||||
end
|
||||
|
||||
{ :os => node['platform'],
|
||||
{ :os => os_platform,
|
||||
:dist => dist,
|
||||
:name => node['fqdn'] }
|
||||
:name => hostname }
|
||||
end
|
||||
|
||||
def os_platform
|
||||
new_resource.force_os || node['platform']
|
||||
end
|
||||
|
||||
def filename
|
||||
@@ -203,5 +220,5 @@ def construct_uri_with_options(options)
|
||||
end
|
||||
|
||||
def append_trailing_slash(str)
|
||||
str.end_with?("/") ? str : str << "/"
|
||||
str.end_with?("/") ? str : str + "/"
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user