VMWare Integrated Openstack issues

Standing up the environment with the integrated Database is easy enough however if you want to add Active Directory into the mix it gets more fun.
During this I encountered the following issues:

  1. No way to change without blowing away the deployment and re-deploying.
  2. Error messages were often misleading.
  3. AD Structure very Important
  4. Forward Slashes in AD “cn” are BAD!!
  5. Users without a UPN cause issues.

(more…)

Compile Raspberry Pi Kernel

update: 2015-02-10: Removed folder sync as was causing builds to fail

Decided to play about with the Raspberry Pi Kernel but setting up the toolchain for a cross compile was a bit of pain not to mention remembering to download everything.
So I put together a Vagrantfile that should auto do it.

Following Variables can be edited at the top of the Vagrantfile:
(more…)

CentOS 7 and OpenVPN 2.3.5 (Routed)

Decided to setup a openvpn server on a new CentOS 7 box and it was not exactly straight forward so below are the steps required, this should be enough to get started

On a (minimal) centOS 7 box:

yum -y install gcc rpm-build vim openssl-devel lzo-devel pam-devel wget
wget http://swupdate.openvpn.org/community/releases/openvpn-2.3.5.tar.gz
rpmbuild -tb openvpn-2.3.5.tar.gz

if using a seperate server for as the VPN server:

scp ./RPMS/x86_64/openvpn-2.3.5-1.x86_64.rpm server:/tmp

(more…)

MSBuild and 7Zip SFX

The following allows you to package up your build output into a SFX file with custom properties that appear when someone right clicks the SFX and chooses properties.

Useful if you need to create a zip that can be signed but want your company/product information to appear on the SFX.EXE.

(more…)

Update sshd_config to use Protocol 2

Had to write an script to update SSHD to only use protocol 2 without changing any of the other settings, to be deployed via BMC Bladelogic (horrible horrible tool), but you work with what you have. The script should work across Linux, AIX and Solaris.

$> SSHProtocolUpdate.sh update [1|2]
$> SSHProtocolUpdate.sh rollback

(more…)

Convert XML and XSL to HTML

Just a quickie. I have a script that outputs an XML file and I use an XSL file to display it but Management wanted HTML files, the thought of having to re-code the output was disheartening to say the least. I then came across “msxsl.exe” it’s a Microsoft tool that takes a XML file and a XSL file and then generates the resultant rendered output in HTML.

http://www.microsoft.com/en-gb/download/details.aspx?id=21714

Syntax:
msxsl.exe -o

TFS queue build from powershell

I was doing some testing on TFS and got fed up queuing new builds via right-click -> queue new build -> ok. So here is a powershell script that can be used to kick off a build.

I’ve included some extra assemblies that don’t need to be used as I have other functions that do use them in the same module file. example useage below

Queue-TFSBuild -TFSServer http://tfsserver:8080/tfs/col -Project Project1 -Definition DailyBuild

$arrAssemblies = @(
    "Microsoft.TeamFoundation.Client",
    "Microsoft.TeamFoundation.Common",
    "Microsoft.TeamFoundation.Build.Client",
    "Microsoft.TeamFoundation.Build.Workflow",
    "Microsoft.TeamFoundation.VersionControl.Client"
)
Foreach ($assembly in $arrAssemblies) {
    [void][Reflection.Assembly]::LoadWithPartialName($assembly)
}	
Remove-Variable assembly, arrAssemblies


Function Queue-TFSBuild {
    [CmdLetBinding()]
    Param (
        [Uri]$TFSServer,
        [String]$Project,
        [String]$Definition
    )

    Process {
        [Microsoft.TeamFoundation.Client.TfsTeamProjectCollection]$tfsc = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($TFSServer)
        $IBS = [Microsoft.TeamFoundation.Build.Client.IBuildServer]

        [Microsoft.TeamFoundation.Build.Client.IBuildServer] $buildserver = $tfsc.GetService($IBS)
        [Microsoft.TeamFoundation.Build.Client.IBuildDefinition] $BuildDef = $buildserver.GetBuildDefinition($Project,$Definition)
        [Microsoft.TeamFoundation.Build.Client.IBuildRequest] $BuildReq = $BuildDef.CreateBuildRequest();
        $buildserver.QueueBuild($BuildReq)
    }
}

Flashing eeprom during imaging via PXE

I had a requirement to flash the eeprom on a FTDI chip while dropping a clonezilla image onto the system which is done via a PXE server

The 1st thing we need to do is get ftdi_eeprom tools on the clonezilla image, we do this by setting up an ubuntu system (I used ubuntu 12.04)

apt-get install squashfs-tools unzip

wget -O Clonezilla-2.1.2-20_amd64.zip http://downloads.sourceforge.net/project/clonezilla/clonezilla_live_stable/2.1.2-20/clonezilla-live-2.1.2-20-amd64.zip?r=http%3A%2F%2Fclonezilla.org%2Fdownloads%2Fdownload.php%3Fbranch%3Dstable&ts=1373475093&use_mirror=heanet

mkdir clonezilla-src clonezilla-sqfs
cd  clonezilla-src
unzip ../Clonezilla-2.1.2-20_amd64.zip
cd ../clonezilla-sqfs
unsquashfs ../clonezilla-src/live/filesystem.squashfs
cd squashfs-root/root

wget http://ftp.de.debian.org/debian/pool/main/f/ftdi-eeprom/ftdi-eeprom_0.3-2_amd64.deb
wget http://ftp.de.debian.org/debian/pool/main/c/confuse/libconfuse0_2.7-4_amd64.deb
wget http://ftp.de.debian.org/debian/pool/main/c/confuse/libconfuse-common_2.7-4_all.deb

rm *.deb

chroot ~/clonezilla-sqfs/squashfs-root
cd root

dpkg -i libconfuse-common_2.7-4_all.deb
dpkg -i libconfuse0_2.7-4_amd64.deb
dpkg -i ftdi-eeprom_0.3-2_amd64.deb

cat > ./eeprom.conf <<@
vendor_id=0x0403
product_id=0x6001
manufacturer="ME"
product="XXXXX"
serial="FTABC123"
@

exit

cd ~/clonezilla-sqfs

mksquashfs squashfs-root filesystem.squashfs -comp xz -Xbcj x86 -b 1024k

Replace the Fields above with the values you want to use most important is the two _id fields as they tell ftdi_eeprom which device to attempt to flash, you can get these by running the command “lsusb” and identifying the device.

Copy the file “filesystem.squashfs” that has just been created and overwrite the one on the PXE server used to deploy the image. When you next PXE boot the target machines you will find ftdi_eeprom is available to use.

Now during the deployment run the command
ftdi_eeprom –flash-eeprom /root/eeprom.conf

Get Numeric Values from an Enum in powershell

I needed to get the values for a enum in order to generate the correct flags for a function call here’s how to do it.

[Enum]::GetValues() will return a list of all the values

::.value__ will return the numeric value enum

[Enum]::GetValues([Microsoft.TeamFoundation.Build.Client.BuildStatus]) | foreach {
$Name = $_
$Value = ([Microsoft.TeamFoundation.Build.Client.BuildStatus]::$_).value__
Write-Output "$Name = $Value"
}