{"id":15013907,"url":"https://github.com/voxpupuli/puppet-hdm","last_synced_at":"2026-04-10T13:03:03.399Z","repository":{"id":51360470,"uuid":"520385766","full_name":"voxpupuli/puppet-hdm","owner":"voxpupuli","description":"Puppet Module to manage Hiera Data Manager (HDM)","archived":false,"fork":false,"pushed_at":"2025-04-07T18:54:35.000Z","size":204,"stargazers_count":5,"open_issues_count":8,"forks_count":6,"subscribers_count":37,"default_branch":"master","last_synced_at":"2025-04-11T02:27:01.647Z","etag":null,"topics":["hdm","hiera","puppet"],"latest_commit_sha":null,"homepage":"","language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voxpupuli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"open_collective":"vox-pupuli","github":"voxpupuli"}},"created_at":"2022-08-02T06:53:23.000Z","updated_at":"2025-04-07T18:54:39.000Z","dependencies_parsed_at":"2024-01-17T18:41:53.431Z","dependency_job_id":"120c335c-8d6c-43d8-a72f-f72cd6e5b069","html_url":"https://github.com/voxpupuli/puppet-hdm","commit_stats":{"total_commits":86,"total_committers":8,"mean_commits":10.75,"dds":0.5813953488372092,"last_synced_commit":"17ce84cf4f8243b2867183e5aabb5e76fcd96bce"},"previous_names":["betadots/puppet-hdm"],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-hdm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-hdm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-hdm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-hdm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxpupuli","download_url":"https://codeload.github.com/voxpupuli/puppet-hdm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248525153,"owners_count":21118616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hdm","hiera","puppet"],"created_at":"2024-09-24T19:44:55.204Z","updated_at":"2025-12-11T21:35:50.108Z","avatar_url":"https://github.com/voxpupuli.png","language":"Puppet","funding_links":["https://opencollective.com/vox-pupuli","https://github.com/sponsors/voxpupuli"],"categories":["Tools"],"sub_categories":["Web Interfaces"],"readme":"# puppet-hdm\n\n[![Build Status](https://github.com/voxpupuli/puppet-hdm/workflows/CI/badge.svg)](https://github.com/voxpupuli/puppet-hdm/actions?query=workflow%3ACI)\n[![Release](https://github.com/voxpupuli/puppet-hdm/actions/workflows/release.yml/badge.svg)](https://github.com/voxpupuli/puppet-hdm/actions/workflows/release.yml)\n[![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/hdm.svg)](https://forge.puppetlabs.com/puppet/hdm)\n[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/hdm.svg)](https://forge.puppetlabs.com/puppet/hdm)\n[![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/hdm.svg)](https://forge.puppetlabs.com/puppet/hdm)\n[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/hdm.svg)](https://forge.puppetlabs.com/puppet/hdm)\n[![puppetmodule.info docs](http://www.puppetmodule.info/images/badge.png)](http://www.puppetmodule.info/m/puppet-hdm)\n[![Apache-2 License](https://img.shields.io/github/license/voxpupuli/puppet-hdm.svg)](LICENSE)\n[![By betadots](https://img.shields.io/badge/by-betadots-fb7047.svg)](#transfer-notice)\n\n## Table of Contents\n\n- [puppet-hdm](#puppet-hdm)\n  - [Table of Contents](#table-of-contents)\n  - [Description](#description)\n  - [Major Update](#major-update)\n  - [Setup](#setup)\n    - [Setup Requirements](#setup-requirements)\n    - [SLES and Docker module](#sles-and-docker-module)\n    - [Beginning with betadots HDM](#beginning-with-betadots-hdm)\n  - [Reference](#reference)\n  - [Limitations](#limitations)\n  - [Transfer Notice](#transfer-notice)\n  - [License](#license)\n\n## Description\n\nThis module manages the betadots [HDM](https://github.com/betadots/hdm) installation.\n\nHDM can be installed on Puppet Server or on any other system with PuppetDB access and Puppet code deployed.\n\nThis module allows you to either make use of the betadots HDM Docker container or to install HDM using RVM.\n\n## Major Update\n\nAs of version 1.0.0 and newer the HDM Docker container runs in production mode.\nExisting installations using HDM container prior version 1.0.0 must prepare this change by copying the development.sqlite3 file to production.sqlite3\n\n```shell\ncp /etc/hdm/development.sqlite3 /etc/hdm/production.sqlite3\n```\n\nNow Puppet can configure the system.\nOnce HDM is up and running the database can be changed from development to production:\n\n```shell\ndocker exec -ti hdm /hdm/bin/rails db:environment:set RAILS_ENV=production\n```\n\nAfter the update and checking functionality the development.sqlite3 file can be deleted.\n\n## Setup\n\n### Setup Requirements\n\nThe puppet-hdm module needs puppetlabs/stdlib as we use some of the stdlib data types.\n\nIf you want to make use of the docker container, you need the following module:\n\n- puppetlabs/docker - min version 4.4.0 - tested with v10.1.0\n\nIf you want to install HDM using RVM, you need the following modules:\n\n- puppet/rvm - min version 3.0.0\n- golja/gnupg - min version 1.2.3 - for Puppet 8 a fork must be used: see https://github.com/dgolja/golja-gnupg/pull/42 and use https://github.com/flepoutre/golja-gnupg - master branch\n- puppetlabs/vcsrepo - min version 7.0.0\n- puppet/systemd     - min version 8.1.0\n\n### SLES and Docker module\n\nThe [puppetlabs-docker](https://forge.puppet.com/modules/puppetlabs/docker/readme) Module lacks official SLES and SuSe support. Yet: the module is usable on SLES.\n\nThe installation of Docker can not be done using the module on SLES.\nInstead one must install Docker separately within a profile class.\n\nBut any other defined type like `docker::image` or `docker::run` is working.\n\nOne **must** set the `acknowledge_unsupported_os` parameter to `true` to prevent the Docker module from failing on SuSe systems.\n\nHiera:\n\n```yaml\n---\n# Allow Docker to work on SLES\ndocker::acknowledge_unsupported_os: true\n```\n\n### Beginning with betadots HDM\n\n#### Container\n\nThe most simple approach is to just include the hdm class and provide the version parameter:\n\n```puppet\ninclude hdm\n```\n\nYou can find the released versions on [HDM releases page](https://github.com/betadots/hdm/releases)\n```yaml\nhdm::version: '3.1.0\n```\n\nAnother option is to use class resource type declaration:\n\n```puppet\nclass { 'hdm':\n  version =\u003e '3.1.0',\n}\n```\n\nThis will install HDM as docker container.\n\n#### RVM\n\nTo run HDM directly from source, we recommend to use the vagrant setup in HDM repository.\n\nOr: use the following Puppet configuration:\n\n```ruby\n# Puppetfile\n# mod 'golja-gnupg',  '1.2.3'\nmod 'gnupg', :git =\u003e 'https://github.com/flepoutre/golja-gnupg.git', :branch =\u003e 'master'\nmod 'ipcrm-echo', '0.1.8'\nmod 'puppet-hdm', :git =\u003e 'https://github.com/voxpupuli/puppet-hdm.git', :branch =\u003e 'master'\nmod 'puppet-rvm', '3.0.0'\nmod 'puppet-systemd', '8.1.0'\nmod 'puppetlabs-apt', '10.0.1'\nmod 'puppetlabs-concat', '9.1.0'\nmod 'puppetlabs-docker', '10.1.0'\nmod 'puppetlabs-firewall', '8.1.4'\nmod 'puppetlabs-inifile', '6.2.0'\nmod 'puppetlabs-postgresql', '10.5.0'\nmod 'puppetlabs-puppetdb', '8.1.0'\nmod 'puppetlabs-stdlib', '9.7.0'\nmod 'puppetlabs-vcsrepo'\n```\n\n```puppet\n# manifests/site.pp\nFile {\n  backup =\u003e false,\n}\n$classes_hash = lookup('classes', { 'value_type' =\u003e Hash, 'default_value' =\u003e {} })\n$classes_hash.keys.sort.each |$key| {\n  if $classes_hash[$key] != '' {\n    contain $classes_hash[$key]\n  } else {\n    echo { $key:\n      message  =\u003e \"Class for ${key} on ${facts['networking']['fqdn']} is disabled\",\n      withpath =\u003e false,\n    }\n  }\n}\nnode default {}\n```\n\n```yaml\n# hiera.yaml\n---\nversion: 5\ndefaults:\n  datadir: data\n  data_hash: yaml_data\nhierarchy:\n  - name: \"Per-node data (yaml version)\"\n    path: \"nodes/%{::trusted.certname}.yaml\"\n  - name: \"Other YAML hierarchy levels\"\n    paths:\n      - \"common.yaml\"\n```\n\n```yaml\n# data/nodes/\u003ccertname\u003e.yaml\n---\nclasses:\n  '90_hdm_class': 'hdm'\n  '91_puppetdb_class': 'puppetdb'\n  '92_puppetdb_master_class': 'puppetdb::master::config'\n\nhdm::version: 'main'\nhdm::method: 'rvm'\nhdm::ruby_version: '3.4.2'\nhdm::disable_authentication: true\n\n# using with foreman\npuppetdb::manage_firewall: false\npuppetdb::postgres_version: '13'\npuppetdb::manage_package_repo: false\npostgresql::globals::manage_dnf_module: false\n```\n\n## Reference\n\nPlease check the [REFERENCE.md](REFERENCE.md) file.\n\n## Limitations\n\nOn SLES we can not use the puppetlabs/docker module for installation, but is still needed to pull the image and run the container.\nInstead set the `manage_docker` parameter to false for HDM class and take care on docker package and service by yourself.\n\n## Transfer Notice\n\nThis Puppet module was originally authored by [betadots GmbH](https://www.betadots.de).\nThe maintainer preferred that Vox Pupuli take ownership of the module for future improvement and maintenance.\nExisting pull requests and issues were transferred over, please fork and continue to contribute here instead of github.com/betadots/puppet-hdm.\n\n## License\n\nThis module is licensed under the Apache-2 license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-hdm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxpupuli%2Fpuppet-hdm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-hdm/lists"}