Git Product home page Git Product logo

ansible-role-boundary's Introduction

Ansible Role: HashiCorp Boundary

A role to deploy HashiCorp Boundary

Requirements

  • A PostgreSQL instance that Boundary workers can reach and authenticate to. The database you plan to use must also exist.
  • Access to a KMS solution. This role currently only supports Google Cloud KMS.
  • Nodes must be in inventory groups boundary_controller or boundary_worker to receive configuration for that service. A node in both groups is configured to run both services.

Installation Variables

Package Installation

On RedHat and Debian family operating systems, it defaults to installing the packages from Hashicorp's official repository. You can disable this by setting boundary_install_package to false.

Manual Installation

The following values are only used for manual installation.

Controls whether a separate account is created or not and what the user and group should be named.

boundary_user: 'boundary'
boundary_group: 'boundary'
boundary_create_account: true

Controls what is downloaded, and where it is installed.

boundary_archive: 'boundary_{{ boundary_version }}_linux_amd64.zip'
boundary_download: 'https://releases.hashicorp.com/boundary/{{ boundary_version }}/{{ boundary_archive }}'
boundary_data_directory: '/opt/boundary'
boundary_install_directory: '{{ boundary_data_directory }}/bin'

Configuration Variables

Ansible variables are listed below, along with the default values (see default/main.yml):

Where to place Boundary's configuration data.

boundary_version: '0.1.4'
boundary_home_directory: '/etc/boundary.d'
boundary_config_file: '{{ boundary_home_directory }}/worker.hcl'
boundary_server_file: '{{ boundary_home_directory }}/controller.hcl'

Database initialization flags

Boundary can create an example admin account and organization to help bootstrap you. This is disabled by default since uses will create the initial resources via Ansible. If you are building a PoC to learn and explore, you may want to remove this value.

boundary_db_init_flags: '-skip-initial-login-role-creation'

Key Management

One of the Boundary KMS types from [https://www.boundaryproject.io/docs/configuration/kms]

As these choices are radically different depending on your KMS, refer to one of these examples:

It defaults to the static AEAD key configuration documented at [https://www.boundaryproject.io/docs/getting-started]

boundary_kms_type: 'aead'

TLS Configuration

Boundary uses its own TLS implementation for all controller<->worker communications, however communications with the boundary client will be subject to normal public TLS validation. Best to create or acquire a certificate which will be trusted by the operating system of the client and supply that key and certificate as documented at [docs/api_tls.md]

Dependencies

None.

Instructions

If you are new to Ansible playbooks and group vars, the following examples can guide you:

Author Information

Jacob Mammoliti Bas Meijer Jo Rhett

ansible-role-boundary's People

Contributors

bbaassssiiee avatar chilinot avatar jorhett avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.