All Projects → Pryz → Terraform Provider Ldap

Pryz / Terraform Provider Ldap

Licence: mit
LDAP provider for Terraform

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Terraform Provider Ldap

Offensive Terraform.github.io
Offensive Terraform Website
Stars: ✭ 25 (-21.87%)
Mutual labels:  terraform
Glauth
A lightweight LDAP server for development, home use, or CI
Stars: ✭ 850 (+2556.25%)
Mutual labels:  ldap
Terraform Aws Cross Account Role
A Terraform module to create an IAM Role for Cross Account delegation.
Stars: ✭ 30 (-6.25%)
Mutual labels:  terraform
Terraform Google Vault
Terraform module to deploy Vault as a container on Google Cloud Run
Stars: ✭ 25 (-21.87%)
Mutual labels:  terraform
Cloudguardiaas
Check Point CloudGuard Network Security repository containing solution templates, Terraform templates, tools and scripts for deploying and configuring CloudGuard Network Security products.
Stars: ✭ 27 (-15.62%)
Mutual labels:  terraform
Docker Mailserver
Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container.
Stars: ✭ 8,115 (+25259.38%)
Mutual labels:  ldap
Fdb Cloud Test
Packer + Terraform setup to experiment with FDB clusters in the cloud.
Stars: ✭ 23 (-28.12%)
Mutual labels:  terraform
Kitchen Terraform
Test Kitchen plugins for testing Terraform configurations
Stars: ✭ 963 (+2909.38%)
Mutual labels:  terraform
Terraform Best Practices
Terraform best practices (constantly updating)
Stars: ✭ 940 (+2837.5%)
Mutual labels:  terraform
Aws Blog.de Projects
Projects and examples for aws-blog.de
Stars: ✭ 29 (-9.37%)
Mutual labels:  terraform
Terraform Modules
Terraform Modules
Stars: ✭ 25 (-21.87%)
Mutual labels:  terraform
Rules terraform
Bazel rules for using Hashicorp's Terraform in your Bazel builds.
Stars: ✭ 26 (-18.75%)
Mutual labels:  terraform
Terraform Aws Iam Role
Terraform module to create AWS IAM Role.
Stars: ✭ 28 (-12.5%)
Mutual labels:  terraform
Terraform Best Practices
Terraform Best Practices for AWS users
Stars: ✭ 931 (+2809.38%)
Mutual labels:  terraform
Terraform Sqs Lambda Trigger Example
Example on how to create a AWS Lambda triggered by SQS in Terraform
Stars: ✭ 31 (-3.12%)
Mutual labels:  terraform
Jazz Installer
Installer for Jazz Serverless Developer Platform!
Stars: ✭ 24 (-25%)
Mutual labels:  terraform
Terra Aws Core Kube
Terraform configuration to bootstrap a Kubernetes Cluster on top of CoreOS using AWS-EC2 instances
Stars: ✭ 10 (-68.75%)
Mutual labels:  terraform
Ebs bckup
Stars: ✭ 32 (+0%)
Mutual labels:  terraform
Vector Test Harness
End-to-end test harness for the Vector observability data router
Stars: ✭ 32 (+0%)
Mutual labels:  terraform
Hcloud Okd4
Deploy OKD4 (OpenShift) on Hetzner Cloud
Stars: ✭ 29 (-9.37%)
Mutual labels:  terraform

Terraform LDAP

⚠️ Unmaintained ⚠️

This repository is unmaintained, but left as a historical relic for any wishing to fork it.

CircleCI

Installation

You can easily install the latest version with the following :

go get -u github.com/Pryz/terraform-provider-ldap

Then add the plugin to your local .terraformrc :

cat >> ~/.terraformrc <<EOF
providers {
    ldap = "${GOPATH}/bin/terraform-provider-ldap"
}
EOF

Provider example

provider "ldap" {
    ldap_host = "ldap.example.org"
    ldap_port = 389
    use_tls = true
    bind_user = "cn=admin,dc=example,dc=com"
    bind_password = "admin"
}

Resource LDAP Object example

resource "ldap_object" "foo" {
    # DN must be complete (no RDN!)
    dn = "uid=foo,dc=example,dc=com"

    # classes are specified as an array
    object_classes = [
        "inetOrgPerson",
        "posixAccount",
    ]

    # attributes are specified as a set of 1-element maps
    attributes = [
        { sn              = "10" },
        { cn              = "bar" },
        { uidNumber       = "1234" },
        { gidNumber       = "1234" },
        { homeDirectory   = "/home/billy" },
        { loginShell      = "/bin/bash" },
        # when an attribute has multiple values, it must be specified multiple times
        { mail            = "[email protected]" },
        { mail            = "[email protected]" },
    ]
}

The Bind User must have write access for resource creation to succeed.

Features

This provider is feature complete. As of the latest release, it supports resource creation, reading, update, deletion and importing. It can be used to create nested resources at all levels of the hierarchy, provided the proper (implicit or explicit) dependencies are declared. When updating an object, the plugin computes the minimum set of attributes that need to be added, modified and removed and surgically operates on the remote object to bring it up to date. When importing existing LDAP objects into the Terraform state, the plugin can automatically generate a .tf file with the relevant information, so that the following terraform apply does not drop the imported resource out of the remote LDAP server due to it missing in the local .tf files. In order to have the plugin generate this file, put the name of the output file (which must not exist on disk) in the TF_LDAP_IMPORTER_PATH environment variable, like this:

$> export TF_LDAP_IMPORTER_PATH=a123456.tf 
$> terraform import ldap_object.a123456 uid=a123456,ou=users,dc=example,dc=com

and the plugin will create the a123456.tf file with the proper information. Then merge this file into your existing .tf file(s).

Limitations

This provider supports TLS, but certificate verification is not enabled yet; all connections are through TCP, no UDP support yet.

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].