Tuesday, May 10, 2016

Simple puppet class for a squid server with allow all in conf


install.pp

class squid::install inherits squid {
  include apt

  exec { 'squid-update-apt':
    command => '/usr/bin/apt-get update',
    refreshonly => true,
  }

  package { 'squid3' :
    require => Class['squid::setup'],  
    ensure => installed,
    provider => apt,
  }


}

setup.pp

class squid::setup inherits squid {

  $squidconf="acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
http_access allow all
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .               0       20%     4320
"

  file { '/etc/squid3/squid.conf' :
    notify => Service['squid3'],
    ensure => present,
    owner => root,
    group => root,
    mode => '0644',
    content => $squidconf
  }
}

init.pp
class squid (
  $example = $squid::params::example,
) inherits squid::params {
}

params.pp
class squid::params {
  $example = 'example1'
}

No comments:

Post a Comment