Giter Site home page Giter Site logo

puppet-etckeeper's Introduction

etckeeper

Build Status Codecov Puppet Forge version Puppet Forge downloads Puppet Forge - PDK version

Table of Contents

  1. Description
  2. Setup - The basics of getting started with etckeeper
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module

Description

This module ensures that etckeeper is set up and configured to keep the /etc directory under version control.

RHEL/CentOS, Ubuntu, Debian, SLES and Arch Linux are supported using Puppet 5 or later.

Setup

What etckeeper affects

This module will remove any VCS state directories under /etc for any supported VCS except the one chosen to be used. So for example, if you're using git, any directories matching /etc/.bzr, /etc/.hg and /etc/_darcs will be removed. This also means that if you change VCS you will lose any previous commits.

Setup Requirements

On RHEL/CentOS platforms you will need to have access to the EPEL repository by using puppet/epel or by other means.

Beginning with etckeeper

In the very simplest case, you can just include the following:

include etckeeper

Usage

For example to configure etckeeper to use a specific VCS instead of going with the default:

class { 'etckeeper':
  vcs => 'bzr',
}

Reference

The reference documentation is generated with puppet-strings and the latest version of the documentation is hosted at https://bodgit.github.io/puppet-etckeeper/ and available also in the REFERENCE.md.

Limitations

This module has been built on and tested against Puppet 5 and higher.

The module has been tested on:

  • Red Hat/CentOS Enterprise Linux 6/7
  • Ubuntu 14.04/16.04
  • Debian 7/8

It should also work on SLES 11 & 12 and Arch Linux.

Development

The module relies on PDK and has both rspec-puppet and beaker-rspec tests. Run them with:

$ bundle exec rake spec
$ PUPPET_INSTALL_TYPE=agent PUPPET_INSTALL_VERSION=x.y.z bundle exec rake beaker:<nodeset>

Please log issues or pull requests at github.

puppet-etckeeper's People

Contributors

arakmar avatar bodgit avatar mxey avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

puppet-etckeeper's Issues

git user.email and user.name should be set on Debian/Ubuntu

If git is used the git configuration should be done for etckeeper.
After installing a new package onCentOS 7 i got:

etckeeper: post transaction commit

*** Please tell me who you are.

Run

  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@centos.(none)')
warning: etckeeper failed to commit changes in /etc using git

Is there any way to exclude files via the module?

We have a proxmox host which uses /etc/pve/.rrd to write rrd data :-/
Etckeeper constantly complains when installing new packages about uncommitted changes.

Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   pve/local
#       modified:   pve/openvz
#       modified:   pve/qemu-server
#
no changes added to commit (use "git add" and/or "git commit -a")
E: Problem executing scripts DPkg::Post-Invoke 'if [ -x /usr/bin/etckeeper ]; then etckeeper post-install; fi'
E: Sub-process returned an error code
E: Sub-process /usr/bin/dpkg returned an error code (2)

Manual run via:

$ git add --all .;git commit -m "manual entry"
[master ae42962] manual entry
 1 file changed, 29 insertions(+), 29 deletions(-)
 rewrite pve/.rrd (81%)

Fixes it only until next run.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.