Skip to content

Instantly share code, notes, and snippets.

View imcitius's full-sized avatar

Ilya Rubinchik imcitius

View GitHub Profile
@imcitius
imcitius / fix-split-brain.sh
Created September 28, 2021 10:49
redis fix-split-brain.sh
HOSTNAME="$(hostname)"
INDEX="${HOSTNAME##*-}"
SENTINEL_PORT=26379
ANNOUNCE_IP=''
MASTER=''
MASTER_GROUP="redis"
QUORUM="2"
REDIS_CONF=/data/conf/redis.conf
REDIS_PORT=6379
REDIS_TLS_PORT=
@imcitius
imcitius / redis-sentinel-slave.conf
Created September 24, 2021 18:51
redis-sentinel-slave.conf
port 26379
logfile "/var/log/redis/sentinel.log"
dir "/tmp"
sentinel myid f654d695c7b47d2fe1a8d273937b9039fd15148f
sentinel deny-scripts-reconfig yes
sentinel monitor redis 192.168.127.132 6379 2
sentinel down-after-milliseconds redis 3000
@imcitius
imcitius / redis-slave.conf
Created September 24, 2021 18:50
redis-slave.conf
daemonize no
pidfile "/var/run/redis/redis.pid"
port 6379
tcp-backlog 511
bind 192.168.127.131 127.0.0.1
timeout 0
tcp-keepalive 0
loglevel notice
@imcitius
imcitius / redis-sentinel-master.conf
Last active September 24, 2021 18:50
redis-sentinel-master.conf
port 26379
logfile "/var/log/redis/sentinel.log"
dir "/tmp"
sentinel myid 7de6d6260f98eb7c045845cda4e981a2ca4b5d74
sentinel deny-scripts-reconfig yes
sentinel monitor redis 192.168.127.132 6379 2
sentinel down-after-milliseconds redis 3000
@imcitius
imcitius / redis-master.conf
Created September 24, 2021 18:48
redis-master.conf
daemonize no
pidfile "/var/run/redis/redis.pid"
port 6379
tcp-backlog 511
bind 192.168.127.132 127.0.0.1
timeout 0
tcp-keepalive 0
loglevel notice
@imcitius
imcitius / terraform-consul1.0.py
Created July 15, 2021 09:06
Ansible dynamic inventory script for terraform
#!/usr/bin/env python3
from __future__ import print_function
import base64
import os
import sys
import json
from collections import OrderedDict
import requests
from requests.auth import HTTPBasicAuth
import re
@imcitius
imcitius / certs.sh
Last active February 19, 2021 08:59
Acme-Lego script to issue and renew certificates
#!/bin/bash
#set -xe
LEGO_PATH=/tmp/cert-$RANDOM
mkdir -p $LEGO_PATH/accounts/acme-v02.api.letsencrypt.org/$ACC/keys
vault read -field=account.json secret/$ENV/letsencrypt/$DOMAIN > /dev/null 2>&1
if [[ $? -eq 0 ]]; then
echo "Credentials found"

Keybase proof

I hereby claim:

  • I am imcitius on github.
  • I am citius (https://keybase.io/citius) on keybase.
  • I have a public key ASCyS4UwgN-oTHNPPPHdo8wrDhZWprcWdkDrgNGonc88ggo

To claim this, I am signing this object:

@imcitius
imcitius / walg-pitr.md
Created September 3, 2019 20:28 — forked from pohzipohzi/walg-pitr.md
PostgreSQL Point-In-Time-Recovery (PITR) with WAL-G

WAL-G PITR

This gist summarises a way to simulate point-in-time recovery (PITR) using WAL-G. Most of the material is adapted from Creston's tutorial.

Setup

First we initialize a database cluster

pg_ctl init -D cluster
>> curl -v pgsql-main-0.node.cluster-dev.consul:8008/master
* Trying 172.29.10.58...
* TCP_NODELAY set
* Connected to pgsql-main-0.node.cluster-dev.consul (172.29.10.58) port 8008 (#0)
> GET /master HTTP/1.1
> Host: pgsql-main-0.node.cluster-dev.consul:8008
> User-Agent: curl/7.59.0
> Accept: */*
>
* HTTP 1.0, assume close after body