Forge Home

openvpn_client

Install and configure OpenVPN clients.

9,546 downloads

8,734 latest version

4.6 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Support the Puppet Community by contributing to this module

You are welcome to contribute to this module by suggesting new features, currency updates, or fixes. Every contribution is valuable to help ensure that the module remains compatible with the latest Puppet versions and continues to meet community needs. Complete the following steps:

  1. Review the module’s contribution guidelines and any licenses. Ensure that your planned contribution aligns with the author’s standards and any legal requirements.
  2. Fork the repository on GitHub, make changes on a branch of your fork, and submit a pull request. The pull request must clearly document your proposed change.

For questions about updating the module, contact the module’s author.

Version information

  • 0.1.4 (latest)
  • 0.1.3
  • 0.1.2 (deleted)
  • 0.1.1
  • 0.1.0
released Aug 20th 2015
This version is compatible with:
  • , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'thejandroman-openvpn_client', '0.1.4'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add thejandroman-openvpn_client
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install thejandroman-openvpn_client --version 0.1.4

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

thejandroman/openvpn_client — version 0.1.4 Aug 20th 2015

Build Status

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with openvpn_client
  4. Usage Examples - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.
  7. Development - Guide for contributing to the module

Overview

This module attempts to manage client OpenVPN connections. It does not manage server configurations and it attempts to make no assumptions about client configurations. The goal for the module is simplicity and versatility.

Module Description

This module installs the OpenVPN package and manages the OpenVPN service via its default class. It also includes a defined type to create and manage OpenVPN client configurations. The template file for creating the client configuration attempts to make no assumptions about options. All options can be turned off by declaring them undef and custom options can be defined via a parameter.

Setup

What openvpn_client affects

  • The OpenVPN default package manager package and its service impact, or execute on the system it's installed on.

Beginning with openvpn_client

All that is needed is to get started is to create an openvpn_client::client defined type with the required parameters. Everything else should be handled automatically with sane defaults.

Usage Examples

openvpn_client::client { 'openvpn.server':
  port => 1194,
  ca   => '/path/to/ca',
}

Reference

Classes

openvpn_client

Install the openvpn package and manage its service.

Parameters
  • openvpn_dir The directory created by the package to store the openvpn configs. Should be an absolute path. Defaults differ according to OS. See params.pp.

  • package_name The name of the OpenVPN package. Should be a string. Defaults differ according to OS. See params.pp.

  • service_name The name of the OpenVPN service. Should be a string. Defaults differ according to OS. See params.pp.

Defined Types

openvpn_client::client

Configure a client connection and restart the OpenVPN service. Not all OpenVPN services are represented as parameters; however, the parameter array custom_options has been provided to provide extensibility.

  • custom_options An array containing strings to be appended to the end of the client configuration. Defaults to an empty array.

All of the following parameters are taken directly from the OpenVPN man page where their descriptions can be found. Only default values and quirks will be noted here.

  • auth String; defaults to undef.

  • auth_user_pass Absolute path; defaults to undef.

  • ca Absolute path; defaults to undef.

  • cert Absolute path; defaults to undef.

  • cipher String; defaults to undef.

  • client Bool; defaults to true.

  • comp_lzo String; defaults to undef.

  • dev String; defaults to undef.

  • group String; defaults to undef.

  • key Absolute path; defaults to undef.

  • nobind Bool; defaults to true.

  • ns_cert_type String; defaults to undef.

  • persist_key Bool; defaults to true.

  • persist_remote_ip Bool; defaults to true.

  • persist_tun Bool; defaults to true.

  • port Integer; defaults to undef.

  • proto String; defaults to undef.

  • remote_cert_tls String; defaults to undef.

  • resolv_retry String; defaults to undef.

  • server String; defaults to $name.

  • tls_client Bool; defaults to true.

  • user String; defaults to undef.

  • verb Integer; defaults to undef.

Limitations

This module has really only been tested on Ubuntu 12.04 and 14.04. Compatability with EL6 and 7 has been attempted. Please send PRs for additional OSs or to fine tune existing support; which brings us to...

Development

PRs are welcome. Keep in mind the stated goals of the module are simplicity and versatility while making no client configuration assumptions. Standard ground rules for contributing apply; namely test and document everything.

Most development information can be found in CONTRIBUTING.md.