{"id":20376358,"url":"https://github.com/example42/puppet-psick_profile","last_synced_at":"2025-04-12T07:36:56.289Z","repository":{"id":39879200,"uuid":"434859572","full_name":"example42/puppet-psick_profile","owner":"example42","description":"Opinionated profiles to manage common applications","archived":false,"fork":false,"pushed_at":"2024-02-16T21:01:19.000Z","size":270,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T02:51:08.839Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/example42.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}},"created_at":"2021-12-04T09:33:59.000Z","updated_at":"2022-11-21T13:37:23.000Z","dependencies_parsed_at":"2023-01-28T10:00:55.397Z","dependency_job_id":null,"html_url":"https://github.com/example42/puppet-psick_profile","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/example42%2Fpuppet-psick_profile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/example42%2Fpuppet-psick_profile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/example42%2Fpuppet-psick_profile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/example42%2Fpuppet-psick_profile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/example42","download_url":"https://codeload.github.com/example42/puppet-psick_profile/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248535904,"owners_count":21120648,"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":[],"created_at":"2024-11-15T01:37:10.226Z","updated_at":"2025-04-12T07:36:56.243Z","avatar_url":"https://github.com/example42.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# psick_profile\n\n[![Coverage Status](https://coveralls.io/repos/example42/puppet-psick_profile/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/example42/puppet-psick_profile?branch=master)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/81f58c072b394923b760927ff1ad28ef)](https://www.codacy.com/gh/example42/puppet-psick_profile/dashboard?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=example42/puppet-psick_profile\u0026utm_campaign=Badge_Grade)\nThis module provides a collection of reusable profiles for common applications.\n\nFor most of the profiles is not needed a dedicated component module.\n\nPrerequites for this module are example42's tp and psick modules.\n\n## Table of Contents\n\n1.  [Description](#description)\n\n2.  [Setup - The basics of getting started with psick_profile](#setup)\n    -   [What psick_profile affects](#what-psick_profile-affects)\n    -   [Setup requirements](#setup-requirements)\n    -   [Beginning with psick_profile](#beginning-with-psick_profile)\n\n3.  [Usage - Configuration options and additional functionality](#usage)\n\n4.  [Limitations - OS compatibility, etc.](#limitations)\n\n5.  [Development - Guide for contributing to the module](#development)\n\n## Description\n\nThis module manages plenty of different profiles for many common applications.\nYou can cherry pick which ones to use and make them cohexist with your own profiles\nor with component modules.\n\nFor documentation on the specific application profiles refere to the relevant [docs](docs/) pages or directly in the code comments, when present.\n\n## Setup\n\nEvery psick profile can be classified and used indipendently.\n\nYou need to classify also the psick class from the psick module (which by default, without \nspecific Hiera data it does nothing) in order to leverage on the general variables\nset in the main psick class and used in the psick modules.\n\nIn short in you manifests/site.pp or wherever you classify your nodes you need to:\n\n    include psick\n\nand then include/classify the psick profiles you want, for example:\n\n    include psick_profile::gitlab\n    include psick_profile::grafana\n\n\n### What psick_profile affects\n\nEvery psick profile manages the relevant application.\n\nIn some cases you have the option to decide if to use an external component module to install it\nor use Tiny Puppet.\n\nRefer to each profile documentation for more info on the managed resources.\n\nThe classes when an application is installed using Tiny Puppet are always called tp and are placed in manifests called tp.pp\n\nFor example the class `psick_profile::jenkins::tp`, defined under `manifests/jenkins/tp.pp` manages with installation of Jenkins via Tiny Puppet and is, by defauly, included from the main `psick_profile::jenkins` class.\n\n\n### Setup Requirements\n\nPsick_profile module requires:\n\n-   example42-psick module\n-   example42-tp module (which needs the example42-tinydata module)\n\nThe above, of course, need stdlib, which you probably are already using:\n\n-   puppetlabs/stdlib\n\nAccording to the OS used you might need other modules:\n\n-   puppetlabs/vcsrepo (if tp::dir define is used with vcsrepos)\n-   puppetlabs/concat (might be needed in some profiles)\n-   puppetlabs/chocolatey (on Windows nodes)\n-   homebrew module (on Darwin nodes)\n\nSome profiles might require an additional component modules.\n\nRefer to [Puppetfile](docs/Puppetfile) in the docs dir for the complete reference of needed modules, in Puppetfile format.\n\n\n### Beginning with psick_profile\n\nUse whatever classification approach you want and classify the psick profile you want to use.\n\nRemember to classify the psick class as well.\n\nConsidering that psick class can be used also for classification, all you might need is something as follows:\n\nIn your control-repos' `manifests/site.pp` just classify psick for all nodes:\n\n    node default{\n      include psick\n    }\n\nAn then manage everything via Hiera (refer to psick documentation for details), classification included, with something like:\n\n    # Psick based classification for Linux nodes:\n    psick::pre::linux_classes:\n      puppet: psick::puppet\n      hostname: psick::hostname\n      hosts: psick::hosts::resource\n      dns: psick::dns::resolver\n      repo: psick::repo\n      users: psick::users\n    psick::base::linux_classes:\n      ssh: psick::openssh\n      sudo: psick::sudo\n      time: psick::time\n      sysctl: psick::sysctl\n      update: psick::update\n      motd: psick::motd\n      selinux: psick::selinux\n      limits: psick::limits\n      systat: psick_profile::sar\n      mail: psick_profile::postfix\n      icinga: psick_profile::icinga2\n      monitor_plugins: psick_profile::nagiosplugins\n      tp: tp\n\n    # Psick based classification for Windows nodes\n    psick::pre::windows_classes:\n      hosts: psick::hosts::resource\n      chocolatey: chocolatey\n    psick::base::windows_classes:\n      features: psick::windows::features\n      registry: psick::windows::registry\n      services: psick::windows::services\n      tp: tp\n\n    # Psick based classification for MacOS nodes\n    psick::pre::darwin_classes:\n      homebrew: homebrew\n      puppet: psick::puppet\n    psick::base::darwin_classes:\n      tp: tp\n\nNote that each of the above Hiera keys (looked up in Deep merge mode) allows you to classify classes for different OSes (Linux, Windows, MacOS) in different stages, applied in order (pre, base, profile).\n\nThe value of each Hiera key is an hash of key values: the keys can be any string and you can use to override the classes to include at different Hiera levels.\nThe values are simply the classes to classify: they can be your own profiles, a componenent module class, a profile from the psick module or a profile from this module.\n\n## Usage\n\nLook at the single profiles in code documentation or at the directory in docs.\n\n## Limitations\n\nNot all the profiles are tested or work on every OS supported by this module.\n\n## Development\n\nTo contribute to this module open a Pull Request on GitHub, and follow the instructions there.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexample42%2Fpuppet-psick_profile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexample42%2Fpuppet-psick_profile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexample42%2Fpuppet-psick_profile/lists"}