I’m not a full-time system administrator and my knowledge is really limited in this domain, especially when it comes close to hardware. But I need to re-install several servers in a data center without physically accessing them. They’re using CentOS 6 now, and I want clean installs of CentOS 7.
I started looking into Cobbler. To avoid making the physical servers inaccessible through network, I played a while with Cobbler in some VirtualBox VMs in my MacBook and here are some notes.
svnsync, like its doc says, is the Subversion remote repository mirroring tool. We may need to have a mirror for backup, or for faster checkout/update in a remote datacenter.
There are lots of documentations and articles about how to set up a mirror using svnsync. But in a situation that connection between mirror and master is really bad, svnsync fails frequently and leaves the mirror locked. Then we have to manually unlock the mirror repository to get it recovered.
Is there an alternative? Short answer – YES:
Getting compiled binaries is easier but sometimes it just isn’t a choice. It was 2007 when I last compiled subversion, it was still 1.4. I remember that I had a tough time figuring out the apr/apr-utils compatibility issues, and installing neon.
Now it’s 1.8. The new version deceptively gave me an impression that things has become much easier – on a CentOS 6.3 box it compiled, installed and worked with Apache 2.2 (installed by yum) perfectly! I didn’t realize it until I started checking out a repo from it. The checkout was successful but with a tiny warning – post commit FS processing had error: Couldn’t open rep-cache database.
This message was also deceptive. It made me think of permission problems. But it turns out to be a sqlite3 issue! It has the same cause with another problem – when I tried to checkout the repo on the svn server itself through file protocol, it failed with this message: SQLite compiled for 3.8.2, but running with 3.6.20.
Install with sqlite3
Since the sqlite3 version shipped with CentOS was lower than required by subversion, I downloaded the sqlite3 amalgamation, compiled it, and copied the binary and header files to correct locations. Then the configure script stopped complaining about it. I thought that fixed it but obviously it didn’t.
The correct way of installing subversion with the correct version of sqlite3 is like this:
HTTP support for client
Later I noticed that the svn client didn’t even support HTTP.
Now subversion uses serf as client HTTP library.
To compile it, you need a build tool called scons. Then just follow serf’s README file.
After upgrading Evernote to version 5 on Mac, I found that they completely revamped the interface with a new sidebar and a new shiny editor. It looks more beautiful but I felt confusing because it’s too different from last version.
The first thing I did was to close the guide and switch to the old style snippet view. This way it looks a bit familiar to me. But the new sidebar is nearly useless. I used to switch to different notebooks from the old sidebar because there’s a list of all notebooks. Now the new sidebar only lets you choose recent notes, and switch among notes, notebooks, tags and other views. If you want to switch to another notebook, you have to click the notebook title above the notes list – one more click!
Recently my organization started to use Trello to track our projects. We already had many tools to help manage our ongoing/planned projects and related issues. We even developed several tools ourselves to do various jobs such as time tracking, request queue processing, etc.
I was a little resistent when they let me put my projects into it. With so many tools messing my mind, I don’t know where to look for information that matters. But Trello is the kind of product that you can’t help using, as it presents a brand new way of project management, tracking and team collaboration. Like iPhone reinvented smart phones. Like flickr introduced a new approach to online photo albums.
We have a test environment with real user data, and during testing, the servers may send emails to these real users. But we definitely don’t want our users to receive those test emails, since they’ll be totally confused and get a bad feeling about our service. Yet we want the emails sent to our company’s domain to be delivered successfully, so we can test with our work email address.
One solution is update the database and change all user emails to dummy ones. However this requires one more step each time the development database is refreshed with real data.