Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/voxpupuli/puppet-augeasproviders_shellvar
Augeas-based shellvar type and provider for Puppet
https://github.com/voxpupuli/puppet-augeasproviders_shellvar
augeas augeasproviders bash centos-puppet-module configuration configuration-files configuration-management debian-puppet-module hacktoberfest linux-puppet-module oraclelinux-puppet-module puppet puppet-module puppet-resources redhat-puppet-module shellvar ubuntu-puppet-module
Last synced: about 1 month ago
JSON representation
Augeas-based shellvar type and provider for Puppet
- Host: GitHub
- URL: https://github.com/voxpupuli/puppet-augeasproviders_shellvar
- Owner: voxpupuli
- License: apache-2.0
- Created: 2014-05-05T17:34:18.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-12T11:25:45.000Z (7 months ago)
- Last Synced: 2024-04-13T21:52:56.446Z (7 months ago)
- Topics: augeas, augeasproviders, bash, centos-puppet-module, configuration, configuration-files, configuration-management, debian-puppet-module, hacktoberfest, linux-puppet-module, oraclelinux-puppet-module, puppet, puppet-module, puppet-resources, redhat-puppet-module, shellvar, ubuntu-puppet-module
- Language: Ruby
- Homepage:
- Size: 698 KB
- Stars: 4
- Watchers: 42
- Forks: 23
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://github.com/voxpupuli/puppet-augeasproviders_shellvar/workflows/CI/badge.svg)](https://github.com/voxpupuli/puppet-augeasproviders_shellvar/actions?query=workflow%3ACI)
[![Release](https://github.com/voxpupuli/puppet-augeasproviders_shellvar/actions/workflows/release.yml/badge.svg)](https://github.com/voxpupuli/puppet-augeasproviders_shellvar/actions/workflows/release.yml)
[![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/augeasproviders_shellvar.svg)](https://forge.puppetlabs.com/puppet/augeasproviders_shellvar)
[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/augeasproviders_shellvar.svg)](https://forge.puppetlabs.com/puppet/augeasproviders_shellvar)
[![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/augeasproviders_shellvar.svg)](https://forge.puppetlabs.com/puppet/augeasproviders_shellvar)
[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/augeasproviders_shellvar.svg)](https://forge.puppetlabs.com/puppet/augeasproviders_shellvar)
[![puppetmodule.info docs](http://www.puppetmodule.info/images/badge.png)](http://www.puppetmodule.info/m/puppet-augeasproviders_shellvar)
[![Coverage Status](https://img.shields.io/coveralls/voxpupuli/puppet-augeasproviders_shellvar.svg)](https://coveralls.io/r/voxpupuli/puppet-augeasproviders_shellvar)
[![Apache-2 License](https://img.shields.io/github/license/voxpupuli/puppet-augeasproviders_shellvar.svg)](LICENSE)# shellvar: type/provider for shell files for Puppet
This module provides a new type/provider for Puppet to read and modify shell
config files using the Augeas configuration library.The advantage of using Augeas over the default Puppet `parsedfile`
implementations is that Augeas will go to great lengths to preserve file
formatting and comments, while also failing safely when needed.This provider will hide *all* of the Augeas commands etc., you don't need to
know anything about Augeas to make use of it.## Requirements
Ensure both Augeas and ruby-augeas 0.3.0+ bindings are installed and working as
normal.See [Puppet/Augeas pre-requisites](http://docs.puppetlabs.com/guides/augeas.html#pre-requisites).
## Installing
The module can be installed easily ([documentation](http://docs.puppetlabs.com/puppet/latest/reference/modules_installing.html)):
```
puppet module install puppet/augeasproviders_shellvar
```## Documentation and examples
Type documentation can be generated with `puppet doc -r type` or viewed on the
[Puppet Forge page](http://forge.puppetlabs.com/puppet/augeasproviders_shellvar).### manage simple entry
shellvar { "HOSTNAME":
ensure => present,
target => "/etc/sysconfig/network",
value => "host.example.com",
}shellvar { "disable rsyncd":
ensure => present,
target => "/etc/default/rsync",
variable => "RSYNC_ENABLE",
value => "false",
}shellvar { "ntpd options":
ensure => present,
target => "/etc/sysconfig/ntpd",
variable => "OPTIONS",
value => "-g -x -c /etc/myntp.conf",
}### manage entry with comment
shellvar { "HOSTNAME":
ensure => present,
target => "/etc/sysconfig/network",
comment => "My server's hostname",
value => "host.example.com",
}### export values
shellvar { "HOSTNAME":
ensure => exported,
target => "/etc/sysconfig/network",
value => "host.example.com",
}### unset values
shellvar { "HOSTNAME":
ensure => unset,
target => "/etc/sysconfig/network",
}### force quoting style
Values needing quotes will automatically get them, but they can also be
explicitly enabled. Unfortunately the provider doesn't help with quoting the
values themselves.shellvar { "RSYNC_IONICE":
ensure => present,
target => "/etc/default/rsync",
value => "-c3",
quoted => "single",
}### delete entry
shellvar { "RSYNC_IONICE":
ensure => absent,
target => "/etc/default/rsync",
}### remove comment from entry
shellvar { "HOSTNAME":
ensure => present,
target => "/etc/sysconfig/network",
comment => "",
}### replace commented value with entry
shellvar { "HOSTNAME":
ensure => present,
target => "/etc/sysconfig/network",
value => "host.example.com",
uncomment => true,
}### uncomment a value
shellvar { "HOSTNAME":
ensure => present,
target => "/etc/sysconfig/network",
uncomment => true,
}### array values
You can pass array values to the type.
There are two ways of rendering array values, and the behavior is set using
the `array_type` parameter. `array_type` takes three possible values:* `auto` (default): detects the type of the existing variable, defaults to `string`;
* `string`: renders the array as a string, with a space as element separator;
* `array`: renders the array as a shell array.For example:
shellvar { "PORTS":
ensure => present,
target => "/etc/default/puppetmaster",
value => ["18140", "18141", "18142"],
array_type => "auto",
}will create `PORTS="18140 18141 18142"` by default, and will change `PORTS=(123)` to `PORTS=("18140" "18141" "18142")`.
shellvar { "PORTS":
ensure => present,
target => "/etc/default/puppetmaster",
value => ["18140", "18141", "18142"],
array_type => "string",
}will create `PORTS="18140 18141 18142"` by default, and will change `PORTS=(123)` to `PORTS="18140 18141 18142"`.
shellvar { "PORTS":
ensure => present,
target => "/etc/default/puppetmaster",
value => ["18140", "18141", "18142"],
array_type => "array",
}will create `PORTS=("18140" "18141" "18142")` by default, and will change `PORTS=123` to `PORTS=(18140 18141 18142)`.
Quoting is honored for arrays:
* When using the string behavior, quoting is global to the string;
* When using the array behavior, each value in the array is quoted as requested.### appending to arrays
shellvar { "GRUB_CMDLINE_LINUX":
ensure => present,
target => "/etc/default/grub",
value => "cgroup_enable=memory",
array_append => true,
}will change `GRUB_CMDLINE_LINUX="quiet splash"` to `GRUB_CMDLINE_LINUX="quiet splash cgroup_enable=memory"`.
shellvar { "GRUB_CMDLINE_LINUX":
ensure => present,
target => "/etc/default/grub",
value => ["quiet", "cgroup_enable=memory"],
array_append => true,
}will also change `GRUB_CMDLINE_LINUX="quiet splash"` to `GRUB_CMDLINE_LINUX="quiet splash cgroup_enable=memory"`.
### removing from arrays
shellvar { "GRUB_CMDLINE_LINUX":
ensure => absent,
target => "/etc/default/grub",
value => "cgroup_enable=memory",
array_append => true,
}will change `GRUB_CMDLINE_LINUX="quiet splash cgroup_enable=memory"` to `GRUB_CMDLINE_LINUX="quiet splash"`.
shellvar { "GRUB_CMDLINE_LINUX":
ensure => absent,
target => "/etc/default/grub",
value => ["quiet", "cgroup_enable=memory"],
array_append => true,
}will also change `GRUB_CMDLINE_LINUX="splash cgroup_enable=memory"` to `GRUB_CMDLINE_LINUX="splash"`.
## Issues
Please file any issues or suggestions [on GitHub](https://github.com/voxpupuli/puppet-augeasproviders_shellvar/issues).