Skip to content

Instantly share code, notes, and snippets.

View h0tw1r3's full-sized avatar
🏝️
Living the dream

Jeffrey Clark h0tw1r3

🏝️
Living the dream
View GitHub Profile
@h0tw1r3
h0tw1r3 / fakeprovide.pp
Created January 10, 2024 16:39
fakeprovide rpm resource type for puppet
# fake provide rpm dependencies
#
# requires stdlib module
#
# @param provide
# what to provide
# @param extras
# extra provides to add to package
#
# @example
@h0tw1r3
h0tw1r3 / resolv.rb
Created August 28, 2023 16:13
resolv.conf fact for puppet
# local resolver configuration
require 'resolv'
Facter.add('resolv') do
setcode do
Resolv::DNS::Config.default_config_hash
end
end
@h0tw1r3
h0tw1r3 / loggertest.sh
Last active August 23, 2023 19:30
continuously log random meat ipsum to syslog using logger
#!/bin/bash
TMPFILE=$(mktemp)
finish() {
rm -f "${TMPFILE}"
}
trap 'finish' EXIT
UNIQ_LINES=20
@h0tw1r3
h0tw1r3 / region_tzinfo.rb
Created August 15, 2023 16:57
aws region timezone fact for puppet, useful for cron offsets when system time is UTC
Facter.add('region_tzinfo') do
ec2m = Facter.value(:ec2_metadata)
# aws instances that have not been powercycled in 2+ years
# will not have region in the metadata
aws_zone = ec2m.dig('placement', 'availability-zone')
iana_tz = case aws_zone
when %r{^ap-southeast-1}
'Asia/Singapore'
when %r{^ap-southeast-2}
'Australia/Sydney'
@h0tw1r3
h0tw1r3 / catalog.sh
Last active August 8, 2023 19:41
Directly request a puppet catalog with curl
puppet plugin download --verbose
puppet facts upload --verbose
curl "https://$(puppet config print server):8140/puppet/v3/catalog/$(hostname -f)?environment=$(puppet config print environment)" \
--cert $(puppet config print hostcert) \
--cacert $(puppet config print localcacert) \
--key "$(puppet config print hostprivkey)" \
--silent | jq . > catalog.json
jq '.resources[] | select(.parameters.recurse == true )' catalog.json
@h0tw1r3
h0tw1r3 / test.pp
Created June 10, 2023 04:09
Test single exec to manage systemd unit override with Puppet
exec { 'override-service-unit':
provider => 'shell',
environment => ['SYSTEMD_EDITOR=tee'],
command => 'echo "[Service]\nPrivateTmp=no\n" | script -qefc "systemctl edit nutcracker.service" /dev/null',
unless => '/usr/bin/env systemctl show nutcracker.service --property=PrivateTmp | grep "=no"',
notify => Service['nutcracker'],
}
@h0tw1r3
h0tw1r3 / docker_cleanup_beaker.sh
Created February 21, 2023 21:45
shell function to cleanup beaker docker containers
# clean up all beaker containers and images
# useful when using BEAKER_destroy=no
function docker-cleanup-beaker() {
while read i; do
X=($i)
echo -n "Cleaning up ${X[2]}: stopping container"
docker stop "${X[0]}" >/dev/null
echo -n ", removing container"
docker rm "${X[0]}" >/dev/null
echo -n ", removing images"
@h0tw1r3
h0tw1r3 / psmouse
Created January 22, 2023 19:33
Linux on Lenovo Thinkpad S1 Yoga
#!/bin/sh
# trackpad and trackpoint are connected to the ps port
# psmouse is not hotplug friendly
# must be removed before sleep
# place this file in /lib/systemd/system-sleep
# and chmod +x
PATH=/sbin:/usr/sbin:/bin:/usr/bin
@h0tw1r3
h0tw1r3 / pe-backup.sh
Last active August 29, 2023 15:15
Puppet Enterprise auto-rotate puppet-backup wrapper
#!/bin/bash
#
# Puppet Enterprise backup script
#
# Limits retained backup archives
# Optionally creates a backup of the PE service secure keys
#
# All arguments supplied via environment variables.
#
# License: MIT
@h0tw1r3
h0tw1r3 / ExtendedUnrar.py3
Created January 5, 2023 01:43
Extension Script to extract embedded rars for NZBget
#!/usr/bin/env python3
"""
ExtendedUnrar post-processing script for NZBGet
Copyright (C) 2023 h0tw1r3
Copyright (C) 2014 thorli <[email protected]>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or