{"id":17462861,"url":"https://github.com/mralias/upkeep","last_synced_at":"2025-03-28T06:41:07.633Z","repository":{"id":33122049,"uuid":"36761132","full_name":"MrAlias/upkeep","owner":"MrAlias","description":"Puppet module providing unified way to roll out package updates.","archived":false,"fork":false,"pushed_at":"2015-06-03T16:24:01.000Z","size":148,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-02T07:26:20.674Z","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/MrAlias.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-02T20:52:43.000Z","updated_at":"2015-06-02T23:25:06.000Z","dependencies_parsed_at":"2022-09-12T17:22:21.493Z","dependency_job_id":null,"html_url":"https://github.com/MrAlias/upkeep","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrAlias%2Fupkeep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrAlias%2Fupkeep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrAlias%2Fupkeep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrAlias%2Fupkeep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrAlias","download_url":"https://codeload.github.com/MrAlias/upkeep/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245984561,"owners_count":20704794,"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-10-18T09:10:09.813Z","updated_at":"2025-03-28T06:41:07.606Z","avatar_url":"https://github.com/MrAlias.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# upkeep\n\n#### Table of Contents\n\n1. [Overview](#overview)\n2. [Module Description - What upkeep does and why it is useful](#module-description)\n3. [Setup - The basics of getting started with upkeep](#setup)\n    * [What upkeep affects](#what-upkeep-affects)\n    * [Beginning with upkeep](#beginning-with-upkeep)\n4. [Usage - Configuration options and additional functionality](#usage)\n5. [Reference - An under-the-hood peek at what upkeep is doing and how](#reference)\n    * [Private Classes](#private-classes)\n    * [Public Classes](#public-classes)\n6. [Limitations](#limitations)\n7. [Development - Guide for contributing to the module](#development)\n\n## Overview\n\nProvides a unified way to roll out package updates to an entire Puppet managed cluster.\n\n## Module Description\n\nWhen Puppet in managing packages on more nodes than you care to log into and update manually, you need a way for Puppet to uniformly and safely update these packages.  This module is intended to do just that by working with the system's package manager.\n\nUpdates are done in two ways: safely and fully.  Fully updating the system is different in that it could delete unspecified packages. Both ways of updating are managed by state files containing date/time stamps (`full_timestamp` and `safe_timestamp`).  In practice these date/time stamps can be anything you want, the upgrade will happen whenever they changes.  However, future you will thank past you when you use a date/time stamp, as this helps keep a record of when packages were upgraded by upkeep.\n\n## Setup\n\n### What upkeep affects\n\n* Packages maintained by the system's package manager.\n* State files stored on the system keeping track of updates.\n\n### Beginning with upkeep\n\nTo put in place all needed files but not have anything update:\n\n```puppet\ninclude upkeep\n```\n\n## Usage\n\nIn order to do a safe package upgrade, update the `safe_timestamp` parameter here:\n\n```puppet\nclass { 'upkeep':\n  safe_timestamp =\u003e '2015-06-02_14:38:06',\n}\n```\n\nWhile you can pass what you like to the `timestamp` parameter and puppet will preform the upgrade, it is in your best interest to pass a uniform and current datetime for your future reference.\n\nIf a more extensive upgrade (i.e. one that potentially could remove packages or have unforeseen failures), update the `full_timestamp`:\n\n```puppet\nclass { 'upkeep':\n  full_timestamp =\u003e '2015-06-02_14:38:06',\n}\n```\n\nIf you're not on a RedHat or Debian based systems using `yum` or `aptitude` you could still use upkeep to manage package updates.  You will need to provide update commands and possibly a place to store state files.  An example of doing so with an Archlinux system using `pacman` might look somethings like:\n\n```puppet\nclass { 'upkeep':\n  safe_upgrade_cmd =\u003e 'pacman -Syyu',\n  state_dir        =\u003e '/etc/upkeep',\n  safe_timestamp   =\u003e '2015-06-02_14:38:06',\n}\n```\n\nKeep in mind that this is experimental and not actively tested.  If there are issues please [report](https://github.com/MrAlias/upkeep/issues) them.\n\n## Reference\n\n### Private Classes\n\n#### upkeep::params\n\nThis defines operating system specific values to parameters and should not be directly used.\n\n### Public Classes\n\n#### upkeep\n\nProvides functionality for the unified way of rolling out package updates.\n\n##### `upkeep::state_dir`\n\n  Absolute path to where the state files are stored.\n\n##### `upkeep::full_upgrade_cmd`\n\n  Command that does a full package upgrade.\n\n##### `upkeep::full_timestamp`\n\n  A date/time specifying up to what point packages older then should be fully updated regardless of consequences.  If set to an empty string no update will happen.\n\n  Defaults to an empty string.\n\n##### `upkeep::safe_upgrade_cmd`\n\n  Command that does a safe package upgrade.\n\n##### `upkeep::safe_timestamp`\n\n  A date/time specifying up to what point packages older then should be safely updated.  If set to an empty string no update will happen.\n\n  Defaults to an empty string.\n\n##### `upkeep::manage_rkhunter`\n\n  If rkhunter is installed on the system it will likely complain if packages are upgraded without it knowing about them.  This parameter specifies if rkhunter should be updated by runing `rkhunter --propupd`.\n\n##### `upkeep::rkhunter`\n\n  Absolute path of the rkhunter executable to run if rkhunter is updated.\n\n## Limitations\n\nThis module cuttently only supports RedHat and Debian based systems using `yum` and `aptitude` package managers.\n\nThe module is built with the intent to support other operating systems with a bit of customization.  This likely means that you will have to provide update commands and possibly a place to store state files.\n\n*Caveat Emptor*: this module has only been tested on the mentioned supported systems.\n\n## Development\n\nThis module is open to collaboration and feedback.\n\nGuide lines for both:\n\n* Keep it clean\n* Keep it concise\n* Have an open mind\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmralias%2Fupkeep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmralias%2Fupkeep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmralias%2Fupkeep/lists"}