Generarates inventory for ansible from etcd using python-etcd library.
The script assumes etcd.ini to be present alongside it. To choose a different path, set the ETCD_INI_PATH environment variable:
export ETCD_INI_PATH=/path/to/etcd.ini
# removes direnv allow entries which point to nonexistent .envrc files | |
# or where the hash of the envrc does not match | |
direnv_prune () { | |
for entry in ~/.local/share/direnv/allow/* | |
do | |
local file=$(cat $entry) | |
if [ ! -f $file ] | |
then | |
rm $entry | |
else |
#!/bin/bash | |
# Usage: gpg-gen.sh | |
# | |
# Generates a new ECC GPG Key with a random passphrase | |
# It will output the resulting keys to ~/gpg-keys/ | |
# You should save these somewhere safe like 1Password | |
set -euo pipefail | |
PRIMARY_KEY_EXPIRATION=3y |
package win32 | |
import "syscall" | |
import "unsafe" | |
var ( | |
kernel32DLL = syscall.NewLazyDLL("kernel32.dll") | |
procCreateJobObjectA = kernel32DLL.NewProc("CreateJobObjectA") | |
) |
package win32 | |
import ( | |
"syscall" | |
"unsafe" | |
) | |
var ( | |
iphlpapiDLL = syscall.NewLazyDLL("iphlpapi.dll") | |
procGetExtendedTcpTable = iphlpapiDLL.NewProc("GetExtendedTcpTable") |
On Cassandra 1.1.x, nodetool removetoken on a dead node hangs. The only way to reliably remove the node from the cluster is to use an undocumented JMX command to force the remove of the node from gossip.
Upgrading to 1.2.x and above should obviate these steps in favor of nodetool removenode
- See 1.2 Docs
It's probably also a good idea to run a nodetool repair
after this operation - See wiki
package win32 | |
import "unicode/utf16" | |
// StringToCharPtr converts a Go string into pointer to a null-terminated cstring. | |
// This assumes the go string is already ANSI encoded. | |
func StringToCharPtr(str string) *uint8 { | |
chars := append([]byte(str), 0) // null terminated | |
return &chars[0] | |
} |
# Based off https://gist.github.com/jessfraz/7c319b046daa101a4aaef937a20ff41f | |
$gistContent = "https://gist.githubusercontent.com/justenwalker/25211c0fa10ddd705a3f6077e2b7694c" | |
#--- Function Library ---# | |
# New-RegistryKey creates the specified registry key if it does not exist | |
# It will recursively create any parent keys | |
function New-RegistryKey | |
{ |
rows := make([]_MIB_TCPROW_OWNER_PID,int(pTable.dwNumEntries)) | |
for i := 0; i < int(pTable.dwNumEntries); i++ { | |
rows[i] = *(*_MIB_TCPROW_OWNER_PID)(unsafe.Pointer( | |
uintptr(unsafe.Pointer(&pTable.table[0])) + | |
uintptr(i) * unsafe.Sizeof(pTable.table[0]) | |
)) | |
} |
# Ask for a port on which Damon can serve Prometheus metrics | |
network { | |
port "damon" {} | |
} | |
# Advertise damon as a service | |
service { | |
port = "damon" | |
name = "${NOMAD_TASK_NAME}-damon" | |
} |