Projects
home:rottame:vhosts-ng
rubygem-bender-vhng
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 16
View file
rubygem-bender-vhng.changes
Changed
@@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Tue Oct 28 10:16:56 UTC 2025 - Angelo Grossini <angelo@intercom.it> + +- add varnish support + +------------------------------------------------------------------- Fri Dec 15 09:09:58 UTC 2023 - <rottame@intercom.it> - depend from activerecord 6
View file
rubygem-bender-vhng.spec
Changed
@@ -1,7 +1,7 @@ %define mod_name bender-vhng %define mod_full_name %{mod_name}-%{version} Name: rubygem-bender-vhng -Version: 2.1.4 +Version: 2.1.5 Release: 0 Summary: vhng provisioning tool License: Apache-2.0
View file
bender-vhng-2.1.4.gem/checksums.yaml.gz -> bender-vhng-2.1.5.gem/checksums.yaml.gz
Changed
@@ -1,7 +1,7 @@ --- SHA256: - metadata.gz: 0f6bba510636480271278d74fd55dc5316652db8c4ae2d48b201fadf00656e0f - data.tar.gz: ebed7f82902ccb815077fcf3dc5309dfe8e0b84444502dbba83062b0bfb82fc1 + metadata.gz: 341221ad3f416654f89fde050fdcea298f21fdd12c119512d407c976229555c1 + data.tar.gz: 4cc7228fbad33db503eedef17f3fb16a9026fd52a9ceed0dc6400376378b865f SHA512: - metadata.gz: '018864741cdcb66054ac24ae02dd241f0662a049610b3f42f864398a2689fbdb23ea4a8fca06090c46978cb0574aa57e6bc6c4e21bb40fbcc6f9f9139e4da09a' - data.tar.gz: d3ca1ba84706939d5a8596be94ac2f00145dc7c0d647808792b2d42d31cae7d7fb2be3fc2a6a114811fdf5251e40a7221fb2dc61c9c0a22a9bb4122e76a8d2b5 + metadata.gz: c8789599868152d74c9c3211d39e41d09579bc9c02f72c635eb0e7e73986aec985366677a55b1a0ae7b45364364b7dedee1487a91476347a60c8d8aead1335f8 + data.tar.gz: a072051e6c54cd7dc83a51b843b58b4c3c5e35b5ee6de5809ed96d8d749196338cac86a8b9439c4bbbd9940179f640cdb2af662c56cc2b13a48743e616dea0bc
View file
bender-vhng-2.1.4.gem/data/config/baseconfig.xml -> bender-vhng-2.1.5.gem/data/config/baseconfig.xml
Changed
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ISO-8859-1"?> <ICSystemConf> <Host>vhosts</Host> - <DatabasePath>/var/lib/bender/vhosts.kch</DatabasePath> + <DatabasePath>/var/lib/tomte/vhosts.kch</DatabasePath> <Log> <path>/var/log/bender.log</path> <level>2</level></Log> @@ -9,26 +9,26 @@ <LibDir>/usr/lib/bender</LibDir> <VarLibDir>/var/lib/bender</VarLibDir> <VhostsDatabase> - <host>mariadb</host> + <host>mariadb-vh</host> <port>3306</port> - <username>foobar</username> - <password>foobar</password> + <username>root</username> + <password>rootpw</password> </VhostsDatabase> <VhostsSlaveDatabase> - <host>mariadb</host> + <host>mariadb-vh</host> <port>3306</port> - <username>foobar</username> - <password>foobar</password> + <username>root</username> + <password>rootpw</password> </VhostsSlaveDatabase> <ServicesDatabase> - <host>mariadb</host> + <host>mariadb-vh</host> <port>3306</port> - <username>foobar</username> - <password>foobar</password> + <username>root</username> + <password>rootpw</password> <database>services_login</database> </ServicesDatabase> <sftpgo> - <url>http://admin:admin@sftpgo:8080</url> + <url>http://admin:admin@sftpgo-vh:8080</url> </sftpgo> <NFS> <ExportsFile>/tmp/exports</ExportsFile>
View file
bender-vhng-2.1.4.gem/data/config/webserver.xml -> bender-vhng-2.1.5.gem/data/config/webserver.xml
Changed
@@ -9,7 +9,7 @@ <mode>0755</mode> </Path> <Path name="SrvDir"> - <path>/srv/vhosts</path> + <path>/storage/vhosts</path> <uid>root</uid> <gid>root</gid> <mode>0755</mode> @@ -32,6 +32,18 @@ <gid>root</gid> <mode>0755</mode> </Path> + <Path name="VarnishConf"> + <path>/storage/etc/varnish/vcl.d</path> + <uid>root</uid> + <gid>root</gid> + <mode>0755</mode> + </Path> + <Path name="VarnishSysconfig"> + <path>/storage/etc/varnish/sysconfig</path> + <uid>root</uid> + <gid>root</gid> + <mode>0755</mode> + </Path> <Path name="PHPFPM2Vhosts"> <path>/storage/etc/php/fpm.d</path> <uid>root</uid> @@ -83,7 +95,7 @@ </MandatoryPaths> <System> <StoragePath>/storage</StoragePath> - <SrvPath>/srv</SrvPath> + <SrvPath>/storage</SrvPath> <VhostsPath>/vhosts</VhostsPath> <LogPath>/logs</LogPath> <ProxyRoot>/storage/proxy</ProxyRoot> @@ -108,16 +120,16 @@ </Logs> </ServicePaths> <SystemUsers> - <DefaultContainerUser>app</DefaultContainerUser> + <DefaultContainerUser>yggdra</DefaultContainerUser> <DefaultContainerUID>2000</DefaultContainerUID> <UIDOffset>10000</UIDOffset> - <DefaultGroup>vhost</DefaultGroup> + <DefaultGroup>yggdra</DefaultGroup> <DefaultGroupId>1000</DefaultGroupId> <DefaultShell>/bin/false</DefaultShell> </SystemUsers> <WritablePaths> <mode>02775</mode> - <gid>vhost</gid> + <gid>yggdra</gid> </WritablePaths> <Docker> <Images> @@ -224,6 +236,8 @@ <ProxyLogRoot>/storage/logs</ProxyLogRoot> <ProxyConfig>/etc/nginx/vhosts.available</ProxyConfig> <ProxyConfigEnabled>/etc/nginx/vhosts.d</ProxyConfigEnabled> + <VarnishConfigPath>/etc/varnish/vcl.conf</VarnishConfigPath> + <VarnishSysconfigFile>varnish</VarnishSysconfigFile> </ContainerPaths> <AWStats> <AWStatsTimeMatch>%YYYY-6%MM-6%DD-6</AWStatsTimeMatch>
View file
bender-vhng-2.1.4.gem/data/lib/bender/classes/Bender.rb -> bender-vhng-2.1.5.gem/data/lib/bender/classes/Bender.rb
Changed
@@ -120,9 +120,9 @@ --provision class service provision, ie, when a new service is added on the host --maint class typically run from cron to perform periodical housekeeping - + class: docker, webserver, letsencrypt or mysql - + Switches are one or more of --silent output is sent to configured log output, usually when running from cron @@ -146,4 +146,3 @@ # $Author: $ # $Date: $ # $Id: $ -
View file
bender-vhng-2.1.4.gem/data/lib/bender/classes/Models/Webserver/WebHosts.rb -> bender-vhng-2.1.5.gem/data/lib/bender/classes/Models/Webserver/WebHosts.rb
Changed
@@ -140,6 +140,7 @@ protected def normalize(data) + environment = Hashdata:env_vars.map{|e| e:key, e:value} #data = OpenStruct.new(data) ret = { service: { @@ -202,6 +203,10 @@ additional: data:httpd_additional || '', } }, + varnish: { + enabled: data:varnish_enabled.presence || environment'ENABLE_VARNISH' == 'true', + vcl: data:varnish_vcl.presence + }, proxy: { max_body_size: data:upload_max_size.to_i },
View file
bender-vhng-2.1.4.gem/data/lib/bender/classes/Plugins/Webserver/10-Apache2.rb -> bender-vhng-2.1.5.gem/data/lib/bender/classes/Plugins/Webserver/10-Apache2.rb
Changed
@@ -6,7 +6,7 @@ def provision(args) host = args:host service = args:service - env = args:env + env = args:env return unless enabled?(host) @@ -17,7 +17,7 @@ def update(args) host = args:host service = args:service - env = args:env + env = args:env return unless enabled?(host) @@ -28,39 +28,39 @@ def maintain(args) host = args:host service = args:service - env = args:env - + env = args:env + return unless enabled?(host) end def deactivate(args) service = args:service - env = args:env + env = args:env end def activate(args) service = args:service - env = args:env + env = args:env end def prepare(args) service = args:service action = args:action - env = args:env + env = args:env end def cleanup(args) service = args:service action = args:action - env = args:env + env = args:env end protected def apache2Config(host, service, env) basePath = service.baseConfig.get_entry('/ICSystemConf/BaseDir') - - template = 'apache24' + + template = 'apache24' if host.http.apache2.compat template += '-compat' end @@ -117,14 +117,16 @@ data:socket_path = File.join(data:vhostroot, 'php-fpm.sock') end - + data:additional = (host.http.apache2.additional||'').lines.map(&:strip) data:env = env data:host = host - + data:port = 80 + data:port = 8080 if varnish_enabled?(host) + fname = File.join(basePath, service.mySvcConf("/MandatoryPaths/Path@name='Apache2Vhosts'/path"), "#{host.service.name}.conf") - + ctFname = File.join(service.mySvcConf("/ContainerPaths/Apache2ConfigPath"), "#{host.service.name}.conf") @@ -136,7 +138,7 @@ def apache2Sysconfig(host, service, env) basePath = service.baseConfig.get_entry('/ICSystemConf/BaseDir') - + data = {} data:apache2_modules = service.mySvcConf("/ConfigDefaults/Apache2/RequiredModules").split(',').map(&:strip) data:apache2_modules += host.http.apache2.modules @@ -179,4 +181,8 @@ def enabled?(host) host.http.enabled end + + def varnish_enabled?(host) + enabled?(host) && host.varnish.enabled + end end
View file
bender-vhng-2.1.5.gem/data/lib/bender/classes/Plugins/Webserver/11-Varnish.rb
Added
@@ -0,0 +1,122 @@ +require 'bender/classes/Plugin' + +$pluginClass = :Varnish + +class Varnish < ICPlugin + def provision(args) + host = args:host + service = args:service + env = args:env + + return unless enabled?(host) + + varnishConfig(host, service, env) + varnishParams(host, service, env) + end + + def update(args) + host = args:host + service = args:service + env = args:env + + return unless enabled?(host) + + varnishConfig(host, service, env) + varnishParams(host, service, env) + end + + def maintain(args) + host = args:host + service = args:service + env = args:env + + return unless enabled?(host) + end + + def deactivate(args) + service = args:service + env = args:env + end + + def activate(args) + service = args:service + env = args:env + end + + def prepare(args) + service = args:service + action = args:action + env = args:env + end + + def cleanup(args) + service = args:service + action = args:action + env = args:env + end + + protected + + def varnishConfig(host, service, env) + basePath = service.baseConfig.get_entry('/ICSystemConf/BaseDir') + + template = File.join(bender_root, 'templates', service.serviceName, "varnish.erb") + + data = {} + + data:vcl = host.varnish.vcl + data:backend_host = '127.0.0.1' + data:backend_port = '8080' + data:env = env + data:host = host + data:port = 80 + + fname = File.join(basePath, service.mySvcConf("/MandatoryPaths/Path@name='VarnishConf'/path"), + "#{host.service.name}.conf") + + ctFname = File.join(service.mySvcConf("/ContainerPaths/VarnishConfigPath"), + "#{host.service.name}.conf") + + env:configs:varnish_conf = {host: fname, container: ctFname} + + out = service.render(template, data) + service.write(fname, out) + end + + def varnishParams(host, service, env) + basePath = service.baseConfig.get_entry('/ICSystemConf/BaseDir') + template = File.join(bender_root, 'templates', service.serviceName, "varnish_sysconfig.erb") + data = {} + + default_params = + "-j unix,user=varnish", + "-f /etc/varnish/vcl.conf", + "-T:6082", + "-s file,/var/cache/varnish,1M" + + + port = 80 + params = default_params + "-a:#{port}" + + data:env = env + data:host = host + data:port = 80 + + data:params = params + + fname = File.join(basePath, service.mySvcConf("/MandatoryPaths/Path@name='VarnishSysconfig'/path"), + "#{host.service.name}.conf") + + ctFname = File.join(service.mySvcConf("/ContainerPaths/SysconfigPath"), + service.mySvcConf("/ContainerPaths/VarnishSysconfigFile")) + + env:configs:varnish_syscfg = {host: fname, container: ctFname} + + out = service.render(template, data) + service.write(fname, out) + end + + def enabled?(host) + host.varnish.enabled + end +end
View file
bender-vhng-2.1.4.gem/data/lib/bender/classes/ServicesBackend/Webserver.rb -> bender-vhng-2.1.5.gem/data/lib/bender/classes/ServicesBackend/Webserver.rb
Changed
@@ -25,8 +25,6 @@ # # == Todo - - require 'bender/classes/ICServiceBackend' require 'bender/classes/Models/Webserver/WebHosts' @@ -127,17 +125,17 @@ if(checkHostDirty(h, args)) env:dirty = true - checkHostConfiguredUsers(h, true) + #checkHostConfiguredUsers(h, true) execPlugins('webserver', 'provision', {:host => h, :service => self, env: env}) touchHost(h) end execPlugins('webserver', 'activate', {:host => h, :service => self, env: env}) end - + execPlugins('webserver', 'cleanup', {:service => self, :action => :update, env: env}) end - + def deprovisionService(args = {}) env = {} iterateHosts(args, active: false) do |h| @@ -339,7 +337,7 @@ f.write(host.service.updated_at) end end - + def removeTimestamp(host) storagePath = host_storagePath(host)
View file
bender-vhng-2.1.4.gem/data/lib/bender/templates/webserver/apache24.erb -> bender-vhng-2.1.5.gem/data/lib/bender/templates/webserver/apache24.erb
Changed
@@ -1,4 +1,4 @@ -<VirtualHost *:80> +<VirtualHost *:<%= port %>> ServerName <%= host.service.servername %> ServerAdmin <%= vhost_webmaster %> <% host.service.aliases.each do | a | -%> @@ -47,4 +47,3 @@ <% end if additional.any? -%> </VirtualHost> -
View file
bender-vhng-2.1.5.gem/data/lib/bender/templates/webserver/varnish.erb
Added
@@ -0,0 +1,51 @@ +# +# This is an example VCL file for Varnish. +# +# It does not do anything by default, delegating control to the +# builtin VCL. The builtin VCL is called when there is no explicit +# return statement. +# +# See the VCL chapters in the Users Guide at https://www.varnish-cache.org/docs/ +# and https://www.varnish-cache.org/trac/wiki/VCLExamples for more examples. + +# Marker to tell the VCL compiler that this VCL has been adapted to the +# new 4.0 format. +vcl 4.0; + +# Default backend definition. Set this to point to your content server. +backend default { + .host = "<%= backend_host %>"; + .port = "<%= backend_port %>"; +} + +acl local { + "localhost"; + "127.0.0.1"; +} + +include +glob "/srv/vhost/etc/varnish/*.vcl"; + +<% if vcl.present? -%> +<%= vcl -%> +<% else -%> +sub vcl_recv { + # Happens before we check if we have this in cache already. + # + # Typically you clean up the request here, removing cookies you don't need, + # rewriting the request, etc. +} + +sub vcl_backend_response { + # Happens after we have read the response headers from the backend. + # + # Here you clean the response headers, removing silly Set-Cookie headers + # and other mistakes your backend does. +} + +sub vcl_deliver { + # Happens when we have all the pieces we need, and are about to send the + # response to the client. + # + # You can do accounting or modifying the final object here. +} +<% end -%>
View file
bender-vhng-2.1.5.gem/data/lib/bender/templates/webserver/varnish_sysconfig.erb
Added
@@ -0,0 +1,25 @@ +## Path: Network/WWW/Varnishd +## Description: start parameters for varnishd. +## Type: string +## Default: "-f /etc/varnish/vcl.conf -T127.0.0.1:6082 -s file,/var/cache/varnish" +## Config: varnishd +# +# start parameters for varnishd. +# +# see man 1 varnishd for more +# +# You might want to keep "/var/cache/varnish" when using the file backend. +# +VARNISHD_PARAMS="<%= params.join(' ') %>" + +## Path: Network/WWW/Varnishd +## Description: Start parameters for varnishlog +## Type: string +## Default: "-a -w /var/log/varnish.log" +## Config: varnishd +# +# start parameters for varnishlog/varnishncsa +# +# see man 1 varnishlog for more +# +VARNISHLOG_PARAMS="-a -w /var/log/varnish/varnish.log"
View file
bender-vhng-2.1.4.gem/metadata.gz -> bender-vhng-2.1.5.gem/metadata.gz
Changed
@@ -1,14 +1,14 @@ --- !ruby/object:Gem::Specification name: bender-vhng version: !ruby/object:Gem::Version - version: 2.1.4 + version: 2.1.5 platform: ruby authors: - Angelo Grossini -autorequire: +autorequire: bindir: bin cert_chain: -date: 2023-12-15 00:00:00.000000000 Z +date: 2025-10-28 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: mail @@ -109,6 +109,7 @@ - lib/bender/classes/Plugins/Webserver/05-MySQL.rb - lib/bender/classes/Plugins/Webserver/05-PHPFPM.rb - lib/bender/classes/Plugins/Webserver/10-Apache2.rb +- lib/bender/classes/Plugins/Webserver/11-Varnish.rb - lib/bender/classes/Plugins/Webserver/15-SSL.rb - lib/bender/classes/Plugins/Webserver/50-Proxy.rb - lib/bender/classes/Plugins/Webserver/90-Logrotate.rb @@ -124,6 +125,8 @@ - lib/bender/templates/webserver/maintenance.html - lib/bender/templates/webserver/php-fpm.erb - lib/bender/templates/webserver/php-fpm_sysconfig.erb +- lib/bender/templates/webserver/varnish.erb +- lib/bender/templates/webserver/varnish_sysconfig.erb - lib/bender/tools/ARValidation.rb - lib/bender/tools/ConfigFile.rb - lib/bender/tools/ConfigObject.rb @@ -178,7 +181,7 @@ - MIT metadata: source_code_uri: https://lab.intercom.it -post_install_message: +post_install_message: rdoc_options: require_paths: - lib @@ -193,9 +196,8 @@ - !ruby/object:Gem::Version version: '0' requirements: -rubyforge_project: -rubygems_version: 2.7.6.3 -signing_key: +rubygems_version: 3.5.22 +signing_key: specification_version: 4 summary: vhng provisioning tool test_files:
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.