Как обновить HAProxy на OpsWorks

Мы используем стек AWS OpsWorks с версией Chef 11.10. с уровнем HAProxy по умолчанию. Мы хотели бы обновить HAProxy до последней стабильной версии 1.6 (со стабильной версии 1.4 по умолчанию). Кажется, для нашей версии Ubuntu существует специальный PPA.

Но где мы можем заставить OpsWorks использовать этот PPA для установки HAProxy?

В поваренной книге по умолчанию есть файл атрибутов по умолчанию со следующими строками:

default[:haproxy][:version] = '1.4.22'
default[:haproxy][:patchlevel] = '1'
default[:haproxy][:rpm] = "haproxy-#{node[:haproxy][:version]}-#{node[:haproxy][:patchlevel]}.#{rhel_arch}.rpm"
default[:haproxy][:rpm_url] = "#{node[:opsworks_commons][:assets_url]}/packages/#{node[:platform]}/#{node[:platform_version]}/#{node[:haproxy][:rpm]}"

Перезапись файла в наших поваренных книгах и наивное изменение здесь номера версии не дает желаемого эффекта.


person Alexander Presber    schedule 13.04.2016    source источник


Ответы (1)


В итоге мы перезаписали рецепт haproxy/recipes/default.rb вот так:

#Install software-properties-common if not installed
package 'software-properties-common' do
  action :install
end

#Add PPA for haproxy 1.6 and update repo
execute "add-ppa-update" do
  command "add-apt-repository ppa:vbernat/haproxy-1.6 && apt-get update -y"
  action :run
end

package "haproxy" do
  retries 3
  retry_delay 5

  version '1.6.4-3ppa1~trusty'
  action  :install
end

if platform?('debian','ubuntu')
  template '/etc/default/haproxy' do
    source 'haproxy-default.erb'
    owner 'root'
    group 'root'
    mode 0644
  end
end

include_recipe 'haproxy::service'

template '/etc/haproxy/haproxy.cfg' do
  source 'haproxy.cfg.erb'
  owner 'root'
  group 'root'
  mode 0644
  notifies :restart, "service[haproxy]"
end

template "/etc/haproxy/server.pem" do
  source    "server.pem.erb"
  owner     'root'
  group     'root'
  mode      0600
  notifies  :restart, "service[haproxy]"
end

service 'haproxy' do
  action [:enable, :start]
end

Кроме того, нам нужно было обновить haproxy.conf для работы с новой версией.

Теперь все прекрасно работает.

person Alexander Presber    schedule 14.04.2016