daily minutia on Twitter

  • via @BikeCrave: A tribute to cycling legend Laurent Fignon who lost his battle with cancer. http://bit.ly/apec9n. What a legend. 2 days ago
  • Classy. I just hand-poured washer fluid on my car with the wipers going because shit is broke. 2 days ago
  • RT @jvaleski: New Blog Post: "Exits; You're Doing it Right" - http://bit.ly/dmaSvK (Nice post, & I could not agree more with your examples.) 2 days ago
  • @CaroDonahue Happy Birthday! As a convenient gift, you should keep my Spiritual Gangster T-shirt. You are a much better wearer of it than I. 2 days ago
  • Could not have had a better morning. Why, you ask? Because @jmalan dropped off some lemon blueberry scones. Thanks love! They were great. 2 days ago
  • More updates...

I'm Ingrid Alongi, a developer in Boulder, Colorado. I'm a co-founder at Quick Left, a Web Engineering company. I used to be a software engineer at Gnip where API integration and social media data were my world. Prior to that, at OneRiot, I wrote web applications using Java/Wicket/CSS. I've got experience with CodeIgniter for PHP, but mostly use Zend with Doctrine when it comes to PHP. Got some JQuery too.

I've been in the web development/interactive agency world for almost 10 years, with most of my experience in building database-driven web applications (PHP, ColdFusion) for consumer facing clients (e-commerce, email marketing, advertising, cms, etc.). Lots of strategy, lots of driving traffic back the web site types of stuff. Oh, and managing an amazing team of developers.

I'm an electronic music snob, ex national level cyclist, I play violin and cello, and have an MA in Women's Studies. You can contact me at ialongi at yahoo . com. Or, mosey on over to the Quick Left blog to see what I'm up to.

SVN+SSH setup on MediaTemple DV Hosting

December 13, 2008, 2:46pm by electromute

A few months ago, I wrote a post about installing svnserve on DV hosting at Media Temple. It was a great quick solution to get started, but I really wanted to get to svn via ssh instead for the long term.

Rather than scour the Internet for how to do this (I’ve done it a few times in my career, but I’m no sysadmin), I sat down for lunch one day with Collin, who used to be a mighty fine sysadmin! Saved me hours of time, hopefully this will help some of you all too.

Keep in mind that you’ll have to check out your files from scratch, so you’ll want to make sure all of your current changes are checked in (or otherwise managed) before you get started on this project.

Log into your server. I have root access from ssh disabled, and you may want to consider doing this as well.

% su – root
% adduser joe
% passwd joe

I use the su – username notation to be sure the console session is refreshed. Now add a new group called svn that members will be a part of

% groupadd svn

Because we’re on CentOS, there are certain permissions that make the owner only having default permissions of the file, so we’ll have to deal with that here as well so that we can avoid permissions issues when users commit their changes to SVN.

% usermod -G svn joe

Take a look to verify, in the group file, that your user is added to the correct group:

% view /etc/group

You also want to verify that svn is the secondary group by doing this:

% su – joe
% id

You should see something like this:

uid=10004(joe) gid=10005(joe) groups=10004(svn),10005(joe)

Now you’ll set up the ssh keys. We’ll set up dummy keys for now because we’re going to copy the public key from our local computer, not the other way around. Make sure you are still acting as the new user.

% cd /home/joe
% mkdir .ssh
% cd .ssh
% ssh-keygen -t rsa

when it prompts you for a filename, enter id_rsa
when it prompts you for a password, hit enter, leave it blank, we won’t be using these keys.

Now, go back to you local computer and generate the keys again as described above, but this time use a password. If you already have keys, you’ll just need to copy them to the server.

From your local computer, do a secure copy. My keys happen to be named identity. Also note that I am renaming the keys to authorized_keys2 for this CentOS environment.

% scp identity.pub joe@servername.com:/home/joe/.ssh/authorized_keys2

Double check that the user can now log in properly without any trouble. Now to go back and change the permissions on the repository

% su – root
% cd /var/svn
% ls -la

You’ll want to make sure your repository has a group owner of svn and a user owner of someone in that group. Make sure you’re running as root here, and it never hurts to refresh the console using the dash notation.

% chgrp -R svn reponame/
% chown -R joe reponame/
% chmod -R 775 reponame/

Since the owner can read/write but the group can only read/view on the CentOS, we need to change the default umask for the user to avoid collisions:

% su – joe
% vi .profile

In the .profile file, add the following:

add umask 002

then reload the environment again by doing:

% su – joe

Now we need to make joe’s default group SVN:

% su – root
% usermod -g svn joe

Now refresh enviro

% su – joe
% id

You should see something similar to the following–notice the default group is svn now:

uid=10004(joe) gid=10004(svn) groups=10004(svn)

Now, if you’d previously been using svnserv, you’ll want to turn it off. Let’s start by viewing the running processes on the server:

% su – root
% ps aux

I had more than one instance running, so I ended up doing the following (do at your own risk)

% killall -9 svnserv

Double check that you can then check out, change and commit files. If you can’t, there is likely a permissions issue. Also double check that you can’t access the repository with plan svn://. If so, you may have not properly terminated svnserve. You will also want to clean up for yourself by making sure that you’ve removed any information from the passwd and svnserv.conf files in the /var/svn/reponame folder.

Cheers!

Tags: , , ,

   Read More »




Simple SVN setup on MediaTemple (dv) Hosting

June 25, 2008, 8:37pm by electromute

(UPDATE: I’ve posted a followup to this article here.)
I just got myself a (dv) account at MediaTemple and set out to install SVN. I found pretty much nothing in their knowledge base on how to do this. I do this task so infrequently (but yet often enough to care), that each time I have to re-familiarize myself with how to set up Subversion repositories. Hopefully this post will save us all some agony when it’s time again to set up a new svn repo.

Contrary to some other blog posts out there, the (dv) hosting package actually DOES include Subversion, but you have to enable it through the developer tools [A complete list of the developer tools you get can be found here].

I have a brand new server and nothing on it yet, so I’m comfy doing this cowboy style. However, if you are adding SVN to an existing server, consider purchasing a snapshot that will preserve all settings prior to starting this process. Unfortunately, the free backup won’t do the trick.

Here’s how to do it

First off, be sure that you have an account that has ssh privileges into your server. This could be your ftp account or another ssh user you set up for these purposes. This can be done in the Plesk control panel (process not covered here but can be found via the MediaTemple knowledge base).

Log into your MediaTemple Access Control panel at https://ac.mediatemple.net

Go to the overview tab

Click on your primary domain

Click “Root Access and Developer Tools”

Click “Install Developer Tools”

Now that your developer tools are enabled, you want to enable root access so that you can administer your tools.

In the same area of the account center, click Enable Root Access

Now you’ve opened up a can of worms enabling root access. One of the ways to contain those worms is to disable ssh for root as outlined here.

Next, ssh into your server using the user account created prior to starting this task and run the following command:

% su root

You will be prompted for the password you created when you enabled root access. You have to install and configure svn as root so that it has the correct permissions to write/save/generally do it’s thing.

Create a new directory at /var/svn

We’ll pretend our new repository name is called reponame but you can choose any name you want here and this is what you’ll do each time you make new repositories that are served from this instance of Subversion.

Run the following commands:
% svnadmin create –fs-type fsfs /var/svn/reponame
% chmod -R 777 /var/svn
% svn mkdir /var/svn/reponame/trunk /var/svn/reponame/branches

Please note that I did not use Berkeley DB (instead I used fsfs as noted in the create command above). I have not had good experiences with Berkely DB and avoid using it, no offense I’m sure there’s a place for it and good intentions behind it.

Next, you’re going to do a little editing so use your favorite command line editor (mine happens to be vi):

% vi /var/svn/reponame/conf/svnserve.conf

configure the following items thusly:
anon-access = none
auth-access = write
password-db = passwd
realm = My Repo Yay

(ok, not really sure what realm is for other than it’s cute and displays when you checkout, but if you know a secret awesome benefit, please share!)

Next it’s time to create the authentication piece. Time for more vi

% vi /var/svn/svnreponame/conf/passwd

Each name = password pair must be in plain text. There are ways to set this up so that the passwords can be encrypted using Perl’s crypt but that is not covered here as this is the “Simple SVN setup” :-)

Finally you need to start your svn daemon. Please note that there are other options for svnserve and you should familiarize yourself with the documentation just to be sure.

% svnserve -d

So, there you have it. You have a simple Subversion setup on your MediaTemple (dv) server.

You can check out (or run similiar svn commands) from your local machine thusly:

% svn co svn://domain.com/var/svn/reponame/trunk

Note that your domain.com is yours and could also represent a subdomain if you know how to configure that.

There are lots of other fine tunings and tweaks you can do to fit your needs, but this is the Simple svn setup, no? Tools like Eclipse’s SVN plugin make it even easier to utilize this method in terms of password caching and the like.

Lastly, the grad school training in me wants to cite sources, so here you go:
Version Control with Subversion reference
gregsidberry.com
tonyspencer.com
MediaTemple.net (dv) Developer’s Tools and Packages Listing
An Introduction to the Root User
How to disable ssh for root user
MediaTemple backup options

Tags: , ,

   Read More »