Nov 13

Fixing DAViCal and PostgreSQL on Ubuntu 11.10 (Oneric Ocelot)

DAViCal is a great server for calendar sharing. It is an implementation of the CalDAV protocol which is designed for storing calendaring resources (in iCalendar format) on a remote shared server. I have used it for sharing with my wife and I at home with our iPads, iCal on OS X and iPhones to allow us to have a shareed schedule for the house and our events. There are now other options like Google Calendar and iCloud, but I still like to run my own stuff and control my own data. DAViCal was running fine for me over the last year or so, but it stopped ater I did my recent upgrade to Ubuntu 11.10 server for mergy.org. I deleted it all and did a reset from scratch on the calendar setups.

After spending some time this weekend getting this fixed again, I found some simple fixes that aren’t out there yet in the docs. My problems were related to the PostgreSQL version bump to 9.1. Hope this is helpful if you are seeing issues with this as I have.

The installation page for DAViCal is pretty close, but now with PostgreSQL 9.1, things have changed a bit.


1. Slight Adjustments to the Database Setup

You can install DAViCal via the

$ su apt-get install davical

but the files in /usr/share/davical/dba need to be modified because PostgreSQL 9.1 uses port 5433 instead of 5432 as PostgreSQL did.

From the DAViCal Installation Docs

BUT Before you attempt to run this script to do the setup

/usr/share/davical/dba/create-database.sh

you need to modify

/usr/share/davical/dba/update-davical-database

Change this line under  ”Options variables” towards the start of the file to

my $dbport = 5433;

then you can run the create database script.

 

2. Adjust the DAViCAL Configuration in /etc/davical/

Under the DAViCal configuration area, you should change the port to 5433 as well for your setup config.

From the DAViCal Installation Docs

In the pg_connect line, change the port to 5433 to get it to work with PostgreSQL defaults.

After doing those items, I was able to get back up and running and hit the web interface for DAViCal (depending on how you setup the Apache stuff) and add users / groups / resources. Because we don’t have a lot of accounts, it wasn’t that big of a deal. DAViCal has been a great way for us to share dynamic calendars for personal events and sync OTA.

 


					
Sep 29

Host Only Networking Setup With VMWare Fusion 4

 

I have used VMWare Workstation and Fusion for many years now on Linux, Windows and Mac OS X host operating systems. I have used the “host only” networking on Windows and Linux host operating systems, but never on OS X with VMWare Fusion until recently when I had the need to test some new firewall software setups.

On VMWare Workstation or Server, it is pretty easy to set network addresses for the virtual networks and hosts, but turns-out it is kind of a pain with VMWare Fusion (the Mac app.) For whatever reason, they didn’t include the configs in VM configuration GUI. This makes the whole setup more of a pain than it should be. I suppose they didn’t add this level of configuration because of the way the VMWare Tools may or may not integrate with the guest OS or something in OS X. Also, maybe Mac users just don’t really request the need to have this in a nice GUI due to lack of overall interest. Whatever the case, there are some great reasons to have it operational.

In testing the recently released IPCop 2, I needed to play around with settings and see how the configurations I use in production would and could work on the new build. VirtualBox, VMware and Parallels are great applications for these sorts of development testing situations. I have always had a preference for VMWare because of their commitment to have the vm images be able to move back and forth between host operating system applications versions of VMWare. It has come in handy many times when I have moved from Windows to Linux or back as I have changed my main operating system.

By default, a VMware Fusion guest OS will initial be setup with an initial network interface. You can set in the VMWare settings whether you want it to act as a NAT or Bridged. That is all standard, in the VMWare Fusion application host config settings. In my case, I need the VMWare guest to have at least two network adapters so I can test different network nodes as I try to mimic servers with multiple physical network cards running the Linux-based firewall. So, in my case, I added an additional network adapter in the guest settings interface.

VMWare Fusion 4 Guest OS Settings

At each of the network adapters, you can set the use setting. In my situation, I  wanted the first network adapter to be used to provide access to the real network my MacBook Pro is using to access the real network (wired or ethernet) on the machine.

It will want to make the first network adapter use NAT by default so nothing crazy here except, I did flip the “Advanced options” and generated a MAC address and kept generating addresses until I got an “A” in the final segment so when I am testing and looking and packets coming and going from device addresses, I can know that the host with the “A” is this first network adapter. You don’t need to do this, but if you can insert some sort of label to help troubleshoot or tag traffic/addresses/information in this sort of setup is useful to me. My VM is titled “ipcop2″ but it could have been titled “Linux” or something else.

VMWare Fusion 4 Network Adapter 1 Settings

The second network adapter is when I dip into virtual / host only world. I create it and designate it as a private network only available to the host mac I am running VMware Fusion 4 on, then keep generating a MAC address until I get one that has a “B” in the final segment to continue the configuration pattern of tagging the network interfaces.

VMWare Fusion 4 Network Adapter 2 Settings

I also had to go into the guest OS and assign the virtual network interface to the correct address that matched the one I will put in the VMware config for the host only. Because it was IPCop 2, it looks like this. But, your setup will differ if you are running something else and want a fixed ip across the configs.

Assigning Virtual Host Only MAC To IPCop Green

Assigning the NAT MAC To IPCop RED

Assigning the fixed IP to the virtual network host only adapter in the guest OS (IPCop)

Then I went in a edited the networking file where VMWare maps the IP addresses to the virtual network interfaces. In VMWare Fusion 4, they moved it to /Library/Preferences/VMWare Fusion from the previous location under Application support. I gave my private network adapter a fixed IP in the reserved space since I will also be assigning the address to one of the settings in the guest host as a fixed address. You can hit this via an OS X terminal.

$ sudo vi /Library/Preferences/VMware\ Fusion/networking

and modify to assign the interface a IP. My example is changing it from the default setting or DHCP and setting it as 10.111.1.1

editing /Library/Preferences/VMWare Fusion/networking

Anytime you modify this config, you need to restart the the VMWare Fusion application to get it to use the new settings. I would also restart and confirm the settings in the guest host on network addresses on any testing or modifications. After all settings and restarts of guest OS (if they were in a suspended state) and the VMWare Fusion app, make sure the ping the address. You can also arp -a the network from the OS X terminal to see if you get a bite. You should see the MAC address you generated and the IP you set in the networking config.

arp -a in OS X terminal confirms vm network address

This process will at least get you a basic host only networking between the host and guest OS in a contained way. It is my hope that VMWare makes this easier in later updates of VMWare Fusion 4 and regardless of what host OS you are running (Windows, Linux, Ubuntu, etc.) At the time of this post, we were at VMWare Fusion 4.0.2.

Feb 12

Desktop Paging Finally Back On Mac OS X

After the demise of Codetek’s Virtual Desktop a few years ago, many Mac users who love desktop paging and virtual desktops were left with no real options. CodeTek’s software was actually very nice, but they just stopped updating it perhaps due to major OS changes from Apple or the developers disbanded. The website is still up for some crazy reason http://codetek.com/ctvd/ and they continue to sell a product that doesn’t work on OS X versions beyond 10.4. I hope people are not being taken, but who knows.

Apple came out with Spaces in meant to provide some level of functionality along the lines of traditional virtual desktops, but Spaces on it’s own is pretty worthless and more of a hassle then a benefit for many of us who typically have a dozen or so applications running simultaneously and constantly bouncing back and forth. Exposé is another tool that Apple includes as part of the OS starting in OS X 10.5 onward, but again, not very helpful and most just get confused by it.

Enter the newly released Hyperspaces from The Cocoabots. I was dubious that it could provide something close to the wonderful utility built-into all Linux GUIs from CentOS and RedHat to Ubuntu in Gnome or KDE. Good news is that it comes pretty close yet still feels very Mac-like. It works in conjunction with Apple’s Spaces to get me back in business with multiple virtual screens to leave applications open and maximized in their ready positions. The setup with Spaces and Hyperspaces is also aware and capably of handling apps based in X11 and in Windows VMWare apps like Internet Explorer.

Here are some screenshots of my setup -

My only issue would be that I do miss the option to have a floating palette switcher option or to be able to put the switcher in the menu bar full-time. But, this tool is a major, major help for me and I am sure in future versions, more options will be available and the product will continue to improve. It is well worth the $10 though in the OS X App store. If you just want to try it, you can via the website download, but you can only work with three desktops which will not be enough when you really get used to working effectively with desktop paging.

May 30

Install and Run Handbrake on Ubuntu Lucid Lynx

I have been backing-up our DVDs to file recently and been using Handbrake a lot. Handbrake is a great tool and runs great on Windows and Mac OS X, but it also runs on Ubuntu. After encoding a few movies on our Macs and then transferring them to our storage location, I thought that it might just be best to encode the video on the linux server itself. Here is a quick guide if there is not one out there yet. Handbrake can be installed via the PPA structure in Ubuntu. Big ups to John Stebbins for working on this.

1. Login to your Ubuntu Linux 10.0.4 system. If your system does not have a GUI (Gnome) then you can use Handbrake via command-line , but not for the average user.

2. I would run a command that makes sure your system is up to date, package-wise prior to adding the PPA.

$ sudo apt-get update

$ sudo apt-get upgrade

Then allow everything to be run and updated and reboot if needed.

3. Add the PPA for John Stebbins personal archive to your apt-get repository

$ sudo add-apt-repository ppa:stebbins/handbrake-snapshots

4. Then run the update to get the apt-get available packages so you can get handbrake

$ sudo apt-get update

5. Then, since your system knows about John’s archive and has the package for Handbrake, go ahead and run it.

$sudo apt-get install handbrake*

This will show you that you are going to install the command-line and the gtk (gnome) gui version. Screenshot shows the step 5 install process but I am root straight-out (the sudo stuff gets old when you have to just get stuff done so having a root password is important for me).

This sort of process is constantly changing and this is just want works at this point in time, so best to check this for new/better ways to get to the solution.

https://edge.launchpad.net/~stebbins/+archive/handbrake-snapshots

6. I would also make sure you have the latest version of vlc installed.

$ sudo apt-get install vlc

7. You will be able to run the GUI version of Handbrake via the Gnome menu structure under Sound & Video or just running this command via Terminal

$ ghb

Another nice way to run this on your linux box would be to just run it via VNC or X over SSH. Here is a screenshot running Handbrake on Ubuntu Lucid Lynx on X over SSH from my MacBook 10.6.3 with X11.

Handbrake on Ubuntu Lucid Lynx 10.04 run over SSH via X

Nov 09

Zabbix 1.6.1 on Ubuntu Hardy Heron 8.04

After working with other Open Source monitoring systems over the years, I decided to give Zabbix a try. Net-Saint then Nagios was always good, but getting it going initially and then adding the trending graphing was always a pain. Big Brother was another good one, but now that Quest Software owns it, the BTF version gets less and less appealing. Zenoss is another that I have used recently, but not super-impressed with the ability to create a nice services dashboard that I want to monitor a bunch of hosts and services on one screen. So, Zabbix, I thought, was worth a shot. Also, just getting the monitoring then having to do some hokey, non-documented grapher for Nagios was not going to be fun again so time to try something new.

Good news is the manual is pretty good. My recommendation is to go with Ubuntu for the host OS if possible. I was always a RedHat/Centos guy, but just not really into hunting for dependencies and RPMs anymore. Apt-get is just too great to handle and when you want to get something done quickly, it is just really nice.

Some of the following has been lifted from other places on the net but here goes what worked for me…

1. Hit the basics that need to be in-place. When you do your Heron install, you can hit them then or after with apt-get. Of course, you need;

Apache
PHP5
MySQL-Server

and a few other ones you probably don’t have

php5-gd
snmp
libsnmp9-dev   (this is important for NET-SNMP support for Zabbix at config time)
snmpd

You can issue this to get the ones that are not so standard:

$ sudo apt-get install php5-gd snmp libsnmp9-dev snmpd

(wait for a while)

2. Create zabbix user/group

$ sudo adduser zabbix

(it will walk you through the user info q&a) then when done and he user to the ‘admin’ group as well

$ sudo adduser zabbix admin

3. Create the mysql db for the backend (make sure mysqld is running prior of course). There is no password for the default root user for new mysqld installs, so no need to enter a password. You should change that and secure mysql of course later…

$ mysql -uroot

mysql> create database zabbix;
mysql> quit;

4. Download zabbix from their site. The version I am dealing with now is 1.6.1 http://www.zabbix.com/download.php and place it somewhere on the server and unzip/untar it so you have a directory with the release contents.You probably would be served best to place it into the home directory of the zabbix user (i.e – /home/zabbix/zabbix-1.6.1). By this time, I am just staying as root user throughout after getting sick of sudo.

5. Setting up the mysql db with the sql files from the release -

cd into the zabbix release directory (I will use /home/zabbix/zabbix-1.6.1 from now on) and run

$ cat create/schema/mysql.sql | mysql -uroot zabbix
$ cd create/data
$ cat data.sql | mysql -uroot zabbix
$ cat images_mysql.sql | mysql -uroot zabbix

That should get the db populated. To check mysql later and manage other mysql dbs with a nice GUI, phpmyadmin is what I would recommend. But onward!

6. While sitting in the release directory (/home/zabbix/zabbix-1.6.1) run the configure as root or sudo:

#./configure –enable-proxy –with-mysql –with-net-snmp –with-libcurl –enable-server –enable-agent

If this fails, stop and make sure you have everything installed from step #1. I missed a few things initially but if you have everything installed, it should go. Then

# make

# make install

7. Create config directory and copy the defaults over;

$ sudo mkdir /etc/zabbix
$ sudo chown -R zabbix.zabbix /etc/zabbix/
$ cp misc/conf/zabbix_* /etc/zabbix/

I would not mess with the configs just yet. I always over think settings so I tend to see if it can run then tweak after. These ran fine on Hardy Heron without modification initially.

8. Get the web interface files placed:

mkdir /home/zabbix/web
cp -R /home/zabbix/zabbix-1.6.1/frontends/php/* /home/zabbix/web

You should chown and chmod the directory for the initial config to go smoothly later:

$ sudo chown -R zabbix /home/zabbix/web
$ sudo chgrp -R <your webserver user> /home/zabbix/web
$ sudo chmod -R 775 /home/zabbix/web

and add the alias to the apache default site

$ sudo vi /etc/apache2/sites-enabled/000-default

When in vi, paste something like this prior to the termination of the virtualhost:

Alias /zabbix/ /home/zabbix/web/
<Directory /home/zabbix/web>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

9. Start zabbix server and the agent:

$ sudo zabbix_server
$ sudo zabbix_agentd &

10. Check the php.ini and change these (the max_execution_time for me was 30 seconds initially)

max_execution_time = 300 ; Maximum execution time of each script, in seconds
date.timezone = <your timezone>

Timezone reference for php @

http://us3.php.net/manual/en/timezones.php

Mine is —->      date.timezone = America/Los_Angeles
11. Restart apache to kick-in the site changes alias and the php.ini changes if they were needed.

12. Go to http://<hostname / ip>/zabbix/

13. The initial login should be

Admin
zabbix

14. Walk through the install and because of what you did in step 8 above, you should be able to have it save the config to the directory. If not, you can save it and scp or sftp it up to the /home/zabbix/web/conf directory.

15. Add hosts and play with graphs now. You shoudl go add yourself as a separate user and change the main admin password, etc.

I am sure I missed something or could have done things in a better order, but this is what I was able to piece together from older version install guides on the web and what worked for me. There are addition setups that should be done so you HAVE to check the install guide, but this is the basic way to get operational at least on Ubuntu Hardy Heron.

Hope this helps,

Jonathan

UPDATE: For Ubuntu 8.10 I needed to also install

libcurl4-gnutls-dev
and I just installed all libmysql

$ sudo apt-get install libmysql*
$ sudo apt-get install libcurl4-gnutls-dev