All Projects → AdamGoldsmith → consul-vault

AdamGoldsmith / consul-vault

Licence: MIT license
HashiCorp Vault service running on Consul cluster backend with HAProxy frontend

Programming Languages

HCL
1544 projects
shell
77523 projects

Projects that are alternatives of or similar to consul-vault

haproxy-keepalived
HAProxy & Keepalived for Docker and kubernetes
Stars: ✭ 29 (+7.41%)
Mutual labels:  haproxy, keepalived
esa-httpclient
An asynchronous event-driven HTTP client based on netty.
Stars: ✭ 82 (+203.7%)
Mutual labels:  haproxy
Rpm Haproxy
HAproxy RPM spec and builds for CentOS 6/7
Stars: ✭ 103 (+281.48%)
Mutual labels:  haproxy
Haproxy
HAProxy Load Balancer's development branch (mirror of git.haproxy.org)
Stars: ✭ 2,463 (+9022.22%)
Mutual labels:  haproxy
Redishappy
Redis Sentinel high availabillity daemon
Stars: ✭ 111 (+311.11%)
Mutual labels:  haproxy
Kube2haproxy
High Availability HAProxy auto configuration and auto service discovery for Kubernetes.
Stars: ✭ 181 (+570.37%)
Mutual labels:  haproxy
Haproxy
🏎 Built-from-source container image of the HAProxy proxy and load balancer
Stars: ✭ 100 (+270.37%)
Mutual labels:  haproxy
docker-redis-haproxy-cluster
A Redis Replication Cluster accessible through HAProxy running across a Docker Composed-Swarm with Supervisor and Sentinel
Stars: ✭ 44 (+62.96%)
Mutual labels:  haproxy
vault-converter
Support converting Vault Secrets to diffrent formats.
Stars: ✭ 15 (-44.44%)
Mutual labels:  hashicorp-vault
Dataplaneapi
HAProxy Data Plane API
Stars: ✭ 152 (+462.96%)
Mutual labels:  haproxy
Go Proxyproto
A Go library implementation of the PROXY protocol, versions 1 and 2.
Stars: ✭ 151 (+459.26%)
Mutual labels:  haproxy
Ansible Role Haproxy
Ansible Role - HAProxy
Stars: ✭ 112 (+314.81%)
Mutual labels:  haproxy
Panteras
PanteraS - PaaS - Platform as a Service in a box
Stars: ✭ 189 (+600%)
Mutual labels:  haproxy
Haproxy Configs
80+ HAProxy Configs for Hadoop, Big Data, NoSQL, Docker, Elasticsearch, SolrCloud, HBase, MySQL, PostgreSQL, Apache Drill, Hive, Presto, Impala, Hue, ZooKeeper, SSH, RabbitMQ, Redis, Riak, Cloudera, OpenTSDB, InfluxDB, Prometheus, Kibana, Graphite, Rancher etc.
Stars: ✭ 106 (+292.59%)
Mutual labels:  haproxy
keepalived-formula
docs.saltstack.com/en/latest/topics/development/conventions/formulas.html
Stars: ✭ 13 (-51.85%)
Mutual labels:  keepalived
Kubernetes Pfsense Controller
Integrate Kubernetes and pfSense
Stars: ✭ 100 (+270.37%)
Mutual labels:  haproxy
Nuster
A high performance HTTP proxy cache server and RESTful NoSQL cache server based on HAProxy
Stars: ✭ 1,825 (+6659.26%)
Mutual labels:  haproxy
Zabbix Haproxy
HAProxy Zabbix Discovery and Template
Stars: ✭ 169 (+525.93%)
Mutual labels:  haproxy
caravan
Caravan is your platform builder based on the HashiCorp stack.
Stars: ✭ 33 (+22.22%)
Mutual labels:  hashicorp-vault
scaleway-terraform-demo
example using terraform for scaleway with nomad, consul & fabio
Stars: ✭ 52 (+92.59%)
Mutual labels:  consul-cluster

Hashicorp vault & consul cluster

License: MIT

Installs & configures Hashicorp's Consul & Vault + HAProxy to run as an HA cluster

Note: Please see this repo for a similar project that uses the latest integrated storage backend made available in Vault 1.4 release, removing the need for a Consul-based backend storage deployment

Symbolic representation overview of deployment

Alt text

Consul UI Dashboard

Alt text

Although the vault installation creates OpenSSL TLS private key, CSR & resultant certificate, the URI modules in these roles currently use "validate_certs: no". It is up to you to complete the TLS configuration.

WARNING - When vault is initialized, the master key shards & root token are stored in the ansible user's HOME dir on the Ansible control machine. This is NOT good practice, but was used to get things running. I am considering various future options that won't break the non-interactive execution of the playbooks, such as ansible vault'ing the file with a pre-defined ansible vault password file. But this is really no more secure than the current setup. Hashicorp vault has the ability to encrypt the master key shards using PGP, GPG, and Keybase. This is the ideal solution but might prove too difficult to implement while maintaining non-interactive playbook execution.

Heavily based on the documentation supplied by HashiCorp at https://www.vaultproject.io/guides/operations/vault-ha-consul.html

Currently tested on these Operating Systems

  • Oracle Linux/RHEL/CentOS 7 (Note: Enables EPEL repo using Jeff Geerling's EPEL role)
  • Debian/Stretch64

Requirements

  • Hashicorp Vagrant
  • Ansible 2.5 or higher

Dependencies

  • Requires elevated root privileges
  • Copy Ansible control machine user's public SSH key (usually called id_rsa.pub) into the vagrant working directory

Getting the code

git clone https://github.com/AdamGoldsmith/consul-vault.git --recurse-submodules

Running the deployment

cd vagrant
export BOX_NAME="centos/7"     # Optional (defaults to debian/stretch64)
vagrant up

On the Ansible Control Machine

To deploy

./deploy.sh

or

ansible-playbook playbooks/site.yml

To remove

./deploy.sh -t remove

or

ansible-playbook playbooks/site.yml --tags 'remove'

asciicast

Known Issues

  • deploy.sh

The deploy.sh script has been updated to use /bin/bash which might not be universally available on your system so you may need to update this to use the shell of your choice.

  • PyOpenSSL

If you get the message "You need to have PyOpenSSL>=0.15 to generate CSRs", then it is most likely an issue with the OpenSSL package that python has imported. When pyOpenSSL is installed/upgraded via the PIP Ansible module in this playbok, it will install the python package under /usr/lib/pythonx.x/site-packages, however it is possible that another OpenSSL python package could be installed under /usr/lib64/pythonx.x/site-packages that is being loaded in preference to the higher-level package.
In order to prevent this happening, temporarily move the directory "/usr/lib64/pythonx.x/site-packages/OpenSSL" out of the way while running this playbook.

License

MIT License

Author Information

Adam Goldsmith

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].