{"id":15103527,"url":"https://github.com/voxpupuli/puppet-system","last_synced_at":"2025-09-27T02:31:30.756Z","repository":{"id":5250357,"uuid":"6428026","full_name":"voxpupuli/puppet-system","owner":"voxpupuli","description":"Manage Linux system resources and services from hiera configuration","archived":true,"fork":false,"pushed_at":"2023-06-09T13:31:17.000Z","size":304,"stargazers_count":63,"open_issues_count":0,"forks_count":47,"subscribers_count":49,"default_branch":"master","last_synced_at":"2025-09-08T10:58:09.191Z","etag":null,"topics":["centos-puppet-module","debian-puppet-module","hacktoberfest","linux-puppet-module","opensuse-puppet-module","oraclelinux-puppet-module","puppet","redhat-puppet-module","scientific-puppet-module","sles-puppet-module","ubuntu-puppet-module"],"latest_commit_sha":null,"homepage":"https://forge.puppet.com/puppet/system","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":".github/SECURITY.md","support":null,"governance":null}},"created_at":"2012-10-28T14:03:23.000Z","updated_at":"2024-10-16T07:54:13.000Z","dependencies_parsed_at":"2023-09-24T10:28:12.771Z","dependency_job_id":null,"html_url":"https://github.com/voxpupuli/puppet-system","commit_stats":{"total_commits":220,"total_committers":15,"mean_commits":"14.666666666666666","dds":"0.34090909090909094","last_synced_commit":"929e39ca59f65601c5dea8228a237b13003d7db1"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/voxpupuli/puppet-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxpupuli","download_url":"https://codeload.github.com/voxpupuli/puppet-system/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276994541,"owners_count":25741828,"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","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"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":["centos-puppet-module","debian-puppet-module","hacktoberfest","linux-puppet-module","opensuse-puppet-module","oraclelinux-puppet-module","puppet","redhat-puppet-module","scientific-puppet-module","sles-puppet-module","ubuntu-puppet-module"],"created_at":"2024-09-25T19:40:19.029Z","updated_at":"2025-09-27T02:31:30.474Z","avatar_url":"https://github.com/voxpupuli.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"**This module is deprecated. Do not use it anymore**\n\nTransferred to the good people at Vox Pupuli.\n\n# puppet-system\n[![License](https://img.shields.io/github/license/voxpupuli/puppet-system.svg)](https://github.com/voxpupuli/puppet-system/blob/master/LICENSE)\n[![Build Status](https://travis-ci.org/voxpupuli/puppet-system.png?branch=master)](https://travis-ci.org/voxpupuli/puppet-system)\n[![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/system.svg)](https://forge.puppetlabs.com/puppet/system)\n[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/system.svg)](https://forge.puppetlabs.com/puppet/system)\n[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/system.svg)](https://forge.puppetlabs.com/puppet/system)\n\nManage Linux system resources and services from hiera configuration.\n\nPlease take note that this module works only with RedHat like systems.\n\n* *augeas*: apply file changes using the augeas tool\n* *crontabs*: set user crontab entries\n* *execs*:  run idempotent external commands\n* *facts*: set custom facts\n* *files*: create/update files or directories\n* *groups*: manage entries in /etc/group\n* *hosts*: manage entries in /etc/hosts\n* *limits*: manage entries in /etc/security/limits.conf\n* *mail* manage entries in /etc/aliases or set a relay host\n* *mounts*: manage entries in /etc/fstab\n* *network*: configure basic networking and dns\n* *ntp*: configure NTP servers in /etc/ntp.conf\n* *packages*: manage system packages\n* *schedules*: determine when resource config should not be applied and how often\n* *selbooleans*: manage SELinux booleans\n* *services*: manage system services\n* *sshd*: manage configuration in /etc/ssh/sshd_config including subsystems like sftp\n* *sysconfig*: manage files under /etc/sysconfig: clock, i18n, keyboard, puppet-dashboard, puppet, puppetmaster, selinux\n* *sysctl*: manage entries in /etc/sysctl.conf\n* *templates*: create files from ERB templates\n* *users*: manage users in /etc/passwd and /etc/shadow\n* *yumgroups*: manage system package groups\n* *yumrepos*: manage yum repository files under /etc/yum.repos.d\n\n## Documentation\n\nFor default types (users, groups, mounts, yumrepos, packages, cron, exec) see\nthe documentation at http://docs.puppetlabs.com/references/latest/type.html for\nthe parameters that can be passed to each of the resources.\n\nFor augeasproviders types (sysctl, sshd) see\nhttp://forge.puppetlabs.com/domcleal/augeasproviders.\n\nFor limits see http://forge.puppetlabs.com/erwbgy/limits.\n\n## Usage\n\nInclude the system module in your puppet configuration:\n\n    include system\n\nand add required hiera configuration.\n\nNote: To exclude certain system classes when doing 'include system' you can set\ntheir schedule parameter to 'never'.  This may be useful when testing or\ndebugging issues or just to prevent config lower in the hierarchy being\napplied.\n\nFor example:\n\n    system::packages::schedule:  'never'\n    system::yumgroups::schedule: 'never'\n\nwill ignore any configuration for system::packages and system::yumgroups.\n\n## augeas\n\nApply changes to files using the augeas tool.  This enables simple\nconfiguration file changes to be made without writing new classes.\n\nExample 1:\n\n    system::augeas:\n      'ntp':\n        context: '/files/etc/ntp.conf'\n        changes:\n          - 'set server[1] 0.uk.pool.ntp.org'\n          - 'set server[2] 1.uk.pool.ntp.org'\n          - 'set server[3] 2.uk.pool.ntp.org'\n\nExample 2:\n\n    system::augeas:\n      'test1':\n        context: '/files/etc/sysconfig/firstboot'\n        changes:\n          - 'set RUN_FIRSTBOOT YES'\n        onlyif:  'match other_value size \u003e 0'\n\nExample 3:\n\n    system::augeas:\n      'jboss_conf':\n        context: '/files'\n        changes:\n          - 'set etc/jbossas/jbossas.conf/JBOSS_IP $ipaddress'\n          - 'set etc/jbossas/jbossas.conf/JAVA_HOME /usr'\n        load_path: '/usr/share/jbossas/lenses'\n\nDefaults:\n\n* ensure: present\n* user: root\n\n## crontabs\n\nSet user crontab entries\n\nExample configuration:\n\n    system::crontabs:\n      'root-logrotate':\n        command: '/usr/sbin/logrotate'\n        user:    'root'\n        hour:    '2'\n        minute:  '0'\n\nDefaults:\n\n* ensure: present\n* user: root\n\n## execs\n\nRun idempotent external commands\n\nExample configuration:\n\n    system::execs:\n      '/bin/mkdir -p /apps/tomcat1/deploy':\n        unless:  '/usr/bin/test -d /apps/tomcat1/deploy'\n      \"/usr/bin/perl -pi -e 's: grep 1.6: egrep \\\"1.6/1.7\\\":' /apps/wso2esb1/product/wso2esb/bin/wso2server.sh\":\n        onlyif: '/bin/grep -w \"grep 1.6\" /apps/wso2esb1/product/wso2esb/bin/wso2server.sh'\n\nNote: The commands will be run on every Puppet run unless you specify 'onlyif',\n'unless' or 'refreshonly' parameters.\n\n## facts\n\nSet custom facts using the facter_dot_d Facter plugin that loads facts from\n/etc/facter/facts.d\n(https://github.com/ripienaar/facter-facts/tree/master/facts-dot-d)\n\nExample configuration:\n\n    system::facts:\n      location:\n        value: 'London'\n      ntpq:\n        type:  'script'\n        value: \"#!/bin/bash\\nprintf ntpq=\\n/usr/sbin/ntpq -p | /usr/bin/tail -1\\n\"\n\nThese facts can be queried on a host using 'facter -p':\n\n    $ facter -p location\n    London\n    $ facter -p ntpq\n    *10.43.4.8       158.43.128.33    2 u  820 1024  377    0.538    0.155   0.048\n\nSet:\n\n    system::facts::cleanold: true\n\nto remove facts from the old locations under /etc/profile.d and in\n/etc/sysconfig/puppet.\n\n## files\n\nCreate or update files or directories\n\nExample 1 - create a mount point for an NFS mounted directory:\n\n    system::files:\n      /apps:\n        ensure:  'directory'\n        owner:   'root'\n        group:   'root'\n        mode:    '0755'\n\nExample 2 - create a file with the given content:\n\n    system::files:\n      /etc/motd:\n        ensure:  'present'\n        owner:   'root'\n        group:   'root'\n        mode:    '0644'\n        content: \"Authorised access only\\nIf unauthorised log off now or face prosecution\\n\"\n\nNote: Use double-quotes if your content contains embedded newlines (\\n) or tabs\n(\\t).  Normally you will also want a terminating newline.\n\n## groups\n\nManage entries in /etc/group\n\nExample configuration:\n\n    system::groups:\n      'sysadmins':\n        ensure: 'present'\n        gid:    '1500'\n      'ops':\n        gid:    '1503'\n    system::groups::realize:\n      - 'keith'\n\nDefaults:\n\n* ensure: present\n\nBy default virtual group resources are created that must then be realized.  To\ncreate real resources instead (as with earlier versions of this module) use:\n\n    system::groups::real: 'true'\n\n## hosts\n\nManage entries in /etc/hosts\n\nExample configuration:\n\n    system::hosts:\n      puppet:\n        ensure:       'present'\n        ip:           '10.5.11.19'\n        host_aliases: [ 'puppet.local' ]\n\nDefaults:\n* ensure: present\n\nSee: http://docs.puppetlabs.com/references/latest/type.html#host\n\n## limits\n\nManage entries in /etc/security/limits.conf\n\nExample configuration:\n\n    system::limits:\n      '*':\n        nofile:\n          soft: 1024\n          hard: 2048\n      '@weblogic':\n        nofile:\n          soft: 16384\n          hard: 16384\n        nproc:\n          soft: 2048\n          hard: 2048\n\nNo defaults.\n\n## mail\n\nManage entries in /etc/aliases or set a relay host\n\nExample configuration:\n\n    system::mail:\n      aliases:\n        postmaster:\n          recipient: 'root'\n        webmaster:\n          recipient: 'fred@domain.com'\n      relayhost:     'mail.domain.com'\n      type:          'postfix'\n\nNo defaults.\n\nSee: http://docs.puppetlabs.com/references/latest/type.html#mailalias\n\nCurrently only 'postfix' is supported for setting a relay host.\n\n## mounts\n\nManage entries in /etc/fstab\n\nExample configuration:\n\n    system::mounts:\n      '/home':\n        ensure:  'mounted'\n        device:  '/dev/mapper/vg_x120-lv_home'\n        atboot:  'true'\n        fstype:  'ext4'\n        options: 'defaults'\n\nDefaults:\n\n* atboot: true\n* ensure: mounted\n\nNote: These resources are created last so any required users, groups or mount\npoint directories have a chance to be created first.\n\n## network\n\nConfigure basic networking: set hostname, enable/disable zeroconf/IPv6, set the default route,\nconfigure interfaces and their static routes, configure nameserver resolvers and domains\n\nExample configuration:\n\n    system::network::hostname: 'puppet.domain.com'\n    system::network::gateway:  '10.7.0.1'\n    system::network::ipv6:     'false'\n    system::network::zeroconf: 'false'\n    system::network::dns:\n      nameservers: [ '10.7.96.2', '10.7.96.2' ]\n      domains:     [ 'domain.com', 'sub.domain.com' ]\n    system::network::interfaces:\n      eth0:\n        ipaddress: '10.7.96.21'\n        netmask:   '255.255.240.0'\n        routes:\n          '10.0.0.0/8':\n            via: '10.16.0.250'\n\n## ntp\n\nManage NTP servers in /etc/ntp.conf\n\nExample 1:\n\n    system::ntp::iburst:  'true'\n    system::ntp::servers: [ 'ntp1.example.com' ]\n\nExample 2:\n\n    system::ntp::iburst:  'true'\n    system::ntp::country: 'uk'\n\nSee https://github.com/erwbgy/puppet-ntp for more details\n\nNote: The NTP algorithm does not work properly with two NTP servers.\n\n## packages\n\nManage system packages\n\nExample configuration:\n\n    system::packages:\n      AdobeReader_enu:\n        ensure: '9.5.1-1'\n      ConsoleKit:\n        ensure: '0.4.5-2.fc17'\n\nDefaults:\n\n* ensure: installed\n\n## schedules\n\nCreate schedules that determine when a resource should not be applied and the\nnumber times it should be applied within a specified time period.\n\nExample configuration:\n\n    system::schedules:\n      'maintenance':\n        range:  '2 - 4'\n        period: 'daily'\n        repeat: 1\n      'half-hourly':\n        period: 'hourly'\n        repeat: 2\n\nThe defined schedules can then be passed using the 'schedule' parameter to\nother types.\n\nExample 1:\n\n    system::schedule: 'maintenance'\n\nsets the default schedule for all system resources so that they are only\nrun during the maintenance window of 2:00 to 04:59.\n\nExample 2:\n\n    system::services::schedule: 'daily'\n\nsets the default schedule for all system::services resources to be once a day.\n\nExample 3:\n\n    system::services:\n      httpd:\n        ensure: 'running'\n        enable: 'true'\n        schedule: 'half-hourly'\n\noverrides the services schedule for the httpd resource using a custom schedule\nwe defined above.\n\nThe default Puppet schedules are:\n\n* daily\n* hourly\n* monthly\n* never\n* weekly\n\nand the system::schedule class defines another called *always* that schedules\nthe resource on every Puppet run.\n\n## selbooleans\n\nManages SELinux booleans\n\nExample configuration:\n\n    system::selbooleans:\n      'httpd_can_network_connect':\n        value: 'on'\n        persistent: 'true'\n\nDefaults:\n\n* persistent: false\n\n## services\n\nManage system services\n\nExample configuration:\n\n    system::services:\n      cups:\n        ensure: 'stopped'\n        enable: 'false'\n      sshd:\n        ensure: 'running'\n        enable: 'true'\n      ntpd:\n        ensure: 'running'\n        enable: 'true'\n\nDefaults:\n\n* ensure: running\n\nNote:\n\n* Do not specify any services that are managed by other Puppet modules (eg.\n  ntpd or network) otherwise you may get conflicts\n\n## sshd\n\nManage settings in /etc/ssh/sshd.conf\n\nSynchronize host keys file entries across all puppet-managed hosts.\n\nExample configuration:\n\n    system::sshd:\n      AllowGroups:\n        value:     [ 'sshusers', 'admin' ]\n      PermitRootLogin:\n        value:     'without-password'\n        condition: 'Host example.net'\n\n    system::sshd::subsystem:\n      sftp:\n        command: '/usr/libexec/openssh/sftp-server -u 0002'\n\n    system::sshd::sync_host_keys: 'true'\n\nNo defaults.\n\nSee:\n\n* https://github.com/domcleal/augeasproviders/blob/master/lib/puppet/type/sshd_config.rb\n* https://github.com/domcleal/augeasproviders/blob/master/lib/puppet/type/sshd_config_subsystem.rb\n\n## sysconfig\n\nManage settings in files under /etc/sysconfig\n\nExample configuration:\n\n    system::sysconfig::clock:\n      timezone: 'Europe/London'\n\n    system::sysconfig::i18n:\n      # Run 'locale -a' to see possible lang values\n      lang: 'en_GB.utf8'\n\n    system::sysconfig::keyboard:\n      keytable:     'uk'\n      model:        'pc105'\n      layout:       'gb'\n      keyboardtype: 'pc'\n\n    system::sysconfig::puppet:\n      server: 'puppet.sbet'\n\n    system::sysconfig::selinux:\n      state: 'enforcing'\n\nNo defaults.\n\nNote: Values must not contain whitespace\n\n## sysctl\n\nManage settings in /etc/sysctl.conf\n\nExample configuration:\n\n    system::sysctl:\n      kernel.msgmnb:\n        value: '131072'\n        comment: 'Controls the default maximum size of a message queue'\n      kernel.msgmax:\n        value: '131072'\n        comment: ' Controls the maximum size of a message, in bytes'\n\nNo defaults.\n\nSee:\n\n* https://github.com/domcleal/augeasproviders/blob/master/lib/puppet/type/sysctl.rb\n\n\nNote: Quote numeric values to avoid \"can't convert Fixnum into String\" errors\n\n## templates\n\nCreate files from ERB templates\n\nExample configuration:\n\n    system::templates:\n      /etc/motd:\n        owner:    'root'\n        group:    'root'\n        mode:     '0644'\n        template: \"/var/lib/puppet/templates/motd-%{osfamily}.erb\"\n      /etc/environment:\n        owner:    'root'\n        group:    'root'\n        mode:     '0644'\n        template: \"environment.erb\"\n\nDefault:\n\n* owner: root\n* group: root\n\nIf **template** is a relative path then Puppet will look for template file in\n*template_dir* (eg. /var/lib/puppet/templates).\n\nTemplates can use any facts set for the destination host.\n\n## users\n\nManage users entries in /etc/passwd and /etc/shadow\n\nExample configuration:\n\n    system::users:\n      'keith':\n        ensure:    'present'\n        comment:   'Keith Burdis'\n        gid:       '500'\n        groups:    ['wheel']\n        home:      '/home/keith'\n        shell:     '/bin/bash'\n        uid:       '500'\n      'fred':\n        comment:   'Fred Bloggs'\n        uid:       '503'\n        gid:       '503'\n        home:      '/home/fred'\n        managehome: true\n    system::users::realize:\n      - 'keith'\n\nDefaults:\n\n* ensure: present\n* shell:  /bin/bash\n\nBy default virtual user resources are created that must then be realized.  To\ncreate real resources instead (as with earlier versions of this module) use:\n\n    system::users::real: 'true'\n\n## yumgroups\n\nManage system package groups\n\nExample configuration:\n\n    system::yumgroups:\n      'Base':\n        ensure: 'present'\n      'Console internet tools':\n        ensure: 'present'\n      'Perl Support':\n        ensure: 'present'\n        usecache: false\n      'Ruby Support':\n        ensure: 'present'\n        optional: true\n        usecache: false\n\nDefaults:\n\n* optional: false\n* usecache: true\n* schedule: daily\n\nNote: Set 'usecache: false' if 'yum -C grouplist' does not work on your system\nand you are getting System::Yumgroup resources created on every Puppet run\n\nNote: By default the yumgroup type has a 'daily' schedule to reduce the time\nPuppet runs take - package group changes are usually rare after the host is\nfirst set up. This means that it will run once every 24 hours. You override\nthis by supplying your own schedule parameter - see system::schedules to create\nyour own custom schedules.\n\n## yumrepos\n\nManage yum repository files under /etc/yum.repos.d\n\nExample configuration:\n\n    system::yumrepos:\n      'puppetlabs-deps':\n        baseurl:  'http://yum.puppetlabs.com/fedora/f17/dependencies/$basearch'\n        descr:    'Puppet Labs Dependencies Fedora 17 - $basearch'\n        enabled:  '1'\n        gpgcheck: '1'\n        gpgkey:   'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs'\n      'puppetlabs-products':\n        baseurl:  'http://yum.puppetlabs.com/fedora/f17/products/$basearch'\n        descr:    'Puppet Labs Products Fedora 17 - $basearch'\n        enabled:  '1'\n        gpgcheck: '1'\n        gpgkey:   'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs'\n\nDefaults:\n\n* enabled: 1\n* gpgcheck: 1\n\n## providers\n\nThe augeasproviders module can be an alternate provider for the host, mailalias\nand mounttab types.\n\nExample configuration:\n\n    system::providers:\n      host: 'augeas'\n      mailalias: 'augeas'\n      mounttab: 'augeas'\n\n## Notes\n\n* Do not specify resources that are managed by other Puppet modules otherwise\n  you will get conflict errors.\n\n* As with many default types you can often specify a 'target' parameter to\n  specify a different configuration filename to change.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxpupuli%2Fpuppet-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-system/lists"}