Gilles has uploaded a new change for review. https://gerrit.wikimedia.org/r/242813
Change subject: [WIP] Apache Traffic Server role ...................................................................... [WIP] Apache Traffic Server role This role only aims to cache thumbnails generated by thumbor, it doesn't try to cache articles. The rationale is that we might want to put ATS in front of the upload cache in production. Purging hasn't been tested/implemented yet. Bug: T112949 Change-Id: I289825e4b838a187dc6baf593c90102da2529df8 --- M puppet/hieradata/common.yaml A puppet/modules/role/manifests/trafficserver.pp A puppet/modules/role/settings/trafficserver.yaml A puppet/modules/trafficserver/manifests/init.pp A puppet/modules/trafficserver/templates/cache.config.erb A puppet/modules/trafficserver/templates/records.config.erb A puppet/modules/trafficserver/templates/regex_remap.config.erb A puppet/modules/trafficserver/templates/remap.config.erb 8 files changed, 94 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vagrant refs/changes/13/242813/1 diff --git a/puppet/hieradata/common.yaml b/puppet/hieradata/common.yaml index a1bf0fa..e6403f6 100644 --- a/puppet/hieradata/common.yaml +++ b/puppet/hieradata/common.yaml @@ -305,6 +305,8 @@ statsd::port: 8125 +trafficserver::port: 6090 + thumbor::deploy_dir: "%{hiera('mwv::vendor_dir')}/thumbor" thumbor::cfg_file: /etc/thumbor.conf diff --git a/puppet/modules/role/manifests/trafficserver.pp b/puppet/modules/role/manifests/trafficserver.pp new file mode 100644 index 0000000..5b4a82b --- /dev/null +++ b/puppet/modules/role/manifests/trafficserver.pp @@ -0,0 +1,15 @@ +# == Class: role::trafficserver +# +# Installs an Apache Traffic Server instance, which only caches thumbnails +# generated by thumbor. +# +class role::trafficserver { + include ::role::thumbor + include ::trafficserver + + mediawiki::settings { 'trafficserver': + values => { + 'wgUploadBaseUrl' => 'http://127.0.0.1:6090', + } + } +} diff --git a/puppet/modules/role/settings/trafficserver.yaml b/puppet/modules/role/settings/trafficserver.yaml new file mode 100644 index 0000000..3a6d379 --- /dev/null +++ b/puppet/modules/role/settings/trafficserver.yaml @@ -0,0 +1,2 @@ +forward_ports: + 6090: 6090 diff --git a/puppet/modules/trafficserver/manifests/init.pp b/puppet/modules/trafficserver/manifests/init.pp new file mode 100644 index 0000000..6a167bc --- /dev/null +++ b/puppet/modules/trafficserver/manifests/init.pp @@ -0,0 +1,60 @@ +# == Class: trafficserver +# +# This Puppet class installs and configures an Apache Traffic Server instance. +# +# === Parameters +# +# [*port*] +# Port Apache Traffic Server should listen to. +# +class trafficserver ( + $port +) { + package { 'trafficserver': + ensure => 'present' + } + + file { '/etc/trafficserver/records.config': + content => template('trafficserver/records.config.erb'), + mode => '0644', + owner => 'trafficserver', + group => 'trafficserver', + require => Package['trafficserver'], + } + + file { '/etc/trafficserver/remap.config': + content => template('trafficserver/remap.config.erb'), + mode => '0644', + owner => 'trafficserver', + group => 'trafficserver', + require => Package['trafficserver'], + } + + file { '/etc/trafficserver/cache.config': + content => template('trafficserver/cache.config.erb'), + mode => '0644', + owner => 'trafficserver', + group => 'trafficserver', + require => Package['trafficserver'], + } + + file { '/etc/trafficserver/regex_remap.config': + content => template('trafficserver/regex_remap.config.erb'), + mode => '0644', + owner => 'trafficserver', + group => 'trafficserver', + require => Package['trafficserver'], + } + + service { 'trafficserver': + ensure => running, + provider => init, + require => Package['trafficserver'], + subscribe => [ + File['/etc/trafficserver/records.config'], + File['/etc/trafficserver/remap.config'], + File['/etc/trafficserver/cache.config'], + File['/etc/trafficserver/regex_remap.config'], + ], + } +} diff --git a/puppet/modules/trafficserver/templates/cache.config.erb b/puppet/modules/trafficserver/templates/cache.config.erb new file mode 100644 index 0000000..5ae9570 --- /dev/null +++ b/puppet/modules/trafficserver/templates/cache.config.erb @@ -0,0 +1 @@ +url_regex=.* ttl-in-cache=365d \ No newline at end of file diff --git a/puppet/modules/trafficserver/templates/records.config.erb b/puppet/modules/trafficserver/templates/records.config.erb new file mode 100644 index 0000000..d39cd4c --- /dev/null +++ b/puppet/modules/trafficserver/templates/records.config.erb @@ -0,0 +1,12 @@ +CONFIG proxy.config.admin.user_id STRING trafficserver +CONFIG proxy.config.http.cache.http INT 1 +CONFIG proxy.config.reverse_proxy.enabled INT 1 +CONFIG proxy.config.url_remap.remap_required INT 1 +CONFIG proxy.config.url_remap.pristine_host_hdr INT 1 +CONFIG proxy.config.http.server_ports STRING <%= @port %> +CONFIG proxy.config.log.logfile_dir STRING /var/log/trafficserver +CONFIG proxy.config.output.logfile STRING traffic.out +CONFIG proxy.config.log.logging_enabled INT 3 +CONFIG proxy.config.http.cache.required_headers INT 0 +CONFIG proxy.config.http.insert_response_via_str INT 3 +LOCAL proxy.local.cluster.type INT 3 \ No newline at end of file diff --git a/puppet/modules/trafficserver/templates/regex_remap.config.erb b/puppet/modules/trafficserver/templates/regex_remap.config.erb new file mode 100644 index 0000000..0d5e51f --- /dev/null +++ b/puppet/modules/trafficserver/templates/regex_remap.config.erb @@ -0,0 +1 @@ +^/images/thumb/([^/]+)/([^/]+)/([^/]+)/([0-9]+)px-.* $s://localhost:8888/unsafe/$4x/$s://localhost:8080/images/$1/$2/$3 \ No newline at end of file diff --git a/puppet/modules/trafficserver/templates/remap.config.erb b/puppet/modules/trafficserver/templates/remap.config.erb new file mode 100644 index 0000000..2a08e62 --- /dev/null +++ b/puppet/modules/trafficserver/templates/remap.config.erb @@ -0,0 +1 @@ +map /images/thumb/ http://localhost:8888 @plugin=regex_remap.so @pparam=/etc/trafficserver/regex_remap.config \ No newline at end of file -- To view, visit https://gerrit.wikimedia.org/r/242813 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I289825e4b838a187dc6baf593c90102da2529df8 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/vagrant Gerrit-Branch: master Gerrit-Owner: Gilles <gdu...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits