Docker and MUMPS

After months of dealing with oddly written software in my home lab, I’ve finally jumped on to the container bandwagon. OK OK I know, I’m about 9 years late on this. At work I had looked in to running Docker on Windows but it wasn’t very beneficial for the Windows platform since the images were huge and trying to access SMB shares would have been super difficult, so my excitement about Docker died there.

In my home lab, I had I wanted to install an application that only had two methods of installation. I could either use Docker… which I didn’t really know much about or I can use the “Snap” install. Being that I was running Debian, I elected to go for the snap install. What I didn’t know at the time that while that version that snap installed was current, it wasn’t going to be current for long. Eventually the app started yelling that it had an update, but I wasn’t going to be able to update it via snap, as the package wasn’t really being maintained. Then enters Docker. I maybe waited a couple of months for the snap package to get updated and then finally gave up. I installed Docker and hit Microsoft Copilot with a couple questions about how to get a docker container running and have it run automatically at boot. Copilot started me off with a docker-compose.yaml file and I ran from there. I decided to create a directory called /opt/docker and dumped my docker-compose file there. Then I created an /opt/docker/<app-name> directory and moved all of the data and config files from the original app to that directory and configured the docker-compose file to mount the respective sub directories to their counter parts within the container image. I stopped the original install and then started up docker compose. BAM. My app was updated to the latest version and everything was working as well as it was before.

This led me to converted all of my other open source apps to using Docker compose using the same directory setup so that I’d know where the config files for all of my apps were rather than the weird location some of them would get placed. I also added a service to the Docker compose file so that it’d launch an app called watchtower that would look for updates to my images and automatically updated them. It’s been great and has helped maintain a heavily used part of my home lab.

Lately TikTok has been trying to teach me COBOL, which I found interesting and first and actually thought maybe I’d give it a try. While I was thinking of old programming languages that few people admit to writing these days, I was reminded of the MUMPS programming language that I was supposed to learn when I was in college. So I decided to return to trying to figure that out. In college, I managed to get through the class, but I could never really wrap my head around the language. After spending just a couple nights playing around with it, it hasn’t been too bad to use. I’d say its a little quirky, but I think that has to do with it originating in the 60s. I’ve actually had some fun playing with it. I even wrote a fake “Patient Information System”… So really, its a not so glorified address book lol

When I wanted to start looking at MUMPS I decided I didn’t want to have to install a bunch of dependencies for it and since it doesn’t have a package available I opted to try to install Dr. Kevin O’Kane’s version in a Docker image. I figured that’d make it a little more portable and its worked pretty well. See my MUMPS page if you want to get a hold of those images.

Well, that’s all I have for today, have a good one all.

Posted in Uncategorized | Tagged , , | Leave a comment

Well, over 9 years without a post…

Hi everyone,

Not really sure who has actually paid attention to my blog (obviously nobody in the last 8-9 years since I haven’t posted) but thought I’d post an update.

A lot has happened. I’ve been through 3 job changes (and a promotion!), I’ve been married and adopted 2 boys.

Do I still work on Drupal? No, after my first job change since posting about Drupal I spent a little over a year working on the PeopleSoft platform for the organization I worked for. After that position, I moved to another part of the state and took a job in the neighboring state just becoming a Windows Server Administrator then eventually transitioning to the Linux Server admin team and now… I work on both since I had a huge issue letting my Windows skills fade away. But hey, I work for a great company and have a supervisor that ‘gets it’.

What do I focus on these days if I’m not Drupal-ing or PeopleSoft-in? Well, when I was in the PeopleSoft job I had the opportunity to take a Puppet training course on campus where I became obsessed with a technology like I never had before. After moving to my new job in another state, they really didn’t have any sort of configuration management system for their Windows Servers. The Linux admins had been using Puppet Enterprise, but the Windows Admins were doing most things manually, with some things done via Group Policy. About 4 months in, I installed the Open Source version of Puppet on a CentOS vm and went to work writing Puppet code and facts to start managing the Windows environment and put in the request to extend the Puppet Enterprise environment for the Windows environment. Eventually the licenses were bought and I’ve been running with it ever since!

Do I only use Puppet Enterprise? I’ve been super fortunate in that I’ve had the opportunity to leverage other Puppet products such as Continuous Delivery for Puppet Enterprise and Puppet Comply. At this point in my career I am obsessed with automation. Sometimes I like to joke that my best quality as a sysadmin is that I’m lazy. I like to think of myself as the Puppet lead at our company, which probably isn’t far from the truth.

What are my plans for the future? As a strong support of Puppet, I want to start posting more about problems, solutions or whatever I do with Puppet, or start a podcast of some sort to talk about systems automation. I don’t really have a clear idea, but I hope at a minimum I will start posting on my blog more to discuss my experience.

Have a good one all!

Posted in Uncategorized | Leave a comment

Undefined index: distribution_name when upgrading Drupal 6 to Drupal 7

Wow, its been a while since I lasted posted.

Over the last year and a half I have been upgrading a lot of Drupal 6 sites to Drupal 7.  I have found many times that different sites like to throw different errors (or sometimes now errors) after upgrading.  I have been plagued by one specific error on a number of sites.

Notice: Undefined index: distribution_name in drupal_install_profile_distribution_name() (line 207 of /var/www/drupal/includes/install.inc).

Alas, after a year of searching, I finally found the solution at Drupal.org .  Apparently what happens in the upgrade, sometimes, is that all of the installation profiles in Drupal are disabled.  Why?  I have no idea.  If you were to look in install.inc, you would see the following code.

<?php
$profile = drupal_get_profile();
$info = system_get_info('module', $profile);
return $info['distribution_name'];
?>

So with the profiles disabled, ‘distribution_name’ doesn’t exist.  So what do you need to do?  Well enable a profile of course!  Only one problem, there is no way in Drupal to enable a profile without getting in to the database.  To fix this, you will need access to mysql or phpmyadmin and you’ll want to run the following SQL command

UPDATE system SET status=1 WHERE name='standard';

This will reactivate the Standard profile in Drupal and your distribution_name error should disappear.

Posted in Drupal, Site Development, Technology | Leave a comment

Modules to Disable When Upgrading Drupal 6 to Drupal 7

With the number of Drupal site upgrades I have been working on (using Drush site-upgrade), I thought it would be handly to compile a list of modules that should be disabled before attempting a site-upgrade. These are all modules that could cause issues in the upgrade process.

 

  • Rules
    • While there is a D7 version of this module, there is no upgrade path from D6 to D7
  • Node Hierarchy
    • This module D7 version is just buggy and development has slowed dramatically.  I recommend finding an alternative to this module.
  • Masquerade
    • I had a site-upgrade process start shooting errors like crazy when I had this module enabled.  So its probable a good idea to disable it.

I’ll continue to add more modules as a find them causing issues.  Of course if you’re disabling these modules, it may be a good idea to delete them as well.  Why save a module you can’t use?

Posted in Uncategorized | Leave a comment

Backups: They’re Important for Everyone

Backups are one of the most important responsibilities that home users neglect.  Most of the time this is because home users don’t realize how important their data is until either their hard drive crashes, their house starts on fire, or their computer is stolen.

Types of Data

There are many different types of data that home users should backup.  A lot of home users don’t think backups are important because they don’t have financial or tax information on their system. This is a completely false assumption.  Data such as music, home movies, and college papers should be backed up regularly.  I have a friend whose laptop was stolen out of her boyfriend car and I’m sure see lost several papers that were due. Recently one of my family members had their computer stolen, and has probably lost all of their iTunes music.

What a backup isn’t…

There is a common misconception that moving (not copying) files to an external drive is a sufficient backup.  Actually, its not a backup at all.  As long as your have 1 copy of a file, you don’t have a backup.  In order to have a real backup, you must have at least 2 copies of a file.

3-2-1 Rule

One thing I’ve seen posted all over the internet is the mention of the Backup 3-2-1 rule.  This is probably the most useful rule you can remember when it comes to backups. The 3-2-1 rule states that you should keep three copies of any important files, that includes the primary copy and 2 backups. You should store your files on two different types of media, this could be hard drives and optical media such as blu-rays or dvd’s. Finally, 1 of your backups should be backed up offsite.

How do I set it up?

It’s always a good idea to keep a local and offsite backup.  For a local backup, I’d recommend purchasing an external harddrive to keep plugged in to your computer.  If you have Mac OS, you can use Time Machine to keep local backups of your system, otherwise you can download a free program called Crashplan that will let your perform backups without much configuration on your part.  Just make sure its backing up to your usb drive.  As for offsite there are multiple services that will take care of automatically backup such as Crashplan and Carbonite. I’ve only ever used Crashplan so I’ll speak to that.  For $50 a year, you can backup all of your data to Crashplan’s server, or else if you have a friend that has a lot of extra storage space that they’d be willing to share, if they install crashplan, you can backup to their system securely. Carbonite will allow you to backup to their servers for around $60 a month I believe.

As usual, post any questions or comments below.

Posted in Technology | Leave a comment