dozzie's code
Table of Contents
Welcome to the page dedicated to tools written by dozzie (GPG public key).
Most of these tools are written with system administrator's tasks in mind, so they address specific needs encountered by sysadmin (by me, in this case).
Projects
All the projects can be found here: http://dozzie.jarowit.net/code/. Some may also be published on GitHub. Perl modules are certainly pushed to CPAN.
The projects are managed in git version control system, so you'll need to learn it a bit if you want to access the code (though each tool has a short how-to-get instructions provided). History can be viewed on local gitweb instance.
No tarballs with code are provided, at least for now.
monitoring helpers
Seismometer
Monitoring system designed around processing stream of messages with state and metrics. The system consists of tools for generating, transporting, and processing JSON messages, and the tools can be useful on their own.
logdevourer
Log parsing standalone daemon, based on liblognorm library.
DashWiki
Wiki engine for dashboards. DashWiki integrates data from different sources (through XML-RPC, HTTP and such) and allows easy creation of dashboards, releasing sysadmin from necessity of writing web applications over and over again.
flowmon
Network flow monitor. Displays traffic summaries for flows, which are defined by BPF filters.
You can think of this being similar iftop.
general purpose sysadmin helpers
HarpCaller
RPC system for running administrative tasks on remote servers, designed to be usable from a web application. Procedures to be called are part of system’s configuration, and their returned results can be inspected at later time.
This is a second iteration over xmlrpcd idea.
yumbootstrap
Chroot installer for distributions that use Yum (mainly Red Hat, CentOS and Fedora). As the name suggests, it's a RPM clone for debootstrap.
cfgen
Config generator that uses templates (Template::Toolkit) parametrized with YAML files filled with values for each host.
cronbuilder
Tool that pulls sources from one repository, builds them using supplied command and pushes changes to another repository.
Not a difficult thing, but constant rewriting scripts (to keep silence when no changes were made) is annoying when it comes to details.
xmlrpcd
Daemon and shell client utility, both using XML-RPC protocol wrapped in SSL and provided with HTTP authentication.
Daemon is just a trivial HTTP server, that passes XML-RPC calls to appropriate Perl scripts. It's just simpler to configure such a small daemon than Apache, lighttpd or nginx.
rsync-ssl
The Right Way(tm) of doing rsync over SSL. Uses stunnel 4.x.
sftponly
Remember scponly, a shell providing copy-only access to users?
Want to close them in chroot() environment?
Don't want to bother with creating full-blown chroot() or even small /dev contents?
This is the (my) way to go.
sftponly doesn't need any files -- especially device files -- in user's home directory, so it's quite easy to manage multiple copy-only accounts. Your users will not be able to break their environment anymore.
pwgen
pwgen is a password generator producing passwords that are easy to remember.
This is translation original pwgen tool (well, at least a generation algorithm) to Perl and Python languages.
cfauditdump
Tool that dumps audit database coming from cfengine 2.x (3.x in BerkeleyDB format works as well) in YAML format.
Erlang applications
Indira
Helper library making starting Erlang code as a daemon way easier.
subproc
Subprocess manager for Erlang, providing more tools to work with unix processes and ports with a backpressure ({active,once} and passive modes).
TOML
TOML file loader library.
gen_inotify
Linux' inotify(7) subsystem bindings.
estap
Simple test library for Erlang. Mimics excellent Test::More module and is a TAP producer.
xmerlrpc
XML-RPC client and server library.
mod_sse
Low-dependency Server-Sent Events server side implementation.
Python modules
liblognorm bindings
Python bindings for liblognorm, log parsing library. Bindings support liblognorm version 1.1.x.
Perl modules
Log::Message::JSON
Module for structured logging. Log::Message::JSON is basically a hash(ref) that magically stringifies to JSON when necessary.
Log::Log4perl::Appender::Fluent
Module for structured logging. It's a Log::Log4perl appender that submits data to Fluentd. It works with plain strings, but when passed Log::Message::JSON or Log::Message::Structured, it passes full structure.
Sys::Facter
Perl clone of Facter, compatible with pfacter.
Ruby modules
Test::TAP::More
Simple test framework for Ruby. Mimics excellent Test::More module and is a TAP producer.
Quick build how-to
Many of the tools (especially recent ones) are prepared to make a package (DEB and RPM).
- Clone the repository:
git clone http://dozzie.jarowit.net/code/cfgen.git
- Install tools for building packages
- for Debian: packages dpkg-dev, fakeroot, build-essential
- for Red Hat/CentOS: packages make, rpm-build
And possibly compilers (gcc, g++).
- Build a package:
- for Debian:
dpkg-buildpackage -b -uc
- for Red Hat/CentOS:
make srpm rpmbuild --rebuild *.src.rpm
- for Debian:
For original Trac start page, see WikiStartOld.
Attachments
-
dozzie.asc
(2.3 KB) -
added by dozzie 9 years ago.
dozzie's GPG public key