Parenting and Observations

So many of my friends are new parents or about to be new parents, here’s some tips just as a general observation from today that just blew my mind-

– When dropping your children off at daycare, if you choose to and you have to drive them, don’t park directly in front of the door in the fire lane because you’re too lazy to walk an extra 20ft from a parking spot. It’s annoying and you’re only teaching your children that the rules don’t apply to you and I do what I want eff anyone else. My kids and I walk the 3/4mi to school if it’s not raining, they love it and surprise surprise they’re not even remotely overweight.

– Stop putting your children in front of screens, it’s bad for them, there’s no if ands or buts about it, it is, stop it/don’t do it. I walk into daycare today, it’s spring break so the school age kids are going to daycare ( Aiden ) and there’s like 6 kids glued to ipads that their parents let them take as `toys`. Aiden has a transformer car… not a freakin’ ipad. They’re 5-6 years old, stop it. Go the heck outside when it’s nice out, I think on average on the weekend my children get maybe MAYBE 2 hours of TV time, and guess what, they don’t bitch if they ask to watch TV and I say “no”, they accept it and move one because it’s not the norm. It’s OK to say “no” to your children, I wonder how many parents these days are unable to grasp that concept.

– Parenting is hard work, if you’re not up for the task, don’t be a parent. But at the very least, don’t be a selfish asshole if you are a parent and it wasn’t really planned. Understand that YOUR actions affect THEIR future and how productive of a member of society they become when they are grown. Neither of my kids were, “Okay lets have a kid!” they happened, they’re gifts, it’s hard work but then there’s the times that it’s just straight up awesome and, it’s okay to act THEIR age with them and play imagination. I don’t care who you are, playing star wars with a 5 year old is the shit.

End rant.

Dovecot 2.0.X for CentOS 6 with SSLv3 Disabled [ POODLE ]

Dovecot 2.0.X which ships with CentOS 6 does not have a flag to disable SSLv3 [ which is now broken by POODLE ]. Attached below are recompiled versions with SSLv3 disabled along with the SRC RPM.

dovecot-2.0.9-8.el6.x86_64.rpm
dovecot-devel-2.0.9-8.el6.x86_64.rpm
dovecot-mysql-2.0.9-8.el6.x86_64.rpm
dovecot-pgsql-2.0.9-8.el6.x86_64.rpm
dovecot-pigeonhole-2.0.9-8.el6.x86_64.rpm
dovecot-2.0.9-8.el6.src.rpm

Gluster 3.4.X is a turd

If you’re on 3.3 or older, skip 3.4.X or upgrade through it, it is full of memory leaks and bugs, 3.5.1+ is _considerably_ more stable. 3.4.4-1 has a massive memory leak that will eventually consume all available memory and crash. Avoid at all costs.

NEC-i SV8100 PBX another SIP / Asterisk Integration quirk

I’ve posted a few of these just for mental storage as well as making a public point that should be easily searched for when you’re racking your brain on why something doesn’t interoperate properly.

Here’s the latest;

NEC’s 8000 series PBXs that “support” SIP will fail to respond to Asterisk SIP/200 OKs after they place a INVITE if the asterisk UserAgent string contains at least parenthesis or dashes.

E.g:

sip.conf / [general]

useragent=asterisk-(11.7.0)

Will cause the NEC to fail to respond correctly to SIP/200

instead use something like:

useragent=11.7.0

Zoneminder – CentOS 6 – Binary / SRPM

There seems to be a void of FFMPEG/libav enabled normal RPMs for CentOS 6 and I got sick of installing DVRs from source, there are plenty for Fedora but Fedora is not a server/enterprise OS. I’ve updated/rebuilt a combination of some existing SPEC files for other distributions to work for CentOS, enjoy.

zoneminder-1.25.0-11.el6.x86_64.rpm
zoneminder-1.25.0-11.el6.src.rpm

LVM Add, Extend and Resize the FS (ext4) all online

Lets say we have a volume group called vg_hostname, in that volume group there are 3 logical volumes:

[root@hostname ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
lv_home vg_hostname -wi-ao-- 60.00g
lv_root vg_hostname -wi-ao-- 50.00g
lv_swap vg_hostname -wi-ao-- 1.97g

lv_home is mounted as /home, is 60GB and, is full. We need to add more space to it but what if the volume group is full?

[root@hostname ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_mail2 2 3 0 wz--n- 120.00g 0

Luckily LVM allows us to add another physical volume to the volume group to get the space we need. So lets add a new 80GB disk, lets assume that this is /dev/vdb

First, we need to partition the device and set the partition as type LVM:
[root@hostname ~]# fdisk /dev/vdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x496ca2c7.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): p

Disk /dev/vdb: 85.9 GB, 85899345920 bytes
16 heads, 63 sectors/track, 166440 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x496ca2c7

Device Boot Start End Blocks Id System

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-166440, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-166440, default 166440):
Using default value 166440

Command (m for help): p

Disk /dev/vdb: 85.9 GB, 85899345920 bytes
16 heads, 63 sectors/track, 166440 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x496ca2c7

Device Boot Start End Blocks Id System
/dev/vdb1 1 166440 83885728+ 83 Linux

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx 5 Extended 42 SFS 86 NTFS volume set da Non-FS data 6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt 9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary 16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT 1e Hidden W95 FAT1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): p Disk /dev/vdb: 85.9 GB, 85899345920 bytes 16 heads, 63 sectors/track, 166440 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x496ca2c7 Device Boot Start End Blocks Id System /dev/vdb1 1 166440 83885728+ 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.

Now we have a LVM partition as /dev/vdb1, next turn it into a usable physical volume:

[root@hostname ~]# pvcreate /dev/vdb1
Writing physical volume data to disk "/dev/vdb1"
Physical volume "/dev/vdb1" successfully created

Adding the new physical volume to our vg_hostname volume group is quite easy:
[root@hostname ~]# vgextend vg_mail2 /dev/vdb1

Now we have an extra 80GB available in our volume group!
[root@hostname ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_mail2 2 3 0 wz--n- 199.50g 80.00g

Next we need to extend our vg_home logical volume to get that 80GB usable for that "partition" and since we want to use all available space we set the `-l +100%FREE1 flag/value to expand the logical volume to all available free space:

[root@hostname ~]# lvextend -l +100%FREE /dev/vg_hostname/lv_home
Extending logical volume lv_home to 147.54 GiB
Logical volume lv_home successfully resized

Now our underlying device is 147.54GiB but our file system (ext4) is still the original 60GB, using resize2fs we can extend that ext4 filesystem to consume the new space:

[root@hostname ~]# resize2fs /dev/vg_hostname/lv_home
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg_hostname/lv_home to 38675456 (4k) blocks.
The filesystem on /dev/vg_hostname/lv_home is now 38675456 blocks long.

And now, we've added 80GB to our /home mount without taking the system or mount point offline.