Skip to content

meltwater/puppet-gor

 
 

Repository files navigation

puppet-gor

Puppet Forge Version Puppet Forge Downloads CircleCI branch By Meltwater Maintenance license

Puppet module for Gor.

Installs Gor, configures an upstart job with the appropriate arguments, and starts the service.

Example usage

Pass some arguments:

class { '::gor':
  args => {
    '-input-raw'             => 'localhost:7999',
    '-output-http-header'    => 'User-Agent: gor',
    '-output-http'           => 'https://staging.example.com',
    '-output-http-redirects' => 2,
    '-output-http-timeout'   => '120s'
  },
}

The same argument can be specified multiple times by passing an array:

class { '::gor':
  args => {
    …
    '-output-http-method' => [
      'GET', 'HEAD', 'OPTIONS'
    ],
  },
}

To install a specific version of the Gor package: check https://github.com/buger/gor/releases

class { '::gor':
  version       => '0.14.1',
  digest_string => '0c0335a323c416569f030f46a7541045',
  digest_type   => 'md5',
  …
}

To install a specific version of the Gor package from a custom source url: check https://github.com/buger/gor/releases

class { '::gor':
  version       => '0.15.1',
  source_url    => 'https://github.com/buger/gor/releases/download/v0.15.1/gor_v0.15.1_x64.tar.gz'
  digest_string => 'ced467f51da7491a227b871c9894d351',
  digest_type   => 'md5',
  …
}

To install gor to a different bin location:

class { '::gor':
  binary_path => '/usr/bin', # default: '/usr/local/bin'
  …
}

To set custom environment variables in the start scripts:

class { '::gor':
  envvars => {
    'GODEBUG' => 'netdns=go',
    'FOO'     => 'bar',
  }
  …
}

To run gor under a normal user account and limit gor's memory usage:

class { '::gor':
  memory_limit => '100M',
  runuser      => 'gor',
  …
}

To prevent the service from starting:

class { '::gor':
  manage_service => false,
  …
}

To install the Gor package with a gor service but that can only be started manually:

class { '::gor':
  version       => '0.14.1',
  digest_string => 'ced467f51da7491a227b871c9894d351',
  digest_type   => 'md5',
  manage_service => false,
  args => {
    '-input-raw'             => 'localhost:7999',
    '-output-http-header'    => 'User-Agent: gor',
    '-output-http'           => 'https://staging.example.com',
    '-output-http-redirects' => 2,
    '-output-http-timeout'   => '120s'
  },
}

To install the Gor package with a gor service running that always send requests to https://staging.example.com

class { '::gor':
  version       => '0.14.1',
  digest_string => 'ced467f51da7491a227b871c9894d351',
  digest_type   => 'md5',
  args => {
    '-input-raw'             => 'localhost:7999',
    '-output-http-header'    => 'User-Agent: gor',
    '-output-http'           => 'https://staging.example.com',
    '-output-http-redirects' => 2,
    '-output-http-timeout'   => '120s'
  },
}

License

See LICENSE file.

Packages

No packages published

Languages

  • Ruby 53.2%
  • Puppet 40.5%
  • HTML 6.3%