Initial Scripts Run

Signed-off-by: Georg <georg@lysergic.dev>
This commit is contained in:
Georg Pfuetzenreuter 2021-07-21 13:47:29 +02:00
parent 2678e73ff1
commit 16d3474327
7 changed files with 100 additions and 0 deletions

1
scripts/README.md Normal file
View File

@ -0,0 +1 @@
This contains scripts which are generally called manually or through cronjobs. Scripts which serve integrated purposese, i.e. init scripts, are to be found in the respective service directories.

1
scripts/bash/README.md Normal file
View File

@ -0,0 +1 @@
Contains scripts desgined to be executed through the Bourne Again Shell (#!/bin/bash).

View File

@ -0,0 +1,46 @@
#!/bin/bash
PDNSGROUP="pdns"
if id -nG $(id -un) | grep -qw "$PDNSGROUP"; then
if [ $# -eq 0 ] || [ $1 == "help" ] || [ $1 == "h" ] || [ $1 == "-h" ] || [ $1 == "-help" ] || [ $1 == "--help" ]; then
echo "======================================================="
echo "This script will create and secure a new zone in the Lysergic PowerDNS cluster."
echo "Please run it by specifying the desired domain name as an argument."
echo "Syntax: $ bash domain.sh example.com"
echo "Warning: No syntax check will be performed. Make sure you type the domain name exactly right or you'll cause a deep fucking mess."
echo "======================================================="
exit 1
fi
else
echo "You do not belong to the group $PDNSGROUP and hence are not allowed to run this program."
echo "Assign yourself to the group or contact someone who is authorized to do so."
exit 1
fi
DOMAIN=$1
NS1="ns1.3zy.de"
NS2="ns2.3zy.de"
NS3="ns3.3zy.de"
echo "==================================================="
echo "===== CREATING ZONE FOR DOMAIN $DOMAIN ====="
echo "==================================================="
/usr/bin/pdnsutil create-zone $DOMAIN $NS1
#/usr/bin/pdnsutil add-record $DOMAIN . SOA '$NS1 system.lysergic.dev 1 010800 3600 604800 3600'
#/usr/bin/pdnsutil add-record $DOMAIN . NS $NS1
/usr/bin/pdnsutil add-record $DOMAIN . NS $NS2
/usr/bin/pdnsutil add-record $DOMAIN . NS $NS3
echo "==================================================="
echo "================= ENABLING DNSSEC ================="
echo "==================================================="
/usr/bin/pdnsutil secure-zone $DOMAIN
/usr/bin/pdnsutil set-nsec3 $DOMAIN '1 0 1 ab'
/usr/bin/pdnsutil rectify-zone $DOMAIN
echo "==================================================="
/usr/bin/pdnsutil show-zone $DOMAIN
echo "==================================================="
/usr/bin/pdnsutil list-zone $DOMAIN
echo "==================================================="

16
scripts/bash/restic_run Normal file
View File

@ -0,0 +1,16 @@
#!/bin/bash
#/usr/bin/echo Executing Restic S3 Backup for $(hostname -f)
export RESTIC_REPOSITORY="s3:https://$S3HOST/$S3BUCKET"
export RESTIC_PASSWORD_FILE="/etc/restic/.sec"
export AWS_ACCESS_KEY_ID="$S301"
export AWS_SECRET_ACCESS_KEY="$S302"
export RESTIC_CACHE_DIR="/opt/restic/cache"
EXCLUDE=".restic.excludes"
/usr/bin/restic --verbose backup --exclude-file="/etc/$EXCLUDE" /etc
echo "EXIT $?"
/usr/bin/restic --verbose backup --exclude-file="/home/$EXCLUDE" /home
echo "EXIT $?"
/usr/bin/restic --verbose backup --exclude-file="/opt/$EXCLUDE" /opt
echo "EXIT $?"
/usr/bin/restic --verbose backup --exclude-file="/srv/$EXCLUDE" /srv
echo "EXIT $?"

1
scripts/perl/README.md Normal file
View File

@ -0,0 +1 @@
Contains scripts designed to be executed through Perl interpreters (#!/bin/perl).

34
scripts/perl/botproc.pl Normal file
View File

@ -0,0 +1,34 @@
#!/usr/bin/perl
# Work in progress.
# Requires botproc.ini.
use Config::Tiny;
use Net::OpenSSH;
use warnings;
use strict;
#use feature qw(say);
my $config = Config::Tiny->new;
$config = Config::Tiny->read( 'botproc.ini' );
foreach my $section (keys %{$config}) {
my $host = "$section";
my $OS = $config->{$section}->{OS};
#print 'The OS of ', $host, ' is ', $OS, "\n";
my $user = $config->{$section}->{User};
my $keyname = $config->{$section}->{Key};
my $keypath = "/home/georg/.ssh/" . $keyname;
my $port = $config->{$section}->{Port};
print 'Connecting to ', $host, ':', $port, ' as ', $user, ' using key ', $keyname, "\n";
my $ssh = Net::OpenSSH->new($host, user => $user, port => $port, key_path => $keypath);
$ssh->error and
die "FATAL: ", $ssh->error;
$ssh->system("uname -a") or
die "Remote command failed: ", $ssh->error;
my ($df, $err) = $ssh->pipe_out("df -h /") or
die "df query failed: " . $ssh->error;
print "Root Partition:\n";
while (<$df>) { print }
close $df;
}

1
scripts/sh/README.md Normal file
View File

@ -0,0 +1 @@
Contains scripts desgined to be executed through the Bourne Shell or compatible derivates (#!/bin/sh).