{"id":19308661,"url":"https://github.com/mtulio/puppet-module-linux","last_synced_at":"2026-05-16T04:34:06.330Z","repository":{"id":57666852,"uuid":"49460999","full_name":"mtulio/puppet-module-linux","owner":"mtulio","description":"Puppet Linux is a module to configure features on Operational Systems","archived":false,"fork":false,"pushed_at":"2016-02-28T06:27:51.000Z","size":38,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-26T13:52:08.385Z","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/mtulio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-11T23:22:48.000Z","updated_at":"2016-12-30T18:34:46.000Z","dependencies_parsed_at":"2022-09-02T16:59:59.866Z","dependency_job_id":null,"html_url":"https://github.com/mtulio/puppet-module-linux","commit_stats":null,"previous_names":["mtulio/puppet-linux"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mtulio/puppet-module-linux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtulio%2Fpuppet-module-linux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtulio%2Fpuppet-module-linux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtulio%2Fpuppet-module-linux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtulio%2Fpuppet-module-linux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtulio","download_url":"https://codeload.github.com/mtulio/puppet-module-linux/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtulio%2Fpuppet-module-linux/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30326891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-10T00:16:01.542Z","updated_at":"2026-03-10T06:33:15.069Z","avatar_url":"https://github.com/mtulio.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# linux\n\n[![Puppet Forge](http://img.shields.io/puppetforge/v/mtulio/linux.svg)](https://forge.puppetlabs.com/mtulio/linux)\n[![Build Status](https://travis-ci.org/mtulio/puppet-linux.png?branch=master)](https://travis-ci.org/mtulio/puppet-linux)\n\n\n#### Table of Contents\n\n1. [Overview](#1-overview)\n2. [Module Description](#2-module-description)\n3. [Setup](#3-setup)\n    * [What module affects](#what-module-affects)\n    * [Setup requirements](#setup-requirements)\n    * [Beginning](#beginning)\n4. [Usage](#4-usage)\n5. [Reference](#5-reference)\n6. [Limitations](#6-limitations)\n7. [Development](#7-development)\n8. [Release Notes](#8-release-notes)\n\n## 1. Overview\n\nThis module is a 'all-in-one' module to manage main Linux configurations including basic and security options\n\n## 2. Module Description\n\nThis module is a 'all-in-one' module to manage main Linux configurations, that includes:\n\nSecurity administration:\n* SELinux config\n \nBasic Sysadmin administration:\n* motd\n* ntpdate\n* hosts\n* timezone\n* resolv.conf\n* sudoers\n\n\n## 3. Setup\n\n### What module affects\n\n* This module can change all the behavior of the Linux Operational System,\n  mostly the security classes\n  \n\n### Setup Requirements \n\nInstall module:\n* puppet module install mtulio-linux\n\n### Beginning\n\nThis is a great module to configure your OS Linux. This module can be called from a \nprofile module, and it was created to be easy to manage the simple Linux configurations.\n\n## 4. Usage\n\nCheck usage of each class: \n\n\n### Base Class: NTPdate\n\n* Schedulle at contab an ntpdate execution using custom ntp servers:\n\n```\n class {'linux::base::ntpdate' :\n   ntpserver =\u003e 'pool.ntp.br',\n }\n```\n\n### Base Class: MOTD\n\n* Create a default 'Message of the Day':\n\n```\n class {'linux::base::motd' : }\n```\n\n* Create a custom message:\n\n```\n class {'linux::base::motd' : \n   content =\u003e 'Custom motd message',\n }\n```\n\n* Create a custom esb template file:\n\n```\n class {'linux::base::motd' :\n   content =\u003e 'custom/path/to/motd.esb',\n }\n```\n\n### Base Class: HOSTS\n\n* Update hots file:\n\n```\n class {'linux::base::hosts' : }\n```\n\n### Base Class: TIMEZONE\n\n* Update system timezone, using default timezone [linux::params]:\n\n```\n class {'linux::base::timezone' : }\n```\n\n* Update system timezone from system, usgin custom timezone:\n\n```\n class {'linux::base::timezone' : \n   timezone =\u003e 'America/Recife',\n }\n```\n\n### Base Class: RESOLV_CONF\n\n* Update /etc/resolv.conf from [linux::params]:\n\n```\n class {'linux::base::resolv_conf' : }\n```\n\n* Update /etc/resolv.conf of custom servers:\n\n```\n class {'linux::base::resolv_conf' : \n   nameservers = ['8.8.8.8'],\n }\n```\n\n### Base Class: SUDOERS\n\n* Update /etc/sudoers from default template :\n\n```\n class {'linux::base::resolv_conf' : }\n```\n\n* Update /etc/sudoers from custom template:\n\n```\n class {'linux::base::resolv_conf' : \n   template =\u003e '/path/to/your/template/sudoers',\n }\n```\n\n### Base Function: USER\n\n* Add local user [tests/base_user_add.pp]:\n\n```\ninclude linux\nlinux::base::user {'marco.braga':\n  ensure           =\u003e present,\n  user             =\u003e 'marco.braga',\n  comment          =\u003e 'Test add user',\n  home             =\u003e '/home/marco.braga',\n  password         =\u003e 'teste',\n  gid              =\u003e 'marco.braga',\n  groups           =\u003e ['users','g2'],\n  shell            =\u003e '/bin/bash',\n  manage_home      =\u003e true,\n  password_max_age =\u003e '99999',\n  password_min_age =\u003e '0',\n  group_ensure     =\u003e 'present'\n}\n```\n\n* Remove user from system [tests/base_user_rem.pp]:\n```\ninclude linux\nlinux::base::user {'marco.braga':\n  ensure =\u003e absent\n}\n```\n\n\n### Security Class: SELinux\n\n* Set to permissive mode:\n\n```\n class {'linux::security::selinux' :\n   mode =\u003e permissive,\n }\n```\n\n* Set to enforced mode:\n\n```\nclass {'linux::security::selinux' :\n  mode =\u003e enforced,\n}\n```\n\n* Set to 'disabled' mode:\n\n```\n class {'linux::security::selinux' :\n   mode =\u003e disabled,\n }\n```\n\n* Config from your own custom template:\n\n```\n class {'linux::security::selinux' :\n   template_conf =\u003e 'module/selinux/config.erb',\n }\n```\n\n\n## 5. Reference\n\n### Base Class: NTPdate\n\n* Description: Schedulle to update System Time using ntpdate\n* Default ntp server: 'a.ntp.br'\n* Files affected: \n\n```\n/etc/crontab\n```\n\n### Base Class: MOTD\n\n* Description: Create a custom 'Message of the Day'\n* Files affected: \n\n```\n /etc/motd\n```\n\n### Base Class: Hosts\n\n* Description: Update hosts file with your local IP address and domain\n* Files affected: \n\n```\n/etc/hosts\n```\n\n### Base Class: TIMEZONE\n\n* Description: Update system timezone\n* Files affected: \n\n```\n/etc/localtime\n/etc/timezone\n```\n\n### Base Class: RESOLV_CONF\n\n* Description: Update DNS local resolver configuration\n* Files affected: \n\n```\n/etc/resolv.conf\n```\n### Base Class: SUDOERS\n\n* Description: Update SUDOERS file to manage grant right for users on Linux System\n* Files affected: \n\n```\n/etc/sudoers\n```\n### Feature User: Base/USER\n\n* Description: Add or remove local users on Linux System\n* Files affected: \n\n```\n/etc/passwd\n/etc/shadow\n/etc/groups\n```\n\n### Security Class: SELinux\n\n* Description: Configure SELinux to enforcing, permissive or disabled mode\n* Files affected: \n\n```\n/etc/selinux/config\n```\n\n## 6. Limitations\n\nOS compatibility: \n* Red Hat family 7+ \n\nWe're working to support more OS.\n\n## 7. Development\n\nSee project page at https://github.com/mtulio/puppet-linux\n\n## 8. Release Notes\n\n[1.1.1]\n* Fix metadata dependences\n\n[1.1.0]\n* New feature: 'linux::base::user' - Manage and delete users\n\n[1.0.1] - [1.0.3]\n* Documentation review and fix\n* Coding style review\n\n[1.0.0]\n* Add module: linux::base::sudoers\n* Review documentation e project description\n\n[0.1.0]\n* Add class security::selinux \n* Add class base::ntpdate\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtulio%2Fpuppet-module-linux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtulio%2Fpuppet-module-linux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtulio%2Fpuppet-module-linux/lists"}