Kategori Ubuntu

Paketquelle anzeigen

Sonntag, Januar 22nd, 2012

Da ich gerade mal wieder eine Viertelstunde damit vertan habe, diesen Befehl zu finden, dokumentiere ich ihn hier.

Ich suchte den Befehl, mit dem ich sehen kann, aus welcher Paktequelle ein Programm kommt. Dies bauchte ich um heraus zu finden ob das Paket ggf. aus einer PPA kommt.

apt-cache policy qemu
qemu:
  Installiert: (keine)
  Kandidat: 0.12.3+noroms-0ubuntu9.16
  Versions-Tabelle:
     0.12.3+noroms-0ubuntu9.16 0
        500 http://mirror.bauhuette.fh-aachen.de/ubuntu/ lucid-updates/universe Packages
     0.12.3+noroms-0ubuntu9.15 0
        500 http://mirror.bauhuette.fh-aachen.de/ubuntu/ lucid-security/universe Packages
     0.12.3+noroms-0ubuntu9 0
        500 http://mirror.bauhuette.fh-aachen.de/ubuntu/ lucid/universe Packages

Tinc und GIT

Sonntag, Januar 1st, 2012

Tinc ist im Gegensatz zu OpenVPN eine mesh vpn. Damit dies funktioniert müssen aber auf jedem Server die öffentlichen Schüssel/Konfigurationsdateien bekannt sein. Um diese Schlüssel zu verteilen verwende ich GIT.

Hier ein Aufbau zwischen zwei Servern (SRV01/SRV02). Jeweils habe den Ordner /opt/git/ erstellt und das Git ausgeschekt. Den VPN Ordner habe ich dann mittels eines Symlinks in das /etc/tinc Verzeichnis gelinkt.
ln -s /opt/git/vpn.tinc/vpn /etc/tinc/vpn

Folgende Daten und Ordner befinden sich in meinem Git. Mittels der .d Verzeichnisse werden die einzelne Dateien auf den Servern gelinkt (siehe unten).
/etc/tinc/vpn/
hosts
hosts/srv01
hosts/srv02
tinc.conf.d
tinc.conf.d/srv01.conf
tinc.conf.d/srv02.conf
up.d
up.d/srv01-up
up.d/srv02-up
down.d
down.d/down

Die Dateien im einzelnen.
— SRV01 —
hosts/srv01:

Name = srv01
Address = srv01.chr.istoph.de
Cipher = aes-256-cbc
Digest = sha1
IndirectData = yes
Subnet = 10.8.0.1/32
Subnet = 192.168.0.1/24

Wichtig: bei Subnet muss einmal die Lokale Adresse auf die gelauscht werden soll mit /32 angegeben werden. Das zweite Subnet ist nur beispielhaft für weiteres netz das sich hinter SRV01 befindet.

tinc.conf.d/srv01.conf:

Name = srv01
AddressFamily = ipv4
BindToInterface = eth0
ConnectTo = srv02
Device = /dev/net/tun
Mode = router
KeyExpire = 3600
PrivateKeyFile = /etc/tinc/vpn/rsa_key.priv

up.d/srv01-up:

#!/bin/bash
ip addr add 10.8.0.1/24 dev vpn
ip link set vpn up

down.d/down:

#!/bin/bash

Auf SRV01 müssen dann natürlich nur folgende Symlinks erstellt werden.
ln -s tinc.conf.d/srv01.conf tinc.conf
ln -s up.d/srv01-up tinc-up
ln -s down.d/down tinc-down

— SRV02 —
hosts/srv02:

Name = srv02
Address = srv02.chr.istoph.de
Cipher = aes-256-cbc
Digest = sha1
IndirectData = yes
Subnet = 10.8.0.2/32

tinc.conf.d/srv02.conf:

Name = srv02
AddressFamily = ipv4
BindToInterface = eth0
ConnectTo = srv01
Device = /dev/net/tun
Mode = router
KeyExpire = 3600
PrivateKeyFile = /etc/tinc/vpn/rsa_key.priv

up.d/srv02-up:

#!/bin/bash
ip addr add 10.8.0.2/24 dev $INTERFACE
ip link set $INTERFACE up

ln -s tinc.conf.d/srv02.conf tinc.conf
ln -s up.d/srv02-up tinc-up
ln -s down.d/down tinc-down

— END —

Nach dem die Dateien angelegt sind können auf dem jeweiligen Server (SRV01 / SEV02), die Keys erstellt werden.
tincd --generate-keys=4096 -n vpn

Dies Legt den Privaten schlüssel rsa_key.priv an und legt den Öffentlichen Schlüssel in die host/srv01 Datei.

Vor dem Starten von Tinc müssen die up/down Scripte noch Ausführungsrechte auf den Jeweiligen Servern bekommen.
chmod +x up.d/srv*
chmod +x down.d/down

Nun können wir alles im GIT einchecken. Nicht vergessen nach dem einchecken von SRV01 auf SRV02 zu pullen und erst dann die Dateien anzulegen um sie zu puschen.
git add hosts/srv01 tinc.conf.d/srv01.conf up.d/srv01-up down.d/down
git commit -m "tinc: add srv01"
git puch

Wichtig hierbei ist den Privaten Schlüssel rsa_key.priv nicht einzucken. Auch aus Backup gründen macht dies keinen Sinn da dieser immer wieder neu erstellt werden kann.

Bei Ubuntu 14.04 Systemen muss in der Datei /etc/tinc/nets.boot der Name des zu startenden Netzwerkes eingetragen werden. In unserem Fall VPN.
## This file contains all names of the networks to be started on system startup.
vpn

Ab Ubuntu 16.04. können die einen Tinc Netzte via Systemd angesprochen werden. In Unserem Fall damit es bei Boote gestartet wird:
systemctl enable tinc@vpn
Und folgendes zum Starten und Status anzeigen:
systemctl start tinc@vpn
systemctl status tinc@vpn

AWS Amazon Web Service EC2 Scripten

Dienstag, Dezember 20th, 2011

Für einen Lasttest habe ich etliche AWS Micro Instanzen mit Ubuntu 10.4 benötigt, die alle vorkonfiguriert werden mussten. Da man aber nicht Tausend Instanzen von Hand Einrichten und Konfigurieren will musste mal wieder ein Script her.

Als erstes braucht man die ec2-api-tools
sudo apt-get install ec2-api-tools

Dann habe ich ein Start Script Namens run-file.sh geschrieben, das z.b. so aussieht:
#!/bin/bash

apt-get update
apt-get install -y apache2-utils
ab http://blog.chr.istoph.de/

Dann habe ich die Instanzen mittels eine for Schleife gestartet.
for i in {1..1000}; do
ec2-run-instances ami-e52ce68c --instance-type t1.micro --region us-east-1 --key ca -K pk-xxx.pem -C cert-xxx.pem -user-data-file run-file.sh
done

Das starten der Instanzen sollte nicht mittels & in den Hintergrund geschoben werden, da das Programm ec2-run-instances ein sehr Speicherfressendes Java Programm ist.

Nachdem man jetzt die 1000 Instanzen eine Weile laufen gelassen hat muss man diese auch wieder beenden. Dazu kann man sich folgendermaßen alle Instanzen anzeigen:
ec2-describe-instances -K pk-xxx.pem -C cert-xxx.pem

Dem endsprechen kann man auch ALLE existierende Instanzen gelöscht werden:
ec2-terminate-instances -K pk-xxx.pem -C cert-xxx.pem $(ec2-describe-instances -K pk-xxx.pem -C cert-xxx.pem | grep INSTANCE | awk '{print $2}')

Quelle: help.ubuntu.com
uec-images.ubuntu.com

swap reconfigure

Montag, Oktober 17th, 2011

blkid
/dev/sda5: UUID="000000000000-0000-0000-0000-000000000000" TYPE="swap"

Wenn blkid keine SWAP Partition anzeigt muss dieser erst erzeugt werden. Welches der richtige Pfad ist findet man über fstab -l heraus.
mkswap /dev/sda5

Anschließend den alten SWAP Pfad aus der /etc/fstab entfernen und den neuen hinzufügen:
grep -v swap /etc/fstab > /etc/.fstab
blkid | grep swap | awk '{ print $2 " none swap sw 0 0"}' >> /etc/.fstab
mv /etc/.fstab /etc/fstab
swapon -a

AMD Fusion

Donnerstag, Oktober 13th, 2011

Ich habe da mal ein AMD Fusion Bord in die Hände bekommen. Soweit lief unter Ubuntu 10.04.3 LTS auch alles auf an hip, bis auf die Graphikbeschleunigung. Dafür habe ich den Proprietären AMD Treiber verwendet und tadellos zum laufen bekommen.

Was allerdings sehr enttäuscht sind die I/O perforans werte. Wie hier im Test aufgeführt liegt der Durchsatz bei nur 53MB, knapp die hälfte von 110MB was die Platte eigentlich kann.

# time $(dd if=/dev/zero of=/root/test.img bs=512 count=2048000 conv=sync)
2048000+0 records in
2048000+0 records out
1048576000 bytes (1.0 GB) copied, 19.6919 s, 53.2 MB/s

real	0m19.712s
user	0m0.760s
sys	0m10.730s
# lspci
00:00.0 Host bridge: Advanced Micro Devices [AMD] Device 1510
00:01.0 VGA compatible controller: ATI Technologies Inc Device 9802
00:01.1 Audio device: ATI Technologies Inc Device 1314
00:04.0 PCI bridge: Advanced Micro Devices [AMD] Device 1512
00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode] (rev 40)
00:12.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:12.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
00:13.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:13.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 42)
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA) (rev 40)
00:14.3 ISA bridge: ATI Technologies Inc SB700/SB800 LPC host controller (rev 40)
00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40)
00:14.5 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI2 Controller
00:15.0 PCI bridge: ATI Technologies Inc Device 43a0
00:15.1 PCI bridge: ATI Technologies Inc Device 43a1
00:16.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:16.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
00:18.0 Host bridge: Advanced Micro Devices [AMD] Device 1700 (rev 43)
00:18.1 Host bridge: Advanced Micro Devices [AMD] Device 1701
00:18.2 Host bridge: Advanced Micro Devices [AMD] Device 1702
00:18.3 Host bridge: Advanced Micro Devices [AMD] Device 1703
00:18.4 Host bridge: Advanced Micro Devices [AMD] Device 1704
00:18.5 Host bridge: Advanced Micro Devices [AMD] Device 1718
00:18.6 Host bridge: Advanced Micro Devices [AMD] Device 1716
00:18.7 Host bridge: Advanced Micro Devices [AMD] Device 1719
03:00.0 Ethernet controller: Marvell Technology Group Ltd. Device 4380 (rev 10)
04:00.0 USB Controller: NEC Corporation Device 0194 (rev 03)
# cat /proc/cpuinfo 
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 20
model		: 1
model name	: AMD E-350 Processor
stepping	: 0
cpu MHz		: 1600.000
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 6
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc nonstop_tsc extd_apicid pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch ibs skinit wdt arat
bogomips	: 3200.50
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

processor	: 1
vendor_id	: AuthenticAMD
...