Ubuntu Server 14.04 (Trusty Tahr) – Quick MediaDrop Installation

ubuntu-server-logo

MediaDrop is a open source online video platform for managing and delivering video, audio and podcasts.

mediadrop

Sadly I found the official documentation to be lacking and had to cross reference it with other install guides to even get a basic setup running.

This guide will take you through a basic installation of MediaDrop that utilizes the built in Paste Server provided by Python. If you prefer a more permanent solution you can setup an Apache 2 or Nginx web server yourself. For the time being I am happy enough to just have MediaDrop running – having experienced a couple of bugs I do not want to mess with my working configuration any further right now.

My working environment is a minimal installation of Ubuntu 14.04 Server on VMware vSphere 5.x.

Let’s begin our installation – first we will elevate ourselves to the root user and then install MySQL, System libraries, development headers, python libraries and tools:

sudo -i

apt-get install mysql-server mysql-client libjpeg-dev zlib1g-dev libfreetype6-dev libmysqlclient-dev python-dev python-setuptools python-virtualenv git

When prompted enter a password for the MySQL root user.

Setup Python virtual environment:

cd /

virtualenv --no-site-packages venv

Activate the virtual environment:

source venv/bin/activate

Install MediaDrop from Git:

git clone git://github.com/mediadrop/mediadrop.git mediadrop-git

Download and install all the necessary dependencies for MediaDrop into your virtual environment:

cd mediadrop-git

python setup.py develop

Generate the deployment.ini file:

paster make-config MediaDrop deployment.ini

We will now bring up a mysql> prompt to administer the MySQL database:

mysql -u root -p

Enter your MySQL password when prompted.

Create the MySQL database mediadrop_db and the MySQL user mediadrop_user and a password for mediadrop_user:

mysql> create database mediadrop_db;
mysql> grant usage on mediadrop_db.* to mediadrop_user@localhost identified by 'mysecretpassword';
mysql> grant all privileges on mediadrop_db.* to mediadrop_user@localhost;
mysql> exit;

Note: Change ‘mysecretpassword‘ to the password you want for mediadrop_user.

Edit the delpoyment.ini file:

nano deployment.ini

Under the [app:main] heading, look for the sqlalchemy.url setting:

sqlalchemy.url = mysql://username:pass@localhost/dbname?charset=utf8&use_unicode=0

Change the username, pass, and dbname entities to mediadrop_user, password and mediadrop_db:

Note: password here refers to the password that you designated earlier for mediadrop_user.

sqlalchemy.url = mysql://mediadrop_user:mysecretpassword@localhost/mediadrop_db?charset=utf8&use_unicode=0

Setup the built in server:

paster setup-app deployment.ini

Enable simple full text searching:

mysql -u root mediadrop_db < setup_triggers.sql -p

Enter your MySQL password when prompted.

Now that MediaDrop itself is installed and the basics are configured, we can test it out using the Paste server:

paster serve --reload deployment.ini

Open a browser and enter the ip address for your server using port 8080. For example – http://server-ip:8080

To access the admin dashboard you need to append /admin to the above url. The default administrative username is admin, and the password is also admin. Remember to change your password!

If you restart your server you will need to activate the virtual environment again and run the Paste server again. A basic script to handle this looks like this:

#!/bin/bash
cd /
source venv/bin/activate
cd mediadrop-git
paster serve --reload deployment.ini

Save this as something like mediadrop-start.sh and then make it executable:

chmod +x mediadrop-start.sh

Run the script as follows:

sudo ./mediadrop-start.sh

As a closing note I did encounter issues accessing the admin panel after changing the admin password when using Firefox. I could access the admin panel using Internet Explorer though.

Sources:

http://mediadrop.net/docs/install/index.html

https://docs.google.com/document/pub?id=1DAikm-mCYiNFddClW21S0G-EwzINIC_gUl7pn2jq2zA

Advertisements

VMware vSphere 5.5 – Call “HostStorageSystem.ComputeDiskPartitionInfo” for object “storageSystem” on ESXi failed

Intel NUC

I recently installed VMware vSphere 5.5 on my Intel (Haswell) NUC (D34010WYH1).

Today I got the following error when I tried to create a VMFS 5 datastore on the SATA hard drive that I installed in my NUC:

Call "HostStorageSystem.ComputeDiskPartitionInfo" for object "storageSystem" on ESXi failed

A quick search of the internet took me to this solution which required logging as root and manually deleting partitions on the drive.

Fortunately I found a simpler solution.

I was able to create a datastore using the (legacy) VMFS 3 filesystem and then just upgraded it to VMFS 5.

Installing VMware vSphere ESXi 5.5 on an Intel (Haswell) NUC (D34010WYH1)

Intel NUC

My vSphere hardware has long been due an update and I have finally got my hands on an Intel NUC ! Here is my (completely un-supported) parts list:

The D34010WYH1 NUC gives me the option of storing virtual machines on a 2.5 inch HDD or SSD inside the NUC (and the 1TB WD Red drive gives me a good amount of local storage to play around with). The RAM is low voltage (1.35v) which is required. The 32 Gb USB 3 flash drive is over-kill (only 4GB is required for vSphere 5.5) but it is very small (and pretty fast too). I needed the HDMI adapter to connect the NUC to my HDTV during vSphere installation.

The installation process is quite straight-forward and you will need the following:

Before installing vSphere we need to create a custom .iso image that includes the two .vib drivers that we downloaded. This is done using ESXi Customizer.

ESXi-Customizer 01

The first time you run ESXi Customizer select the vSphere 5.5 ,iso image and the network driver (net-e1000e-2.3.2.x86_64.vib) to create a customized image.

Run ESXi Customizer again and this time select the customized .iso image and add the sata driver (sata-xahci-1.10-1.x86_64.vib) to create a final customized .iso image.

I chose to burn my customized .iso to CD and install using a USB DVD drive – if you want to use a flash drive to install you will need to use UNetbootin.

UNetbootin

In UNetbootin select the Diskimage radio button and then browse to the location of your final custom .iso. Select the flash drive to copy files to and then click the OK button.

In the BIOS of my NUC I disabled the UEFI option in the Boot menu. After that I booted from my USB DVD drive and installed vSphere to a USB 3 flash drive.

[I did test installing from one flash drive to another too and this also worked without any issues].

Sources:

http://trainingrevolution.wordpress.com/2013/12/30/installing-vsphere-esxi-5-5-on-an-intel-nuc-d54250wyk/

http://www.virten.net/2013/09/esxi-5-x-installation-on-intel-nuc-fails-with-no-network-adapters/

Windows 8.1 – VMware Player and Hyper-V are not compatible

Windows 8 Logo

I have the Hyper-V role enabled on Windows 8.1 for VS Express Windows Phone Emulation. The problem is this error when I try to run a VMWare Player virtual machine:

VMware Player and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware Player.

The workaround is to disable Hyper-V so that you can use VMWare.

To do this open an Administrator Command Prompt, enter this command and then reboot:

bcdedit /set hypervisorlaunchtype off

Hyper-V can be enabled again with this command (which also requires a reboot):

bcdedit /set hypervisorlaunchtype auto

Source: http://superuser.com/questions/519991/vmware-player-is-not-working-after-installing-hyper-v-on-windows-8-pro

2013 Potential Hardware for vSphere Home Nanolab and NAS Refresh

hardware-logo

My current VMware vSphere white-box will be 5 years old in August. It has an AMD Athlon X2 BE-2400 Brisbane @2.3GHz and 8Gb of RAM – and these days 8Gb of RAM is just not enough.

The hardware for my NAS is more recent – a HP Microsever N40L with 6Gb of RAM, running FreeNAS 8.x.

The cpubenchmark score for my vSphere box is 1333 – the score for the N40L is 979.

While I still need to look at the performance of ZFS on the N40L (it is OK but not exactly where I would like it to be) I know that a lot more CPU is not desperately needed for new vSphere hardware (but it would be nice).

I have been considering the Intel NUC (Next Unit of Computing) as an alternative to having a tower PC to run vSphere for a while now. It maxes out at 16Gb of RAM and it really shines in terms of its power efficiency (13-27 watts) and diminutive size (4″ x 4″). The i3 -3217U DC3217IYE NUC (Ivy Bridge architecture) is the current NUC that I have my eye on.

The Intel i3 NUC
The Intel i3 NUC

The issue with the NUC though is storage – I can either install an msata SSD in the NUC or use shared storage on my NAS (or both). I would like to use local storage on the NUC for speed and back up VMs to my NAS – the cost of SSDs will limit my local storage capacity though.

The next generation of NUCs are based on the Haswell architecture and include Core i5 (Horse Canyon) and i7 (Skull Canyon) CPUs. The i5-3427U offering (cpu benchmark: 3580) is of interest to me here as it includes Intel vPro remote management capabilities.

This still leaves us with the 3rd generation of NUCs (also Haswell) which have an on-board sata and sata power connector – these are slated to arrive in Q3 2013.

3rd Gen Intel NUC
3rd Gen Intel NUC

The other option for a diminutive vSphere box is the Gigabtye take on the NUC called Brix. It looks like Gigabyte plans to offer Intel (i3 – i7) CPUs and AMD Kabini (E1-2100, E1-2500 & E2-3000 dual core, and A4-5000 quad core) CPUs.

I think it will be worth keeping an eye on the Brix offerings to see where they differ from the NUC. The key areas for me will be efficiency, pricing and storage – what if Brix offers a 2.5 or 3.5″ internal drive bay, for example? I imagine that the AMD offerings will be cheaper than the Intel NUC – but we will have to wait and see.

On the home NAS side of things HP very recently updated their Microserver (Gen 8) with Celeron and Pentium models:

  • Intel® Celeron® G1610T (2 core, 2.3 GHz, 2MB, 35W)
  • Intel® Pentium® G2020T (2 core, 2.5 GHz, 3MB, 35W)

This does potentially make the Microserver a better vSphere candidate too, especially as the supported RAM has been upped to 16Gb.

The other good news is the built in iLO support, dual gigabit NICs and USB 3.0 ports (as seen on the beta unit, at least):

HP Microserver (Gen 8) rear panel - courtesy of
HP Microserver (Gen 8) rear panel – courtesy of blog.themonsta.id.au

So I’ll be keeping an eye on the new generation of Microserver too. The additional CPU and RAM are quite welcome (especially for ZFS). I am also keen to know the power consumption for these machines as a whole.

Either way with both the NUC and the Microserver I can build a power efficient and much smaller lab.

If I can score a couple of NUCs and another Microserver by the end of the year, I will be a happy man!

Ubuntu Server – Installing Tiny Tiny RSS

ubuntu-server-logo

I have been using Gregarius as my web-based RSS aggregator for quite some time now but have wanted to try Tiny Tiny RSS for a while.

Now that WebUpd8 have created a PPA (Personal Package Archives) for Tiny Tiny RSS I really had no excuse for not installing it.

Note: I am installing Tiny Tiny RSS on Ubuntu Server 12.04. PPAs have been available for Ubuntu since Ubuntu 9.10 – so this will not work on prior editions of Ubuntu Server.

The first step is to update our repositories and install Apache and MySQL:

sudo apt-get update
sudo apt-get install mysql-server mysql-client apache2 libapache2-mod-php5

When prompted enter a password for your MySQL root user:

MySQL Password

Confirm your MySQL password:

Confirm MySQL Password

Now that we have our prerequisites installed we can add the Tiny Tiny RSS PPA.

Note: On a minimal virtual machine installation of Ubuntu Server we need to install the  python-software-properties package to be able to add a PPA:

sudo apt-get install python-software-properties

Add the Tiny Tiny RSS PPA:

sudo add-apt-repository ppa:webupd8team/tt-rss
sudo apt-get update
sudo apt-get install tt-rss

Set Apache as the Tiny Tiny RSS web server:

tt-rss apache

Set the URL for the Tiny Tiny RSS installation – for a local install on my LAN i used http://localhost/tt-rss/:

tt-rss url

Select Yes for database configuration:

tt-rss database config

Confirm MySQL as the database for Tiny Tiny RSS:

tt-rss database mysql

Enter your root MySQL password:

tt-rss root mysql password

Enter a password for Tiny Tiny RSS to register with MySQL – a random password will be generated if left blank:

tt-rss application password

Confirm your application password:

tt-rss confirm application password

Next we need to use nano to edit some configuration files.

First we need to edit our server address in /etc/tt-rss/config.php:

sudo nano /etc/tt-rss/config.php

Find the line  define('SELF_URL_PATH', 'http://yourserver/tt-rss/'); and change it to  define('SELF_URL_PATH', 'http://localhost/tt-rss/'); (as per the server address that we set previously):

tt-rss config.php

Press Ctrl + O then Enter to save the changes to config.php and then Ctrl +X to exit nano.

To get Tiny Tiny RSS to update feeds we need to edit /etc/default/tt-rss:

sudo nano /etc/default/tt-rss

Change DISABLED=1 to DISABLED=0 to allow the Tiny Tiny RSS daemon to be started:

tt-rss tt-rss

Press Ctrl + O then Enter to save the changes to config.php and then Ctrl +X to exit nano.

Start the Tiny Tiny RSS service:

sudo service tt-rss start

Obtain the IP address of your Ubuntu Server installation:

ipconfig

tt-rss ifconfig

Open a browser on another machine and navigate to your Tiny Tiny RSS URL:

tt-rss login

Login with the username: admin and the password: password.

Click Actions, Preferences and Users to change your admin password and add users. You can import feeds under the Feeds tab or click Exit Preferences and then Actions, Subscribe to feed to add feeds manually.

Source: http://www.webupd8.org/2013/05/tiny-tiny-rss-ubuntu-ppa-google-reader.html

Ubuntu Server – Unattended Installation (Custom CD)

ubuntu-server-logo

I’ve lost count of the number of times that I have installed Ubuntu Server on my VMware vSphere box – so I finally looked in to performing an unattended install.

I could have setup DHCP and TFTP servers and done PXE boot from images over the network – but I wanted to work on something quicker than that (and I don’t have that much spare RAM on my vSphere box as it is).

So I settled on re-mastering an Ubuntu Server .iso image. The result is an unattended install, except for the initial boot screen (where I need to select a minimal virtual machine installation anyway).

The following steps were performed on Ubuntu Desktop.

Download Ubuntu Server – I am using the 32 bit version of Ubuntu 12.04.

Open a Terminal and create a directory to mount the Ubuntu Server iso to.

sudo mkdir -p /mnt/iso

The -p switch is very useful as it allows you to create a directory structure which does not already exist (as opposed to creating a single directory).

Change directory to Downloads:

cd Downloads

I renamed my download UbuntuServer.iso.

Mount UbuntuServer.iso to /mnt/iso:

sudo mount -o loop UbuntuServer.iso /mnt/iso

Create a directory and copy the mounted Ubuntu Server files:

sudo mkdir -p /opt/serveriso
sudo cp -rT /mnt/iso /opt/serveriso

The -r switch copies directories recursively and -T specifies no (singular) target directory.

Now we have a copy of our Ubuntu .iso to work on in /opt/serveriso – but we need to make these files writable:

sudo chmod -R 777 /opt/serveriso/

With this preparation done we can start customizing things.

If we look at the isolinux/langlist file we see all the supported languages listed that Ubuntu supports (in an abbreviated format):

am
ar
ast
be
bg ...

I am only interested in an English install so I am going to overwrite the contents of isolinux/langlist with the single abbreviation for English, which is “en”.

cd /opt/serveriso
echo en >isolinux/langlist

This stops the language selection menu from appearing during installation.

The next step of the process is to create a kickstart file – this will provide the server install with the answers to the various questions asked during installation, such as timezone, username, password, partition structure and so on.

Install Kickstart Configurator:

sudo apt-get install system-config-kickstart

Click the Dash button and type kickstart and then click on the kickstart application.

kickstart

Obviously you should customize your settings as you see fit – I have provided mine for reference.

Basic Configuration
Basic Configuration: Set Timezone
Installation Method
Installation Method: Choose the CD-ROM installation method

Boot Loader Options

Partition Options: Add an ext4 partition to the root file system that fills all unused space on the disk
Partition Options: Add an ext4 partition to the root file system that fills all unused space on the disk
Partition Options: Add a swap file system that uses the recommended swap size
Partition Options: Add a swap file system that uses the recommended swap size
Network Configuration: Add network device eth0 and set to DHCP
Network Configuration: Add network device eth0 and set to DHCP
User Configuration: Provide username and password
User Configuration: Provide username and password

Click File, Save File and save the kickstart file ks.cfg to /opt/serveriso.

While using the Kickstart Configurator you may have noticed that the Package Selection screen did not work. Fortunately we can manually edit the ks.cfg file so that the packages that we want are installed during Ubuntu Server installation.

At the end of ks.cfg add %packages and then list the packages that you want installed. I chose to install nano, openssh-server and open-vm-tools:

%packages
nano
openssh-server
open-vm-tools --no-install-recommends

–no-install-recommends installs open-vm-tools in headless mode.

Now we need to configure the CD boot command line to use the kickstart ks.cfg file.

Browse to and open /opt/serveriso/isolinux/txt.cfg.

We need to edit the append line of the default install section at the top of the file.

default install

At the end of the append line add ks=cdrom:/ks.cfg. You can remove quiet — and vga=788.

My append line is as follows:

append  file=/cdrom/preseed/ubuntuserver.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg

The final step is to create a new Ubuntu Server .iso using this command:

sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/serveriso

The finished .iso is /opt/autoinstall.iso.

Test your .iso in a virtual machine to make sure that everything works as it should.

The minimal interaction that I need to set my Ubuntu Server install going is documented below:

1. Press the Enter key to confirm the English language selection
Press the Enter key to confirm the English language selection
Press F4, select Install a minimal virtual machine, and then press Enter
Press F4, select Install a minimal virtual machine, and then press Enter
Press Enter to install Ubuntu Server
Press Enter to install Ubuntu Server

From here installation continues without any further input being required.

Sources: http://askubuntu.com/questions/122505/how-do-i-create-completely-unattended-install-for-ubuntu