Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wffls/waffles
Bash Configuration Management
https://github.com/wffls/waffles
bash configuration-management linux minimal shell simple
Last synced: about 1 month ago
JSON representation
Bash Configuration Management
- Host: GitHub
- URL: https://github.com/wffls/waffles
- Owner: wffls
- License: mit
- Created: 2015-06-09T16:13:12.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-30T00:20:40.000Z (about 7 years ago)
- Last Synced: 2024-02-11T18:46:29.617Z (11 months ago)
- Topics: bash, configuration-management, linux, minimal, shell, simple
- Language: Shell
- Homepage: http://wffls.github.io
- Size: 3.97 MB
- Stars: 92
- Watchers: 5
- Forks: 13
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Waffles!
Waffles is a suite of Bash scripts to manage server resources in an
idempotent fashion.## Installation and Usage
To install Waffles, just clone the git repo and source the `init.sh` file:
```bash
$ git clone https://github.com/wffls/waffles /opt/waffles
$ source /opt/waffles/init.sh
$ apt.pkg --help
```You can integrate Waffles into a Bash script by sourcing the `init.sh` file
within the script:```bash
#!/bin/bash
source /opt/waffles/init.sh# Install memcached
apt.pkg --package memcached --version latest# Set the listen option
file.line --file /etc/memcached.conf --line "-l 0.0.0.0" --match "^-l"# Determine the amount of memory available and use half of that for memcached
memory_bytes=$(elements System.Memory.Total 2>/dev/null)
memory=$(( $memory_bytes / 1024 / 1024 / 2 ))# Set the memory available to memcached
file.line --file /etc/memcached.conf --line "-m $memory" --match "^-m"# Manage the memcached service
service.sysv --name memcached# If any changes happened, restart memcached
if [[ -n $waffles_total_changes ]]; then
exec.mute /etc/init.d/memcached restart
fi
```## Development
Waffles tries to be as simple as possible while still providing useful
utilities for everyday systems administration. If you find a bug or would like
to add a feature, just make a patch and open a Pull Request.### Testing
Adding unit and acceptance tests are encouraged but not required for Pull
Requests.#### Unit Tests
Unit tests can be found in `tests/core.sh`. They're mainly used to verify
certain functions work correctly.#### Acceptance Tests
Acceptance tests are used to verify resources work correctly.
[Test Kitchen](http://kitchen.ci/) and Docker are used to run the suite of
tests. Use the [install.sh](https://github.com/wffls/waffles/blob/master/tests/kitchen/install.sh)
Waffles script to set up Test Kitchen and all other requirements on an
Ubuntu-based system.Test files can be found in `tests/kitchen/resources`. Each resource test
requires 5 functions:* setup
* create
* update
* delete
* teardownIf any of the functions aren't applicable to the resource test you're writing,
just issue a `return`.You can execute tests by running:
```bash
$ cd /opt/waffles/tests/kitchen
$ ./test.sh --platform ubuntu-1404 --resource file.line
````--platform` will take any regex compatible with the `kitchen test` command.
`--resource` is the name of any resource you want to test. If you want to run
all tests, use `all` as the value.## More Information
See [wffls.github.io](http://wffls.github.io) for more information.