Für den Einstieg in Zeitrafferaufnahmen mit dem Raspberry Pi, habe ich mit Hilfe von dialog und bash ein nettes „graphisches“ Tool geschrieben, mit dem man Langzeitbeobachtungen einfach konfigurieren und abschließen zu einem Video rendern kann.
Um auf dem Raspberry nicht so viel tippen zu müssen habe ich eine schnell Installations-Skript geschrieben:
wget -O - istoph.de/observe|sudo bash
Hierbei wird mein Repository inklusive Key installiert anschließend das Paket observe aus meinen Quellen. Nach der Installation kann man das Programm observe über die Kommentarzeilen aufrufen.
[Update 30.08.15]
Der Sourcecode steht jetzt auch auf github: github.com/istoph/observe
Veröffentlicht am: 01.06.2015 von: CHR | publiziert in: bash, raspberry pi
Bei Zabbix ist standardmäßig dabei, dass Checksumme von der /etc/passwd erstellt werden.
Da mir dies aber nicht reicht, habe ich ein Check geschrieben, der auch die
~/.ssh/authorized_keys
prüft. Hier braucht man lediglich mittels
apt-get install zabbix-check-sshkey
das Paket zu installieren, das sich in meinem repository befindet. Das Zabbix Template wird direkt mitgeliefert und befindet sich dann in
/usr/share/doc/zabbix-check-sshkey/zabbix_check_sshkey_template.xml
und muss auf dem Zabbix Server importiert werden.
Veröffentlicht am: 20.05.2015 von: CHR | Tags: zabbix | publiziert in: Netzwerk
Für die Migration der Root Partition in ein LVM System musste ich zunächst erst mal lvm2 installieren. Dann habe ich die Partitionen angepasst.
apt-get install lvm2
fdisk /dev/sdb
Sodass meine Partition wie folgt aussieht:
Gerät boot. Anfang Ende Blöcke Id System
/dev/sdb1 2048 102658935 51328444 8e Linux LVM
Dann habe ich das LVM eingerichtet, das LV für das System angelegt und ext4 formatiert:
pvcreate /dev/sdb1
vgcreate vg /dev/sdb1
lvcreate -L system -n 40G vg
mkfs.ext4 /dev/mapper/vg-system
Anschließend konnte ich das LV mounten und mittels Rsync alle Daten kopieren. Mittels der rsync
Option „x“ konnte ich /mnt
und alle weiteren Filesysteme auschließen.
mount /dev/mapper/vg-system /mnt
rsync -ravPzx / /mnt/
Dann habe ich die fstab angepasst, indem ich mit blkid
die neue UUID herausgesucht habe.
blkid
/dev/mapper/vg-system: UUID="ec17cda6-5809-47f1-8a62-f8c47c7103be" TYPE="ext4"
...
vim /mnt/etc/fstab
UUID=ec17cda6-5809-47f1-8a62-f8c47c7103be / ext4 errors=remount-ro 0 1
Dann habe ich mir noch eine chroot
gebastelt.
mount --bind /boot /mnt/boot
mount --rbind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount -t proc none /mnt/proc
chroot /mnt
Und darin die initramfs und grub neu gebaut.
update-initramfs -u
update-grub
Dann habe ich die chroot
wieder verlassen und zur Sicherheit noch einmal MySQL gestoppt und nur dies noch mal synchronisiert.
/etc/init.d/mysql stop
rsync -avP /var/lib/mysql/ /mnt/var/lib/mysql
reboot
Nach dem abschließenden Reboot ist das System auf der neuen Festplatte wieder hochgekommen.
Veröffentlicht am: 25.04.2015 von: CHR | publiziert in: public, Ubuntu
Um mitzubekommen welche Kable bzw. welche Portds am cisco Switch aktiviert werden leiten wir die Evends an einen Remote Server weiter.
An diesen haben wir lediglich in der /etc/rsyslog.conf
das udp Modul aktiviert.
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
In der firewall den Port 514 geöffnet und den Dinst neugestartet.
/etc/init.d/rsyslog restart
Auf dem cisco switch habe ich dann den Server angegeben an den die Login daten gesendet werden sollen.
c6506(config)#logging 10.0.0.2
Und die Interfaces mitgeteilt das auf diesen mitgeloogt werden soll.
c6506(config-if-range)#interface range Gi1/1-48
c6506(config-if-range)#logging event link-status
In /var/log/syslog sieht das dann so aus:
%LINK-3-UPDOWN: Interface GigabitEthernet1/48, changed state to down
%LINEPROTO-SP-5-UPDOWN: Line protocol on Interface GigabitEthernet1/48, changed state to down
Veröffentlicht am: 17.04.2015 von: CHR | publiziert in: CISCO, Debian, Security
Da es mir nicht möglich war, mit den in Debian Wheezy oder Ubuntu Trusty enthaltenen gitolite Paketen den gitserver so anzupassen, dass man hooks ausführen kann, habe ich die Methode gewählt wie sie auf der Gitolite Webseite beschreiben ist.
Client:
Zunächst benötigt man einen Key für den Administrator.
ssh-keygen -b 4096
scp .ssh/id_rsa.pub server:/tmp/chr.pub
Server:
Dann beginnt man auf dem Server die eigentliche Installation.
apt-get install git
adduser git --disabled-password
su - git
cd /home/git
mkdir bin
git clone git://github.com/sitaramc/gitolite
gitolite/install -ln ~/bin
gitolite setup -pk /tmp/chr.pub
Dann müssen noch zwei Konfigurationseinstellungen vorgenommen werden.
vim .gitolite.rc
GIT_CONFIG_KEYS => '.*',
LOCAL_CODE => "$ENV{HOME}/.gitolite/local-code/",
Client:
Die restliche Konfiguration kann dann vom Administrator Konto aus erledigt werden.
apt-get install git
git clone git@server:gitolite-admin
cd gitolite-admin
mkdir -p /local-code/hooks/common/hooks.d/
cat > local-code/hooks/common/hooks.d/runhook.sh <<\EOF
#!/bin/bash
echo "TEST" > /tmp/runhook.log
EOF
chmod -v +x local-code/hooks/common/hooks.d/runhook.sh
cat > local-code/hooks/common/post-receive <<\EOF
#!/bin/bash
run_hook () {
echo -en "\e[1;33m$4..\e[00m "
echo $1 $2 $3 | $GIT_DIR/hooks/hooks.d/$4
}
echo -en "\e[1;33mRunning hooks..\e[00m "
while read oldrev newrev refname; do
if [ "$refname" = "refs/heads/master" ]; then
hooks=$(git cat-file blob $newrev:.hooks 2>/dev/null)
if [ -n "$hooks" ]; then
# Repo-local hooks defined in .hooks.
for hook in $hooks; do
run_hook $oldrev $newrev $refname $hook
done
fi
# Global hooks for this repo (ie. set in Gitolite config).
hooks=$(git config --get hooks.run)
[ -z "$hooks" ] && continue
for hook in $hooks; do
run_hook $oldrev $newrev $refname $hook
done
fi
done
echo -e "\e[1;32mDone.\e[00m"
EOF
chmod -v +x local-code/hooks/common/post-receive
Zum Testen habe ich hier ein einfaches Gitrepository mit dem hook Script eingerichtet.
vim conf/gitolite.conf
repo hooktest
RW+ = chr
config hooks.run = runhook.sh
Dieses muss man einchecken.
git add local-code conf/gitolite.conf
git commit -m "add new repo hooktest, add runhoock.sh"
git push
cd ..
Um entsprechend dies einmal zum Testen zu nutzen.
git clone git@server:hooktest
cd hooktest
echo "TEST1" > test
git add test
git commit -m "add test: TEST1"
git push
Quelle:gist.github.com
Veröffentlicht am: 31.03.2015 von: CHR | Tags: git | publiziert in: Linux, public