Setup iSCSI Target

This info was extracted from and moved here for my convenience.  This was the simplest set of instructions I found that worked.  For more information please visit the link above. # create a physical volume [root@dlp ~]#  pvcreate /dev/sdb1  Physical volume “/dev/sdb1” successfully created # create a volume group named “vg_target00” [root@dlp ~]#  vgcreate -s 32M vg_target00 /dev/sdb1  Volume group “vg_target00” successfully created # create a logical volume named “lv_target00” [root@dlp ~]# lvcreate -L 80G -n lv_target00 vg_target00 Logical volume “lv_target00” created [root@dlp ~]# yum -y install scsi-target-utils [root@dlp ~]#  vi /etc/tgt/targets.conf # add at the last line # if you set some devices, add – and set the same way with follows # naming rule : [ iqn.yaer-month.domain:any name ] <target> # provided devicce as a iSCSI target backing-store /dev/vg_target00/lv_target00 # iSCSI Initiator’s IP address you allow to connect initiator-address # authentication info ( set anyone you like for “username”, ...(Read More)

DevOps User Stories

These are common user stories related to DevOps that were discussed in a LinkedIn discussion here.  I have repeated them in this post for my convenience and to make them a little more readable.   Some I agree should be on the list and others I’m not quite sure about.  Please refer to the original thread for details. Developer As a developer, when starting with a new company, I want to be able to be up and running (full working environment) in less than 1 hour. As a developer, when I need to perform a very small (i.e. cosmetic) change, I want to be able to deploy it in less than 1 hour. As a developer, I want to understand the operational environment into which my application will be deployed. As a developer I need to understand operational requirements for my application (not just user requirements). As a developer, I ...(Read More)

Strategic Reuse

Community managers have a tough job. They deal with lots of different stakeholders trying to find that elusive “middle ground”. They incessantly cheer on community activities and push adoption of collaboration best practices; but when it comes to validating their position through tangible and quantifiable metrics it can sometimes seem daunting. Is the best measure user participation? How about community size? Each of these seem like great things, and they are, but typically organizations don’t have a lot of tolerance for soft measures that don’t directly impact the “bottom-line”. Recently I have been working to identify ways in which organizational performance gains can be tied to community activities. Since my current position involves helping large organizations increase performance from their development teams, I started first by looking at something that may seem far removed from community, knowledge reuse. Why reuse?  The reason I chose to build my case around reuse ...(Read More)

Building the ngx_postgres Module on Debian

I stumbled across a nifty little module for nginx calledngx_postgres.  It allows you to access a Postgres database directly through nginx and HTTP with little more than a configuration file that creates a REST mapping to your tables.  Interesting idea so I thought I’d give it a spin and see if it could be useful, however there were a couple of “gotchas” in setting it up that I thought I’d document. First adding modules to nginx requires recompiling nginx so you’ve got to get your hands a little dirty to get it going.  I’m currently running Debian 6 in a hosted environment so I’ll give you the blow by blow based on my config. Build Process The first thing we’ll do is cd to /usr/src and grab the source for nginx by issuing the command… cd /usr/src/ apt-get source nginx Also make sure you have the following packages installed… fakeroot ...(Read More)

Celery and Twistd

I’ve been working with Celery, Twisted and Cyclone recently on a side project I have going on, however the integration between Celery and Twisted is not ideal for asynchronous programming which prompted me to jot down some notes for what I’ve worked out.  Hopefully this will be useful to someone, also if anyone wants to offer a better way I’m all ears  . Celery has some built in methods to allow you to check the completeness of a remote job by calling the successful() method on a returned AsyncResult object.  For example you can do something like this… From Python interpreter…  (BTW, the add task as a sleep in it for testing purposes) >>> from celery.execute import send_task >>> result=send_task('tasks.add', [4,5]) >>> result.successful() False >>> result.successful() False >> result.successful() True >>> result.get() 9 So the question was how to wrap this Celery mechanism in something I could use from Twisted and Cyclone. Here is what I ...(Read More)