{"id":20376369,"url":"https://github.com/example42/puppet-hdm","last_synced_at":"2026-05-11T09:52:37.508Z","repository":{"id":137590511,"uuid":"298776212","full_name":"example42/puppet-hdm","owner":"example42","description":"Puppet module to install Hiera Data Manager (HDM)","archived":false,"fork":false,"pushed_at":"2021-03-12T19:55:49.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-05T01:43:44.563Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/example42.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-09-26T09:01:36.000Z","updated_at":"2022-08-08T15:05:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"d1164323-e339-4ec7-87e1-84abede532ec","html_url":"https://github.com/example42/puppet-hdm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/example42/puppet-hdm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/example42%2Fpuppet-hdm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/example42%2Fpuppet-hdm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/example42%2Fpuppet-hdm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/example42%2Fpuppet-hdm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/example42","download_url":"https://codeload.github.com/example42/puppet-hdm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/example42%2Fpuppet-hdm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32889971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-15T01:37:10.756Z","updated_at":"2026-05-11T09:52:37.447Z","avatar_url":"https://github.com/example42.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hdm\n\nThis module manages the installation of Hiera Data Manager (HDM) on a node.\n\nBeing HDM a Rails application, the modules optionally takes cares of all the dependencies and configurations needed to have a web server serving HDM:\n- Packages prerequisites to compile\n- Installation of HDM from upstream git repo on GitHub\n- Deployment via r10k of a given Puppet control-repo\n- HDM's gem prerequisites, via execution of bundle install\n- Nodejs installation and execution of yarn install\n- Passenger as Application Server, standalone or with Apache or Nginx support\n\nEach of these corollary but necessary configurations can be skipped and managed with custom alternative classes.\n\n## Table of Contents\n\n1. [Description](#description)\n1. [Setup - The basics of getting started with hdm](#setup)\n    * [What hdm affects](#what-hdm-affects)\n    * [Setup requirements](#setup-requirements)\n    * [Beginning with hdm](#beginning-with-hdm)\n1. [Usage - Configuration options and additional functionality](#usage)\n1. [Limitations - OS compatibility, etc.](#limitations)\n1. [Development - Guide for contributing to the module](#development)\n\n## Description\n\nHDM is a Web application use to discover, analyse and modify Hiera data.\n\nIt relies on an standard control-repo structure with Hiera data in Yaml files.\n\nThis modules takes care of whatever is necessary to have HDM served on a node.\n\nIn order to avoid too many other dependencies, it relies just on Tiny Puppet (tp) to install and configure all the necessary applications, like passenger, nodejs, yarn, nginx, apache...\n\nIt's always possible, via the relevant parameter called $\u003csomething\u003e_manage, to avoid to manage in the hdm module these third party applications. It's then left to the user to configure them as needed using other modules or custom code.\n\n\n## Setup\n\n### What hdm affects\n\nThe module can manage:\n\n* All the necessary prerequisites for packages via the default hdm::prereq class. It's possible to specify an alternative class or just to skip the incusion on any class, passing as value an empty string:\n\n        hdm::prerequisites_class: ''\n\nDefault value is:\n\n        hdm::prerequisites_class: hdm::prereq\n\n* Passenger application server configured to serve the HDM rails app. The module provides (to test on different OS) profiles to use Passenger with Apache, Nginx or standalone, set via Hiera one of these or provide your own class:\n\n        hdm::webapp_class: hdm::passenger::apache\n        hdm::webapp_class: hdm::passenger::nginx\n        hdm::webapp_class: hdm::passenger::standalone\n\n* Installation of HDM app via git, using tp::dir and the vcsrepo module. By default this is enabled, with these values:\n\n        hdm::hdm_manage: true\n        hdm::hdm_git_source: 'https://github.com/example42/hdm'\n        hdm::hdm_dir: /opt/hdm\n\n* Installation via git of a control-repo configured with hdm::controlrepo_git_source to a local directory (hdm::controlrepo_dir). Use an empty value to not clone anything. r10k deploy puppetfile is then executed to retrive external modules. Default values are:\n\n        hdm::controlrepo_manage: true\n        hdm::controlrepo_git_source: 'https://github.com/example42/psick'\n        hdm::controlrepo_dir: '/etc/hdm/code'\n\n* Eventual creation of an hdm user and group. Any parameter of the user and group resources can be customized:\n\n        hdm::user_manage = true,\n        hdm::user: 'hdm'\n        hdm::group: 'hdm'\n        hdm::user_params: {}\n        hdm::group_params: {}\n\n### Setup Requirements\n\nThis module has the following dependencies:\n\n* Puppet's stdlib module\n* example42 tp module (with depends on example42-tinydata and puppet-vcsrepo module)\n\nHDM needs to access to PuppetDB, either with the existing Puppet certificate (the certificate used by the hdm server must be whitelisted on PuppetDB) or with tokens to access Puppet Enteprise Console.\n\n### Beginning with hdm\n\nThe default behaviour of the module is to (try to) install on any RedHat, Debian and SUSe derivatives, and on MacOS, a web server serving HDM using data from a local directory and a configurable PuppetDB server.\n\n## Usage\n\nTo install and configure the full stack in order to have HDM accessible on port 8042 just inlcude the hdm class.\n\n        include hdm\n\n\n## Limitations\n\nThe module is not fully tested on the ortogonal combinations of:\n\n* Operating Systems potentially supported: RedHat, Debian and Suse derivatives, MacOS\n* Standalone installation modes: nginx, apache, standalone\n* Passenger, Ruby, Rails, Nodejs versions\n\nWe expect things not to work completely for various cases.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexample42%2Fpuppet-hdm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexample42%2Fpuppet-hdm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexample42%2Fpuppet-hdm/lists"}