<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>A self confessed geek, that due to unpreventable circumstances is going blind. You will see a mixture of really geeky posts along with some tip n tricks I have found that make my lify as a partial sighted computer user more productive.
I believe knowledge is power and we should share it!</description><title>Techy Findings</title><generator>Tumblr (3.0; @sip2serve)</generator><link>http://blog.sip2serve.com/</link><item><title>Ubuntu 10.04 LTS - FreeSwitch Install from source</title><description>&lt;p&gt;Ok here is what I did to install FreeSwitch on Ubuntu 10.04 LTS&lt;/p&gt;
&lt;p&gt;Lets get into super-user mode, this can be done by issuing the command&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;sudo su&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After you have entered the password then do the obligatory:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;apt-get update&lt;/p&gt;
&lt;p&gt;apt-get upgrade&lt;/p&gt;
&lt;p&gt;apt-get dist-upgrade&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;packages install YMMV&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;apt-get install php5 php5-xcache php5-xmlrpc php5-mysql php5-gd php5-cli build-essential git-core autoconf libgdbm-dev libdb-dev subversion php5-curl automake libtool libncurses5 libncurses5-dev php-db mysql-server-5.1 mysql-client-5.1 libtiff4-dev&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Next let’s download the latest daily FreeSwitch and compile it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;cd /usr/src/&lt;/p&gt;
&lt;p&gt;git clone git://git.freeswitch.org/freeswitch.git&lt;/p&gt;
&lt;p&gt;cd freeswitch&lt;/p&gt;
&lt;p&gt;./bootstrap.sh&lt;/p&gt;
&lt;p&gt;./configure&lt;/p&gt;
&lt;p&gt;make&lt;/p&gt;
&lt;p&gt;make install&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Assuming all the above went well the last stage of the FreeSwitch installation is the sounds:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;make sounds-install moh-install&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That’s Free Switch installion complete!&lt;/p&gt;
&lt;p&gt;You can if you feel so inclined, install the High definition sounds with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;make uhd-sounds-install uhd-moh-install hd-sounds-install hd-moh-install&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;start the Service using&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;/usr/local/freeswitch/bin/freeswitch -nc&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You should be able to point a SIP device at your ubuntu box IP address, using extension 1000 and a secret/password of 1234 try calling 5000 to test.&lt;/p&gt;
&lt;p&gt;An excellent walkthrough was found here after writing this post:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wiki.2600hz.org/display/bluebox/Install+blue.box+on+Ubuntu"&gt;&lt;a href="http://wiki.2600hz.org/display/bluebox/Install+blue.box+on+Ubuntu"&gt;http://wiki.2600hz.org/display/bluebox/Install+blue.box+on+Ubuntu&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.sip2serve.com/post/17199050560</link><guid>http://blog.sip2serve.com/post/17199050560</guid><pubDate>Tue, 07 Feb 2012 18:50:00 +1300</pubDate><category>LTS</category><category>freeswitch</category><category>linux</category><category>pbx</category><category>ubuntu</category><category>voip</category><category>bluebox</category></item><item><title>Virtual ubuntu Reminder</title><description>&lt;p&gt;As an aide de memoire, on the initial install screen press F4 and select Minimal Install.&lt;/p&gt;
&lt;p&gt;After booting in and performing the normal apt-get update.&lt;/p&gt;
&lt;p&gt;install the package that adds in the missing utilities such as nano.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;apt-get install -y  ubuntu-standard&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;add sudo as a prefix if you are not the root user.&lt;/p&gt;</description><link>http://blog.sip2serve.com/post/17198273407</link><guid>http://blog.sip2serve.com/post/17198273407</guid><pubDate>Tue, 07 Feb 2012 18:30:00 +1300</pubDate><category>ubuntu</category><category>install</category><category>tips</category></item><item><title>Desktop Replacement Project</title><description>&lt;p&gt;Due to an untimely wipe of my partition table information from my 1TB hard drive on my desktop. I find myself once again questioning the OS I use on my desktop, my archiving capabilities, and the portability of my setup.&lt;/p&gt;
&lt;p&gt;With all this in mind I have set down some concepts below; It will certainly be interesting to see if I keep to them, which fall by the wayside, when and why?&lt;/p&gt;
&lt;p&gt;I am looking to run my desktop PC which is powerful; AMD 6 core CPU and 16GB of RAM as multiple machines.&lt;/p&gt;
&lt;p&gt;This is not something new exactly, as I have been running multiple virtual machines on my desktop for years (that is why I have 16 Gig of RAM) the subtle difference is my desktop will comprise of multiple machines.&lt;/p&gt;
&lt;p&gt;Goal is to remove and thin down the Host as much as possible.&lt;/p&gt;
&lt;p&gt;Portable Apps should be used where possible and synced to network drive and be available for all windows desktops for use.&lt;/p&gt;
&lt;p&gt;An attempt will be made to keep the disk drive image size down to below 64GB (e.g 63GB) , as these size flash drives are becoming cost effective it would be useful to be able to take any desktop environment with me.&lt;/p&gt;
&lt;p&gt;I will be making an effort to try and use ubuntu when both OS provide the same application. I will see how this goes with MS Office as I cannot have files corrupted for work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A word about the Host PC and the Guests: &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I will have a slimmed down Host running win7 X64. it should take care of the following.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Adaptive tools which are graphic or hardware restrictive such as Zoom Text and Outbook (to cope with my visual impairment). &lt;/li&gt;
&lt;li&gt;Graphic intensive applications (do I use any?) &lt;/li&gt;
&lt;li&gt;VMWare workstation &lt;/li&gt;
&lt;li&gt;Drivers for the hardware &lt;/li&gt;
&lt;li&gt;Obscure applications that will not function in a VM Guest, these should be listed so a check can be made to see if ways around the issue is available later. &lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;The DRP VM Guests initially identified:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ubuntu x64 Desktop &lt;/li&gt;
&lt;li&gt;Win 7 x64 Desktop (Browsing, Work etc) &lt;/li&gt;
&lt;li&gt;Win 7 x64 Desktop Programming &lt;/li&gt;
&lt;li&gt;BMT (portable “Blind Man Tools” guest synced to flash drive) &lt;/li&gt;
&lt;li&gt;Other Specialist desktops as required &lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The first question that hits me is “Should each machine have its own network identity?” or “Should i use a VMWare bridge network adaptor or NAT?”.&lt;/p&gt;
&lt;p&gt;I think the initial answer is I can see more issues with using a single identity, so they will all have separate ones; leading on from that decision it would make sense that a virtual machine can be seen at the network level as a separate entitiy so they will all have bridged interfaces.   Ok,&lt;/p&gt;
&lt;p&gt;I think its time to start…. I will let you know how it goes!&lt;/p&gt;</description><link>http://blog.sip2serve.com/post/15591844354</link><guid>http://blog.sip2serve.com/post/15591844354</guid><pubDate>Tue, 10 Jan 2012 13:32:00 +1300</pubDate><category>ubuntu</category><category>win7</category><category>win</category><category>windows</category><category>virtual</category><category>virtualisation</category><category>vmware</category></item><item><title>Getting to grips with SNMP on Ubuntu</title><description>&lt;p&gt;This post has an install script towards the bottom which will install SNMP Daemon and its required configuration for you. That feat is the result of many hours of work. The BASH scripting only took an hour or two to knock together, the main effort was getting SNMP working with no errors with both IPv4 and IPv6 support; MIB support and SNMP Traps sent for notification of events.&lt;/p&gt;

&lt;p&gt;I have tested the script using ubuntu 11.04 and more recently with revision 1.1 of the scrpt I have tested with ubuntu 8.04.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; &lt;em&gt;With NET-SNMP version 5.4.1 on ubuntu 8.0.4 I did notice that the only way to remove the error “getaddrinfo:  Name or service not known” on startup was to remove the IPv6 parameters from the listening address, IPv6 lookups do work on 8.0.4 but you do have to live with some early immature code issues.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I suggest you copy the script below and paste into a file on your ubuntu  system and make sure you &lt;em&gt;chmod&lt;/em&gt; the file to make it executable from root;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;chmod 755 &lt;script-name&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;should do it.&lt;/p&gt;

&lt;p&gt;If you have a number of machines to install SNMP on, I suggest you change the defaults towards the top of the script to match your network and environment requirements this will make for a simpler and faster install.&lt;/p&gt;


&lt;blockquote&gt;
&lt;p&gt;#!/bin/bash&lt;br/&gt;#&lt;br/&gt;# SNMP install&lt;br/&gt;#by Paul Miller&lt;br/&gt;#Revisions:&lt;br/&gt;#1.0 - Initial&lt;br/&gt;#1.1 - corrections after testing with ubuntu 8.04 LTS&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;#CHANGE DEFAULT script variables here before running&lt;br/&gt;&lt;br/&gt;def_READ_ONLY_SECRET=”public”&lt;br/&gt;def_READ_WRITE_SECRET=”private”&lt;br/&gt;def_IPv4_SUBNET=”192.168.0.0/24”&lt;br/&gt;def_IPv6_SUBNET=”2001:470:812c::/64” &lt;br/&gt;def_SYS_LOC=”New Zealand”&lt;br/&gt;def_SYS_CONT_NAME=”Paul Miller”&lt;br/&gt;def_SYS_CONT_EMAIL=”idkpmiller@sip2serve.com”&lt;br/&gt;def_TRAP_COMMUNITY=”idknet”&lt;br/&gt;def_TRAP_RECEIVER=”nms.sip2serve.com” # IP or FQDN of a SNMP TRAP recievering &lt;br/&gt;server&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;#====END of User Varables==================&lt;br/&gt;&lt;br/&gt;#check current user is root&lt;br/&gt;(( `id -u` )) &amp;&amp; echo “Must be ran as root, try prefixxing with sudo.” &amp;&amp; exit 1&lt;br/&gt;&lt;br/&gt;#clear the screen&lt;br/&gt;clear&lt;br/&gt;&lt;br/&gt;# Get Input from User&lt;br/&gt;echo “Capture User Options:”&lt;br/&gt;echo “=====================”&lt;br/&gt;echo “Please answer the following questions.”&lt;br/&gt;echo “Hitting return will continue with the default option”&lt;br/&gt;echo&lt;br/&gt;echo&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;read -p “System Location [$def_SYS_LOC]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]; then def_SYS_LOC=”$t1”;fi&lt;br/&gt;&lt;br/&gt;read -p “System Contact Name [$def_SYS_CONT_NAME]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]; then def_SYS_CONT_NAME=”$t1”;fi&lt;br/&gt;&lt;br/&gt;read -p “System Contact Email [$def_SYS_CONT_EMAIL]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]; then def_SYS_CONT_EMAIL=”$t1”;fi&lt;br/&gt;&lt;br/&gt;read -p “Trap Community String [$def_TRAP_COMMUNITY]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]; then def_TRAP_COMMUNITY=”$t1”;fi&lt;br/&gt;&lt;br/&gt;read -p “NMS or Trap Reciever Address (IP or FQDN) [$def_TRAP_RECEIVER]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]; then def_TRAP_RECEIVER=”$t1”;fi&lt;br/&gt;&lt;br/&gt;read -p “IPv4 subnets that can access SNMP on System [$def_IPv4_SUBNET]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]; then def_IPv4_SUBNET=”$t1”;fi&lt;br/&gt;&lt;br/&gt;read -p “IPv6 subnets that can access SNMP on System [$def_IPv6_SUBNET]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]; then def_IPv6_SUBNET=”$t1”;fi&lt;br/&gt;&lt;br/&gt;read -p “Read Only Community String [$def_READ_ONLY_SECRET]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]; then def_READ_ONLY_SECRET=”$t1”;fi&lt;br/&gt;&lt;br/&gt;read -p “Read Write Community String [$def_READ_WRITE_SECRET]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]; then def_READ_WRITE_SECRET=”$t1”;fi&lt;br/&gt;&lt;br/&gt;cat «EOF&lt;br/&gt;=====================&lt;br/&gt;The Answers provided:&lt;br/&gt;=====================&lt;br/&gt;System Location:       $def_SYS_LOC&lt;br/&gt;System Contact:        $def_SYS_CONT_NAME&lt;br/&gt;System Contact Email:  $def_SYS_CONT_EMAIL&lt;br/&gt;RO Community String:   $def_READ_ONLY_SECRET&lt;br/&gt;RW Community String    $def_READ_WRITE_SECRET&lt;br/&gt;Trap Community String: $def_TRAP_COMMUNITY&lt;br/&gt;Trap Reciever Address: $def_TRAP_RECEIVER&lt;br/&gt;IPv4 Subnet ACL:       $def_IPv4_SUBNET&lt;br/&gt;IPv6 Subnet ACL:       $def_IPv6_SUBNET&lt;br/&gt;&lt;br/&gt;EOF&lt;br/&gt;&lt;br/&gt;read -p “Press Y to continue with Install.” -n 1&lt;br/&gt;if [[ ! $REPLY =~ ^[Yy]$ ]]&lt;br/&gt;then&lt;br/&gt;    echo “”&lt;br/&gt;    echo “Goodbye!”&lt;br/&gt;    exit 1&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# update system&lt;br/&gt;echo “”&lt;br/&gt;echo “###############################################”&lt;br/&gt;echo “update system”&lt;br/&gt;apt-get -qq update &lt;br/&gt;&lt;br/&gt;# install requirements&lt;br/&gt;echo “install requirements”&lt;br/&gt;apt-get -y -qq install snmp&lt;br/&gt;apt-get -y -qq install snmp-mibs-downloader&lt;br/&gt;apt-get -y -qq install snmpd&lt;br/&gt;apt-get -y -qq install libsnmp-base&lt;br/&gt;&lt;br/&gt;# Configure SNMP&lt;br/&gt;echo “Configure SNMP”&lt;br/&gt;echo “###############”&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;cat «EOF &gt; /etc/snmp/snmp.conf&lt;br/&gt;#&lt;br/&gt;# As the snmp packages come without MIB files due to license reasons, loading&lt;br/&gt;# of MIBs is disabled by default. If you added the MIBs you can reenable&lt;br/&gt;# loaging them by commenting out the following line.&lt;br/&gt;#mibs :&lt;br/&gt;EOF&lt;br/&gt;&lt;br/&gt;echo “/etc/snmp/snmp.conf  - DONE.”&lt;br/&gt;#==========================================&lt;br/&gt;&lt;br/&gt;cat «EOF &gt; /etc/snmp/snmpd.conf&lt;br/&gt;############### Generic config information ###############&lt;br/&gt;agentAddress udp:161,udp6:161&lt;br/&gt;sysLocation    $def_SYS_LOC&lt;br/&gt;sysServices    72&lt;br/&gt;sysContact     $def_SYS_CONT_NAME &lt;$def_SYS_CONT_EMAIL&gt;&lt;br/&gt;rocommunity $def_READ_ONLY_SECRET  $def_IPv4_SUBNET&lt;br/&gt;rocommunity6 $def_READ_ONLY_SECRET  $def_IPv6_SUBNET&lt;br/&gt;rwcommunity $def_READ_WRITE_SECRET&lt;br/&gt;rwcommunity6 $def_READ_WRITE_SECRET&lt;br/&gt;trapcommunity $def_TRAP_COMMUNITY&lt;br/&gt;trap2sink $def_TRAP_RECEIVER&lt;br/&gt;&lt;br/&gt;############### Common config directives ###############&lt;br/&gt;disk /&lt;br/&gt;disk /var&lt;br/&gt;disk /usr&lt;br/&gt;disk /tmp&lt;br/&gt;swap 16000&lt;br/&gt;#linkUpDownNotifications yes&lt;br/&gt;#defaultMonitors yes&lt;br/&gt;master agentx&lt;br/&gt;&lt;br/&gt;############### Node specific config directives ###############&lt;br/&gt;&lt;br/&gt;EOF&lt;br/&gt;&lt;br/&gt;echo “/etc/snmp/snmpd.conf  - DONE.”&lt;br/&gt;#==========================================&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;cat «EOF &gt; /etc/snmp/snmptrapd.conf&lt;br/&gt;#&lt;br/&gt;# PLEASE: read the snmptrapd.conf(5) manual page as well!&lt;br/&gt;#&lt;br/&gt;TRAPDRUN=yes&lt;br/&gt;EOF&lt;br/&gt;&lt;br/&gt;echo “/etc/snmp/snmptrapd.conf  - DONE.”&lt;br/&gt;#==========================================&lt;br/&gt;&lt;br/&gt;cat «EOF &gt; /etc/default/snmpd&lt;br/&gt;SNMPDRUN=yes&lt;br/&gt;SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid’&lt;br/&gt;TRAPDRUN=no&lt;br/&gt;TRAPDOPTS=’-Lsd -p /var/run/snmptrapd.pid’&lt;br/&gt;SNMPDCOMPAT=yes&lt;br/&gt;EOF&lt;br/&gt;&lt;br/&gt;echo “/etc/default/snmpd  - DONE.”&lt;br/&gt;#==========================================&lt;br/&gt;&lt;br/&gt;echo ‘###############’&lt;br/&gt;echo ‘Starting SNMP  ‘&lt;br/&gt;echo ‘###############’&lt;br/&gt;&lt;br/&gt;/etc/init.d/snmpd restart&lt;br/&gt;sleep 5&lt;br/&gt;&lt;br/&gt;if [ “$(pidof snmpd)” ] &lt;br/&gt;   then&lt;br/&gt;       clear&lt;br/&gt;    cat «EOF&lt;br/&gt;Installation and Configuration of snmp&lt;br/&gt;was successful.&lt;br/&gt;&lt;br/&gt;INSTRUCTIONS&lt;br/&gt;============&lt;br/&gt;you can test snmp by using the following commands&lt;br/&gt;for IPv4 systems:&lt;br/&gt;snmpwalk -c public -v 2c localhost sysname&lt;br/&gt;&lt;br/&gt;for IPv6 systems:&lt;br/&gt;snmpwalk -c public -v 2c udp6:::1 sysname&lt;br/&gt;EOF&lt;br/&gt;&lt;br/&gt;else&lt;br/&gt;      echo “snmpd FAILED! to start”&lt;br/&gt;      echo “Not sure what went wrong.”&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;exit&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Revision: 1.0 - Initial post&lt;/p&gt;
&lt;p&gt;             1.1 - corrections after testing with ubuntu 8.04&lt;/p&gt;</description><link>http://blog.sip2serve.com/post/15331188735</link><guid>http://blog.sip2serve.com/post/15331188735</guid><pubDate>Thu, 05 Jan 2012 17:40:00 +1300</pubDate><category>bash</category><category>script</category><category>ubuntu</category><category>snmp</category><category>IPv4</category><category>IPv6</category><category>Traps</category><category>NMS</category><category>community</category><category>snmpd</category><category>snmptrapd</category></item><item><title>A post by Email!</title><description>&lt;p&gt;Well I finally got my posts working by email, this will open the door to new&lt;br/&gt;
possibilities to me and make my blog space more useful to what’s important&lt;br/&gt;
to me - watch this space and be prepared to be impressed!&lt;/p&gt;</description><link>http://blog.sip2serve.com/post/15054743475</link><guid>http://blog.sip2serve.com/post/15054743475</guid><pubDate>Sat, 31 Dec 2011 14:01:58 +1300</pubDate><category>email</category><category>posts</category></item><item><title>Zabbix install on Ubuntu 11.10</title><description>&lt;p&gt;I have put a script together that allows me to install a specified version of Zabbix on a Ubuntu server, if you choose not to install the server the script assumes you want to install the Zabbix agent. It also provides an option to compile with IPv6 support.&lt;/p&gt;
&lt;p&gt;Although there is some error checking, they can always be more added. If you decide to improve the script further please leave a comment with a link to the new improved version.&lt;/p&gt;
&lt;p&gt;It is possibly that the CODE section of this blog provider mucks up some of the special formatting characters, if you have problems check what you see on this page to what has been copied into your script file.&lt;/p&gt;
&lt;p&gt;As usual make sure you chmod +x the script file and I suggest you run this with root privelidges.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;#!/bin/bash&lt;br/&gt;&lt;br/&gt;#TODO&lt;br/&gt;# error checking always needs improving&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;#Adapted from script found online&lt;br/&gt;# CHANGES by Paul Miller:&lt;br/&gt;#enhanced to offer IPv6 support&lt;br/&gt;#Changed to support mysql&lt;br/&gt;#added option for version support&lt;br/&gt;#server or agent install&lt;br/&gt;#added some error checking&lt;br/&gt;####################################################&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;#Set Default script variables here before running&lt;br/&gt;&lt;br/&gt;DATABASE=”mysql” # option ONLY mysql at present&lt;br/&gt;IPv6=true # options true or false&lt;br/&gt;VERSION=”1.8.8”&lt;br/&gt;DB_USER=”zabbix”&lt;br/&gt;DB_PASS=”zabb1x”&lt;br/&gt;DB_HOST=”localhost”&lt;br/&gt;SERVER_IP=”192.168.0.9” # IP of zabbix server for agents to communicate with.&lt;br/&gt;SERVER_INSTALL=true # if false assumed to be agent only install&lt;br/&gt;&lt;br/&gt;#====END of User Varables==================&lt;br/&gt;IPv4_ADDR=`ifconfig  | grep ‘inet addr:’| grep -v ‘127.0.0.1’ | cut -d: -f2 | awk ‘{ print $1}’`&lt;br/&gt;MYSQL=”$(which mysql)”&lt;br/&gt;HOSTNAME=$(hostname -f)&lt;br/&gt;clear&lt;br/&gt;&lt;br/&gt;# Get Input from Users&lt;br/&gt;echo “Capture User Options:”&lt;br/&gt;echo “=====================”&lt;br/&gt;echo “Please answer the following questions.”&lt;br/&gt;echo “Hitting return will continue with the default option”&lt;br/&gt;echo&lt;br/&gt;echo&lt;br/&gt;# Get_Server - Do they require a Server Install?&lt;br/&gt;read -p “Install Zabbix Server? true/false [$SERVER_INSTALL]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]&lt;br/&gt;then&lt;br/&gt;  SERVER_INSTALL=”false”&lt;br/&gt;  #Now we ASSUME that this is a Agent ONLY install&lt;br/&gt;  # Get_Server_IP - What Version of Zabbix do they require?&lt;br/&gt;  read -p “What is the Zabbix Server IP Address? [$SERVER_IP]: ” -e t1&lt;br/&gt;  if [ -n “$t1” ]&lt;br/&gt;  then&lt;br/&gt;     SERVER_IP=”$t1”&lt;br/&gt;  else&lt;br/&gt;     SERVER_IP=”192.168.0.9”&lt;br/&gt;  fi&lt;br/&gt;  #====END Get_Server_IP&lt;br/&gt;else&lt;br/&gt;  SERVER_INSTALL=”true”&lt;br/&gt;fi&lt;br/&gt;#====END Get_Server&lt;br/&gt;&lt;br/&gt;# Get_Version - What Version of Zabbix do they require?&lt;br/&gt;read -p “Which version? [$VERSION]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]&lt;br/&gt;then&lt;br/&gt;  VERSION=”$t1”&lt;br/&gt;else&lt;br/&gt;  VERSION=”1.8.8”&lt;br/&gt;fi&lt;br/&gt;#====END Get_Version&lt;br/&gt; &lt;br/&gt;# Get_IPv6 - Do they require IPv6 support?&lt;br/&gt;read -p “Is support for IPv6 required? true/false [$IPv6]: ” -e t1&lt;br/&gt;if [ -n “$t1” ]&lt;br/&gt;then&lt;br/&gt;  IPv6=”false”&lt;br/&gt;else&lt;br/&gt;  IPv6=”true”&lt;br/&gt;fi&lt;br/&gt;#====END Get_IPv6&lt;br/&gt;&lt;br/&gt;# Step 1 ================================&lt;br/&gt;# nothing to do for agent only installs&lt;br/&gt;echo&lt;br/&gt;echo “Installation Step 1 Started”&lt;br/&gt;&lt;br/&gt;################&lt;br/&gt;#updating system&lt;br/&gt;################&lt;br/&gt;&lt;br/&gt;apt-get -qq update&lt;br/&gt;if [ $? -eq 0 ]; then&lt;br/&gt;   echo “Step 1 completed successfully!”&lt;br/&gt;else&lt;br/&gt;   echo “Step 1 FAILED!”   &lt;br/&gt;   exit&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;# Step 2 ================================&lt;br/&gt;&lt;br/&gt;if $SERVER_INSTALL ; then&lt;br/&gt;   #####################&lt;br/&gt;   #install requirements&lt;br/&gt;   #####################&lt;br/&gt;   echo&lt;br/&gt;   echo “Installation Step 2 Started”&lt;br/&gt;&lt;br/&gt;   if ! dpkg-query -W fping; then apt-get install -qq -y fping; fi&lt;br/&gt;   if ! dpkg-query -W apache2; then apt-get install -qq -y apache2; fi&lt;br/&gt;   if ! dpkg-query -W php5; then apt-get install -qq -y php5; fi&lt;br/&gt;   if ! dpkg-query -W php5-gd; then apt-get install -qq -y php5-gd; fi&lt;br/&gt;   if ! dpkg-query -W libsnmp-dev; then apt-get install -qq -y libsnmp-dev; fi&lt;br/&gt;   if ! dpkg-query -W libcurl4-openssl-dev; then apt-get install -qq -y libcurl4-openssl-dev; fi&lt;br/&gt;   if ! dpkg-query -W libapache2-mod-php5; then apt-get install -qq -y libapache2-mod-php5; fi&lt;br/&gt;   if ! dpkg-query -W libiksemel-dev; then apt-get install -qq -y libiksemel-dev; fi&lt;br/&gt;   if ! dpkg-query -W libssh2-1-dev; then apt-get install -qq -y libssh2-1-dev; fi&lt;br/&gt;   if ! dpkg-query -W libopenipmi-dev; then apt-get install -qq -y libopenipmi-dev; fi&lt;br/&gt;   if ! dpkg-query -W libmysqlclient-dev; then apt-get install -qq -y libmysqlclient-dev; fi&lt;br/&gt;   if ! dpkg-query -W mysql-server; then apt-get install -qq -y mysql-server; fi&lt;br/&gt;   if ! dpkg-query -W libapache2-mod-auth-mysql; then apt-get install -qq -y libapache2-mod-auth-mysql; fi&lt;br/&gt;   if ! dpkg-query -W php5-mysql; then apt-get install -qq -y php5-mysql; fi&lt;br/&gt;&lt;br/&gt;fi&lt;br/&gt;if ! dpkg-query -W build-essential; then apt-get install -qq -y build-essential; fi&lt;br/&gt;&lt;br/&gt;echo “Step 2 completed successfully!”&lt;br/&gt;&lt;br/&gt;# Step 3 ================================&lt;br/&gt;&lt;br/&gt;#######################&lt;br/&gt;#Initial Database setup&lt;br/&gt;#######################&lt;br/&gt;echo&lt;br/&gt;echo “Installation Step 3 Started”&lt;br/&gt;&lt;br/&gt;# create zabbix system user&lt;br/&gt;adduser zabbix —no-create-home —system —group —disabled-password —shell /bin/false —quiet&lt;br/&gt;if [ $? -eq 0 ]; then&lt;br/&gt;   echo “   User zabbix created”&lt;br/&gt;else&lt;br/&gt;   echo “   FAILED to create User zabbix”&lt;br/&gt;   exit 1&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;if $SERVER_INSTALL ; then&lt;br/&gt;&lt;br/&gt;   if [ “$DATABASE” == “mysql” ]; then&lt;br/&gt;      echo -n “   Input the MySQL admin user name: “&lt;br/&gt;      read -e MySQLADMIN&lt;br/&gt;&lt;br/&gt;      echo -n “   Input the MySQL admin user password: “&lt;br/&gt;      read -e MySQLADMINPASS&lt;br/&gt;&lt;br/&gt;      $MYSQL -u$MySQLADMIN -p$MySQLADMINPASS -Bse ‘CREATE DATABASE zabbix;’&lt;br/&gt;      $MYSQL -u$MySQLADMIN -p$MySQLADMINPASS -Bse “GRANT ALL ON zabbix.* TO zabbix@localhost;”&lt;br/&gt;      echo “   mysql database and user created”&lt;br/&gt;     &lt;br/&gt;   else&lt;br/&gt;      echo “postgresql initial DB setup”&lt;br/&gt;      #postgresql initial DB setup&lt;br/&gt;&lt;br/&gt;      echo -n “Input the postgre user name for this database: “&lt;br/&gt;      read -e DB_USER&lt;br/&gt;&lt;br/&gt;      echo -n “Input the MySQL admin user password: “&lt;br/&gt;      read -e MySQLADMINPASS&lt;br/&gt;&lt;br/&gt;   fi&lt;br/&gt;&lt;br/&gt;   echo “Step 3 completed successfully!”&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# Step 4 ================================&lt;br/&gt;################&lt;br/&gt;#Zabbix download&lt;br/&gt;################&lt;br/&gt;echo&lt;br/&gt;echo “Installation Step 4 Started”&lt;br/&gt;&lt;br/&gt;cd /tmp/&lt;br/&gt;&lt;br/&gt;DIRECTORY=/tmp/install&lt;br/&gt;if [ ! -d “$DIRECTORY” ]; then&lt;br/&gt;    mkdir /tmp/install&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;cd /tmp/install&lt;br/&gt;echo ” temporary install directory created”&lt;br/&gt;echo ” downloading zabbix source”&lt;br/&gt;&lt;br/&gt;if ! [ -e “zabbix-$VERSION.tar.gz” ]&lt;br/&gt;then&lt;br/&gt;  wget -nv &lt;a href="http://prdownloads.sourceforge.net/zabbix/zabbix-%24VERSION.tar.gz"&gt;http://prdownloads.sourceforge.net/zabbix/zabbix-$VERSION.tar.gz&lt;/a&gt;&lt;br/&gt;  echo “   downloaded zabbix source”&lt;br/&gt;else&lt;br/&gt;  echo “   zabbix source of correct version already exists” &lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;echo ” untar zabbix source”&lt;br/&gt;tar zxf zabbix-$VERSION.tar.gz&lt;br/&gt;&lt;br/&gt;echo ” prepare directory and file permissions”&lt;br/&gt;chmod -R 777 /tmp/install/*&lt;br/&gt;cd /tmp/install/zabbix-$VERSION&lt;br/&gt;chmod +x ./configure&lt;br/&gt;&lt;br/&gt;if $SERVER_INSTALL ; then&lt;br/&gt;   # DB integration&lt;br/&gt;   echo ” load mysql with provided schemas”&lt;br/&gt;   cd /tmp/install/zabbix-$VERSION/create/schema&lt;br/&gt;   cat mysql.sql | mysql -u$MySQLADMIN -p$MySQLADMINPASS zabbix&lt;br/&gt;   cd ../data&lt;br/&gt;   cat data.sql | mysql -u$MySQLADMIN -p$MySQLADMINPASS zabbix&lt;br/&gt;   cat images_mysql.sql | mysql -u$MySQLADMIN -p$MySQLADMINPASS zabbix&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;echo ” prepare compile build options”&lt;br/&gt;if $SERVER_INSTALL ; then&lt;br/&gt;   #Server DB and other build options&lt;br/&gt;   build_opts=” —prefix=/usr —mandir=\${prefix}/share/man —infodir=\${prefix}/share/info “&lt;br/&gt;&lt;br/&gt;   if $IPv6 ; then&lt;br/&gt;      build_opts=” —enable-ipv6 $build_opts”&lt;br/&gt;   fi&lt;br/&gt;&lt;br/&gt;   # —with-mysql&lt;br/&gt;   build_opts=” —with-mysql $build_opts”&lt;br/&gt;&lt;br/&gt;   cd /tmp/install/zabbix-$VERSION&lt;br/&gt;   echo “Using configure set like this: “&lt;br/&gt;   echo “configure —quiet —enable-server —with-net-snmp —with-libcurl —with-openipmi —with-jabber —with-ssh2 —enable-agent $build_opts”&lt;br/&gt;&lt;br/&gt;   echo “”&lt;br/&gt;   ./configure —quiet —enable-server —with-net-snmp —with-libcurl —with-openipmi —with-jabber —with-ssh2 —enable-agent $build_opts&lt;br/&gt;else&lt;br/&gt;   #Agents only build options&lt;br/&gt;   build_opts=” —prefix=/usr —mandir=\${prefix}/share/man —infodir=\${prefix}/share/info “&lt;br/&gt;&lt;br/&gt;   if $IPv6 ; then&lt;br/&gt;      build_opts=” —enable-ipv6 $build_opts”&lt;br/&gt;   fi&lt;br/&gt;   cd /tmp/install/zabbix-$VERSION&lt;br/&gt;   echo “Using configure set like this: “&lt;br/&gt;   echo “configure —quiet —enable-agent $build_opts”&lt;br/&gt;&lt;br/&gt;   echo “”&lt;br/&gt;   ./configure —quiet —enable-agent $build_opts&lt;br/&gt;&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;echo “   Ready to compile”&lt;br/&gt;cd /tmp/install/zabbix-$VERSION&lt;br/&gt;&lt;br/&gt;make -s install&lt;br/&gt;if [ $? -eq 0 ]; then&lt;br/&gt;   echo “Step 4 completed successfully!”&lt;br/&gt;else&lt;br/&gt;   echo “Step 4 Compile FAILED!”&lt;br/&gt;   exit&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;sleep 5&lt;br/&gt;&lt;br/&gt;#step 5 for Server installations&lt;br/&gt;if $SERVER_INSTALL ; then&lt;br/&gt;   #############################&lt;br/&gt;   #Zabbix $VERSION installation&lt;br/&gt;   #FRONTEND installation&lt;br/&gt;   #############################&lt;br/&gt;   echo “Step 5 FRONTEND installation”&lt;br/&gt;&lt;br/&gt;   sed -i.backup -e “s/post_max_size = 8M/post_max_size = 32M/g” /etc/php5/apache2/php.ini&lt;br/&gt;   sed -i.backup -e “s/max_execution_time = 30/max_execution_time = 600/g” /etc/php5/apache2/php.ini&lt;br/&gt;   sed -i.backup -e “s/max_input_time = 60/max_input_time = 600/g” /etc/php5/apache2/php.ini&lt;br/&gt;   sed -i,backup -e ‘/date.timezon/a\date.timezone = “Pacific/Auckland”’ /etc/php5/apache2/php.ini&lt;br/&gt;   cd /tmp/install/zabbix-$VERSION/frontends/php&lt;br/&gt;   sleep 5&lt;br/&gt;   echo “   Make web directory”&lt;br/&gt;   DIRECTORY=/var/www/zabbix&lt;br/&gt;   if [ ! -d “$DIRECTORY” ]; then&lt;br/&gt;      mkdir /var/www/zabbix&lt;br/&gt;   fi&lt;br/&gt;   echo “   Copy zabbix web frontend to web directory”&lt;br/&gt;   cp -a . /var/www/zabbix&lt;br/&gt;   echo “   Change the permissions to default apache2”&lt;br/&gt;   chown www-data:www-data -R /var/www/zabbix&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;   cat «EOF &gt; /etc/apache2/sites-available/zabbix&lt;br/&gt;&lt;VirtualHost /zabbix&gt;&lt;br/&gt;        ServerAdmin webmaster@localhost&lt;br/&gt;&lt;br/&gt;        DocumentRoot /var/www/zabbix&lt;br/&gt;        &lt;Directory /&gt;&lt;br/&gt;                Options FollowSymLinks Indexes MultiViews&lt;br/&gt;                AllowOverride None&lt;br/&gt;        &lt;/Directory&gt;&lt;br/&gt;&lt;/VirtualHost&gt;&lt;br/&gt;EOF&lt;br/&gt;&lt;br/&gt;   echo “   Zabbix $VERSION installation”&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;#step 5 for agents only they join here…&lt;br/&gt;&lt;br/&gt;ln -s /usr/bin/fping /usr/sbin/fping&lt;br/&gt;if $IPv6 ; then&lt;br/&gt;   ln -s /usr/bin/fping6 /usr/sbin/fping6&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;DIRECTORY=/etc/zabbix&lt;br/&gt;if [ ! -d “$DIRECTORY” ]; then&lt;br/&gt;   mkdir $DIRECTORY&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;DIRECTORY=/var/log/zabbix&lt;br/&gt;if [ ! -d “$DIRECTORY” ]; then&lt;br/&gt;   mkdir $DIRECTORY&lt;br/&gt;   chown zabbix:zabbix -R $DIRECTORY&lt;br/&gt;   chmod 766 $DIRECTORY&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;DIRECTORY=/var/run/zabbix&lt;br/&gt;if [ ! -d “$DIRECTORY” ]; then&lt;br/&gt;    mkdir $DIRECTORY&lt;br/&gt;    chown zabbix:zabbix -R $DIRECTORY&lt;br/&gt;    chmod 766 $DIRECTORY&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;cp /tmp/install/zabbix-$VERSION/misc/conf/zabbix_agentd.conf /etc/zabbix&lt;br/&gt;&lt;br/&gt;#check for server install&lt;br/&gt;if $SERVER_INSTALL ; then&lt;br/&gt;   cp /tmp/install/zabbix-$VERSION/misc/conf/zabbix_server.conf /etc/zabbix&lt;br/&gt;   sed -i.backup -e “s/DBUser=root/DBUser=$DB_USER/g” -e “s|/tmp/zabbix_server.log|/var/log/zabbix/zabbix_server.log|g” -e “s|# PidFile=/tmp/zabbix_server.pid|PidFile=/var/run/zabbix/zabbix_server.pid|g” /etc/zabbix/zabbix_server.conf&lt;br/&gt;fi&lt;br/&gt;sed -i.backup -e “s|/tmp/zabbix_agentd.log|/var/log/zabbix/zabbix_agentd.log|g” -e “s|# PidFile=/tmp/zabbix_agentd.pid|PidFile=/var/run/zabbix/zabbix_agentd.pid|g” /etc/zabbix/zabbix_agentd.conf&lt;br/&gt;&lt;br/&gt;chown zabbix:zabbix -R /etc/zabbix&lt;br/&gt;&lt;br/&gt;cp /tmp/install/zabbix-$VERSION/misc/init.d/debian/zabbix* /etc/init.d/&lt;br/&gt;&lt;br/&gt;#check for server install&lt;br/&gt;if $SERVER_INSTALL ; then&lt;br/&gt;   sed -i.backup -e “s|/usr/local/sbin/|/usr/sbin/|” /etc/init.d/zabbix-server&lt;br/&gt;   chmod 775 /etc/init.d/zabbix-server&lt;br/&gt;   update-rc.d zabbix-server defaults&lt;br/&gt;   echo “   Starting the zabbix server”&lt;br/&gt;   /etc/init.d/zabbix-server start&lt;br/&gt;   echo “   Restarting Apache for changes to take effect”&lt;br/&gt;   /etc/init.d/apache2 restart&lt;br/&gt;   sleep 5&lt;br/&gt;   if [ “$(pidof zabbix_server)” ] &lt;br/&gt;   then&lt;br/&gt;      echo “Server Installation Complete!”&lt;br/&gt;      echo “zabbix can be found at: “&lt;br/&gt;      echo “http://$IPv4_ADDR/zabbix”&lt;br/&gt;      echo “  Login:  admin”&lt;br/&gt;      echo “  Passwd: zabbix”&lt;br/&gt;   else&lt;br/&gt;      echo “Installation FAILED!”&lt;br/&gt;      echo “zabbix server process is NOT running.”&lt;br/&gt;      echo “Not sure what went wrong.”&lt;br/&gt;   fi&lt;br/&gt;else&lt;br/&gt;   sed -i.backup -e “s|/tmp/zabbix_agentd.log|/var/log/zabbix/zabbix_agentd.log|g” -e “s|# PidFile=/tmp/zabbix_agentd.pid|PidFile=/var/run/zabbix/zabbix_agentd.pid|g” -e “s|Server=127.0.0.1|Server=$SERVER_IP|g” -e “s|Hostname=Zabbix server|Hostname=$HOSTNAME|g” /etc/zabbix/zabbix_agentd.conf&lt;br/&gt;&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;sed -i.backup -e “s|/usr/local/sbin/|/usr/sbin/|” /etc/init.d/zabbix-agent&lt;br/&gt;chmod 775 /etc/init.d/zabbix-agent&lt;br/&gt;update-rc.d zabbix-agent defaults&lt;br/&gt;echo “   Starting the zabbix agent”&lt;br/&gt;/etc/init.d/zabbix-agent start&lt;br/&gt;sleep 5&lt;br/&gt;&lt;br/&gt;if [ “$(pidof zabbix_agentd)” ] &lt;br/&gt;   then&lt;br/&gt;      #cleaning up&lt;br/&gt;      rm -rf /tmp/install&lt;br/&gt;      echo “Agent Installation Complete!”&lt;br/&gt;   else&lt;br/&gt;      echo “Agent Installation FAILED!”&lt;br/&gt;      echo “zabbix agent process is NOT running.”&lt;br/&gt;      echo “Not sure what went wrong.”&lt;br/&gt;   fi&lt;br/&gt;&lt;br/&gt;exit&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;Revision History&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;First release 30/12/2011&lt;/li&gt;
&lt;/ul&gt;</description><link>http://blog.sip2serve.com/post/15014801066</link><guid>http://blog.sip2serve.com/post/15014801066</guid><pubDate>Fri, 30 Dec 2011 19:31:53 +1300</pubDate><category>Bash</category><category>Script</category><category>ubuntu</category><category>zabbix</category><category>zabbix-agent</category><category>zabbix_agent</category><category>install</category><category>howto</category><category>11.10</category></item><item><title>New Zealand Dial Plan</title><description>&lt;p&gt;I was recently asked for my NZ dial plan as apparently there is very few around.&lt;br/&gt; I have since done a search using Google and found that indeed there are  none easily found, and the ones that are listed are not that  comprehensive.&lt;/p&gt;
&lt;p&gt;Your device may need the dial plan in a different format and you may need to read your device manual to get the correct syntax.&lt;/p&gt;
&lt;p&gt;But here is my dial plan I use, please feel free to offer corrections by leaving a comment.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(00xxxxx.  | 001xxxxxxxxxx | 0061[02-9]xxxxxxxx | 01xxx. | 01[08] | 0110 | 0122x |  012[45] | 015[013-9] | 017[0-69] | 019[67] | 0198xx | 02xxxxxxxx. |  0210[013-79]xxxxx | 021[12]xxxxxx | 021[3-9]xxxxx | 026[02349]xxxxxx |  027[02-79]xxxxxx | 029xxxxxxx | 0[3469]xxxxxxx | 070xxxxxxx |  07[2-9]xxxxxx | 05xxxxx. | 0508xxxxxx | 08xxxxx. | 0800xxxxxx | 0818xx |  0830xx | 08321x | 087[459]x | 1xxx. | 111 | 12[0-8] | 129x | 1[3-6]x |  17xx | 19[67] | 19[34589]x | [2-9]xxxxxx | 911 )&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Revision:&lt;/p&gt;
&lt;p&gt;30/12/2011 Added 0279 prefix&lt;/p&gt;</description><link>http://blog.sip2serve.com/post/15009167234</link><guid>http://blog.sip2serve.com/post/15009167234</guid><pubDate>Fri, 30 Dec 2011 17:41:43 +1300</pubDate></item><item><title>Webmin installation script for Ubuntu 11.10</title><description>&lt;p&gt;Ok, so its not rocket science to install webmin on Ubuntu, however as  I spend a reasonable amount of time building up servers to try new  applications or test particular versions of applications that I already  use, I find I spend a fair amount of time repeating the same boring  tasks; one of them being installing Webmin.&lt;/p&gt;
&lt;p&gt;To use this script sudo in root using&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;sudo su&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Make sure the script has the execute permision flag set you can simply ‘cd’ to the directory where you copied the script and type:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;chmod +x webmin_install.sh&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;run the script by typing&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;./webmin_install.sh&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This script will install the latest version of webmin on your machine.&lt;/p&gt;
&lt;p&gt;Hmm… I cannot see how to attach the script file to this post, so instead I have copied the contents below, the details above assume you copy the script below into a file called webmin_install.sh&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;#!/bin/bash&lt;/em&gt;&lt;br/&gt;&lt;em&gt;#&lt;/em&gt;&lt;br/&gt;&lt;em&gt;# webmin install&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;em&gt;# update system&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;em&gt;echo ‘###############’&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘update system’&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘###############’&lt;/em&gt;&lt;br/&gt;&lt;em&gt;apt-get update &lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;em&gt;# install requirements&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘###############’&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘install requirements’&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘###############’&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;em&gt;apt-get install -y perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;em&gt;#update repo&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘###############’&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘   Repo setup  ‘&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘###############’ &lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;em&gt;echo “deb &lt;a href="http://download.webmin.com/download/repository"&gt;http://download.webmin.com/download/repository&lt;/a&gt; sarge contrib” » /etc/apt/sources.list&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo “deb &lt;a href="http://webmin.mirror.somersettechsolutions.co.uk/repository"&gt;http://webmin.mirror.somersettechsolutions.co.uk/repository&lt;/a&gt; sarge contrib” » /etc/apt/sources.list&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;em&gt;#Install GPG key&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘###############’&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘  Install GPG  ‘&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘###############’ &lt;/em&gt;&lt;br/&gt;&lt;em&gt;cd /root&lt;/em&gt;&lt;br/&gt;&lt;em&gt;wget &lt;a href="http://www.webmin.com/jcameron-key.asc"&gt;http://www.webmin.com/jcameron-key.asc&lt;/a&gt;&lt;/em&gt;&lt;br/&gt;&lt;em&gt;apt-key add jcameron-key.asc&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;em&gt;#Download and Install webmin&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘###############’&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘Install Webmin ‘&lt;/em&gt;&lt;br/&gt;&lt;em&gt;echo ‘###############’&lt;/em&gt;&lt;br/&gt;&lt;em&gt;apt-get update&lt;/em&gt;&lt;br/&gt;&lt;em&gt;apt-get install -y webmin&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://blog.sip2serve.com/post/14888286396</link><guid>http://blog.sip2serve.com/post/14888286396</guid><pubDate>Wed, 28 Dec 2011 13:25:00 +1300</pubDate><category>ubuntu</category><category>webmin</category><category>install</category><category>script</category><category>bash</category></item><item><title>Ubuntu 11.10 DNS issue on install</title><description>&lt;p&gt;Well this issue is not expected to be seen by many as it is particular scenario where the issue arises.&lt;/p&gt;
&lt;p&gt;If your network has IPv4 DHCP and IPv6 DHCP enabled then you may see this issue.&lt;/p&gt;
&lt;p&gt;Your newly installed off the CD ubuntu 11.10 requests and receives both an IPv4 and a IPv6 address making your freshly installed system a dual stacked one.&lt;/p&gt;
&lt;p&gt;You would think that having both IPv4 and IPv6 would make IP communications possible with a wider audience than a simply IPv4 or IPv6 only system. In reality you get the same connectivity as a native IPv6 attached host, &lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well as ubuntu ONLY adds IPv6 DNS server entries from the DHCP information received to /etc/resolv.conf this causes an issue whereby standard sites that do not operate IPv6 are not accessible. The simply answer is to add a new nameserver entry for your IPv4 DNS servers.&lt;/p&gt;
&lt;p&gt;This does mean as a side effect that even if you only have two name servers per IP stack, it can cause slow response when a DNS server has failed, to help combat this I use the following line at the end my resolv.conf file.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;options timeout:1 attempts:2 # reduce DNS timeout to 3 seconds&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My full /etc/resolv.conf file looks similar to this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;domain example.com&lt;br/&gt;search example.com&lt;br/&gt;nameserver 2001:470:1::6&lt;br/&gt;nameserver 2001:470:2::8&lt;br/&gt;nameserver 192.168.0.6&lt;br/&gt;nameserver 192.168.254.8&lt;br/&gt;options timeout:1 attempts:2 # reduce DNS timeout to 3 seconds&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://blog.sip2serve.com/post/14887051962</link><guid>http://blog.sip2serve.com/post/14887051962</guid><pubDate>Wed, 28 Dec 2011 13:00:00 +1300</pubDate><category>ubuntu</category><category>DNS</category><category>IPv6</category><category>DHCP</category><category>IPv4</category><category>resolv.conf</category><category>failover</category></item><item><title>QoS - SSH</title><description>&lt;p&gt;&lt;strong&gt;Findings&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The developers of SSH have recognised that it is the application that should request the QoS required from the underlying layers.&lt;/p&gt;
&lt;p&gt;In the case of SSH they have recognized that SSH supports two different traffic groups on a session by session basis, so if you are using an interactive ssh session the application will request a DSCP value that can be configured in the ssh_config file. The use of SCP as a session will mean that a different configurable DSCP marking will be applied.&lt;/p&gt;
&lt;p&gt;By default ssh sessions are configured for “low delay” and SCP for “throughput”.&lt;/p&gt;
&lt;p&gt;Now comes the problem.&lt;/p&gt;
&lt;p&gt;The current versions ignore the option set in the config files effectively making the default settings no better than “hard coded”.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Implementation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I have reluctantly decided that while this issue remains in the application; I have no way forward than to use the mangle tables of IP Tables to mark the traffic based on socket number.&lt;/p&gt;
&lt;p&gt;I will provide a full list of my IP tables mangle options in another post.&lt;/p&gt;</description><link>http://blog.sip2serve.com/post/13667857408</link><guid>http://blog.sip2serve.com/post/13667857408</guid><pubDate>Sat, 03 Dec 2011 18:44:00 +1300</pubDate><category>DSCP</category><category>QoS</category><category>SSH</category><category>Traffic Class</category><category>SCP</category><category>iptables</category></item><item><title>Quality of Service</title><description>&lt;p&gt;This post looks at the basics of QoS and what can be done within my  network to promote certain application behaviors at the expense of  others.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;First some basics. IP QoS is only beneficial when resources such as bandwidth are limited and congestion occurs.&lt;/p&gt;
&lt;p&gt;Therefore  one way to avoid the need for IP QoS is to have unlimited (or at least  beyond your needs) resources. This is unfortunately not a viable option  for many networks and for services that flow over those networks that we  have little or no control is certainly not a viable method.&lt;/p&gt;
&lt;p&gt;A  simple way of considering QoS is to think of it as a contract. A service  requests a contract from the network and says for me to work  satisfactorily I need certain levels of assurance. As we are dealing  with IP Qos these assurances are mesured by metrics such as:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;throughput or bandwidth&lt;/li&gt;
&lt;li&gt;latency&lt;/li&gt;
&lt;li&gt;jitter&lt;/li&gt;
&lt;li&gt;loss&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The  IP (network layer) is responsible for setting up a contract that meets  all the contracts it has agreed to with the layers above typically  session and application.&lt;/p&gt;
&lt;p&gt;This concept can be depicted using the picture below.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lvlvqjhTXo1qljdx3.png"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ideal Situation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As  the Application is the only thing that knows what it needs from the  layer below to function satisfactorily then the developer of the  application is responsible for coding this contract negotiation into  their application, unfortunately many developers assume theirs is the  only application running and that all resources are infinite so  therefore do not bother to include the necessary logic to request a  service contract.&lt;/p&gt;
&lt;p&gt;As I go through setting up QoS on my  applications, I will check to see if the developers have implemented QoS  and where they have I will prefer to use this rather than simply  implementing it at the IP layer which can struggle with some of the  nuances of services.&lt;/p&gt;
&lt;p&gt;Where applications have yet to have the  capabilities developed for Service Quality I will look at the IP or  Network layer to try to fill the gap as best as it can.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Planning for QoS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;QoS  implementation is not something to be entered into lightly, it is  complicated and time consuming. To make matters worse different groups  of people have different perspectives on what it means and how it should  be implemented. This leads to confusion when two people converse and  although the language is the same the meaning is different and leads to  arguments and confusion.&lt;/p&gt;
&lt;p&gt;I AM NOT the worlds expert on QoS I know that for sure.&lt;/p&gt;
&lt;p&gt;However I have grasped that “a device view”, “a bit-pipe view”, “an Internet view” do not meet the acronym of Quality of &lt;strong&gt;SERVICE&lt;/strong&gt;.  The service is seen as being provided by an application in most of the  cases I have looked at and it is therefore of little benefit to know  that a single device is setup correctly for “QoS” when to get the true  benefit I need all devices, networks, and session components that the  service requires to be aligned and working in harmony to provide me with  the quality assurance I require.&lt;/p&gt;
&lt;p&gt;This is a big ask! and if we do  have the Internet involved is currently doomed to failure as we do not  have a way of asking for a contract higher than “Best Effort” from the  Internet.&lt;/p&gt;
&lt;p&gt;However rather than throw our hands in the air and say  this is pointless what we can limit the impact that devices and networks  play on our services by ensuring we present our traffic to the Internet  in a prioritized way, and if the loss, jitter, latency seen becomes too  much we do not add to the issue by using services that will not perform  satisfactorily in those conditions at that time.&lt;/p&gt;
&lt;p&gt;I have produced a  list of groups that represent Traffic types. I have used material found  around the internet to map applications in to different traffic groups  and assigned a marking that can be used to distinguish them.&lt;/p&gt;
&lt;p&gt;This  marking is called DSCP (DiffServ Code Point) and is a set of bits in the  IP header, there is lots of discussion on  the internet to explain DSCP  so I will not go into this in this post.&lt;/p&gt;
&lt;p&gt;Armed with my list of  applications mapped to DSCP values which in turn is grouped into traffic  Groups I will proceed to take each application I find which is &lt;strong&gt;not&lt;/strong&gt; in the default Traffic Group (aka as “Best Efforts”) and see how best to implement QoS for that application.&lt;/p&gt;
&lt;p&gt;As  your list of applications and the associated mapping to DSCP and groups  will no doubt be different. I will use the next post to go through some  of the applications I have and how I have dealt with them.&lt;/p&gt;
&lt;p&gt;Till next Time….&lt;/p&gt;</description><link>http://blog.sip2serve.com/post/13662052739</link><guid>http://blog.sip2serve.com/post/13662052739</guid><pubDate>Sat, 03 Dec 2011 16:15:30 +1300</pubDate><category>QOS DSCP</category></item><item><title>ubuntu 11.04 OpenLDAP Client password issue resolved</title><description>&lt;p&gt;I have been setting up a LDAP server using ubuntu 11.04 and the guides around the Internet. This seems to go reasonable well.&lt;/p&gt;
&lt;p&gt;I used the documentation found &lt;a target="_blank" href="https://help.ubuntu.com/11.04/serverguide/C/openldap-server.html"&gt;HERE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On the client you need to use three simple comands that are issued from root or a user that has sudo su privileges.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class="command"&gt;&lt;strong&gt;sudo apt-get install libnss-ldap&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="command"&gt;&lt;strong&gt;sudo auth-client-config -t nss -p lac_ldap&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="command"&gt; &lt;/span&gt;&lt;span class="command"&gt;&lt;span class="command"&gt;&lt;strong&gt;sudo pam-auth-update&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span class="command"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="command"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="command"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;After setting up the ldap client I found two issues, the symptoms are:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;unable to login as a ldap only user on the system&lt;/li&gt;
&lt;li&gt;unable to change passwd of a ldap only user&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;The first one is easily solved edit the file /etc/ldap/ldap.conf and uncomment the host statement and make sure it has the ip address of your ldap server.&lt;/p&gt;
&lt;p&gt;The second issue was a little harder to track down, when you have logged in as a ldap user and type passwd to change the users password you see something like:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;$ passwd &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Enter login(LDAP) password: &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;passwd: Authentication information cannot be recovered &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;passwd: password unchanged &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The way around this is to logon with a user that has root privelidges and type&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;sudo apt-get install libpam-cracklib&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After this logoff and try logging in with your ldap user and now when you try to change the passwd this should all work nicely.&lt;/p&gt;
&lt;p&gt;Hope this helps!&lt;/p&gt;</description><link>http://blog.sip2serve.com/post/8545938503</link><guid>http://blog.sip2serve.com/post/8545938503</guid><pubDate>Sat, 06 Aug 2011 16:55:17 +1200</pubDate><category>ldap ubuntu linux</category></item></channel></rss>

