New Business by Eddie Jennings

A good bit has happened in the month of September.  The biggest news is that I formed an LLC named Eddie Jennings Services, LLC.  It's been a long time coming, as my saxophone teaching and freelance IT projects have become a steady part of my life.  I felt it was wise to do this at the very least from a liability standpoint, as well as, it creates a clear boundary between my business interests and personal interests.

With this LLC there will be a few changes.  First, eddiejennings.net will remain my personal site, as that was the point of it way back when it was inspired by wilwheaton.net.  Right now it's been serving my personal needs as well as providing information about saxophone lessons and IT services.  My plan is that this actual site (hosted by Squarespace) will be transformed into the LLC's site (since I've just recently renewed the hosting for another year).  I'll then create a separate site for eddiejennings.net.  I'll try to export as much blog stuff from here as I can, and possibly dig some blog stuff up from the past.

It's been an exciting ride forming the LLC.  I'm blessed in the fact that I'm not under any kind of timetable and deadline to get stuff going, as this is an LLC for my side projects, but who knows?  It may turn into my full-time project.

Exploring KVM - Day 2 - Console Graphics by Eddie Jennings

Yes, it's been a while.  Life got in the way; however, I'm back on track.

The last time I worked with my KVM experiment, I couldn't actually see the console.  After some Googling I discovered the issue was with using Spice as the graphics type.  Unfortunately, it's been two weeks since I discovered this, and I can't find the link to share.  The fix was to change the graphics type to VNC.

kvmgraphics.png

This doesn't actually solve the problem, as Spice appears to be default for KVM; however, for the short term, changing to VNC.

My next task is to look into Spice to see what needs to be done in order for a remote system (my laptop) to be able to see the console using Spice.  I suppose the next question is "do I really need this?"  It's a valid question as I'll likely be using SSH for server management, but I still say "yes."  What if I cannot connect to the VM with SSH?  I need to have some way of accessing it.  Also, for the OS install, if I wanted to do that using the GUI, which at this point is my only option, as I haven't learned to do an all text-based OS install for CentOS or Fedora, I have to have some kind of console access.

Exploring KVM - Day 1 by Eddie Jennings

Finally!  I had some time today to start tinkering with the KVM Hypervisor on Fedora 26 server.  There were successes and failures tonight, which I expect to have many of both during this journey.

First impresion:  I WAS ABLE TO CONNECT WITH THE HYPERVISOR MANAGER IN UNDER 30 SECONDS!  Now, this may seem trivial, but trust me, it's not.  Here is the exact procedure I followed to connect to my KVM server.  On my Korora 25 laptop:

  1. Run dnf install virt-manager
  2. Open the Virtual Machine Manager
  3. Click File > Add Connection and input the appropriate information

That's it!  That's all!  Hyper-V is not as kind.  Granted it's much easier to connect to your Hyper-V server with Hyper-V manager if both the client and server are part of a domain; however, if you aren't, then it's a giant pain in the ass.  It's less of a pain if you're already aware of resources like this.  If not, then you get to work on some Google-fu.

Also, I must mention that in order to manage Hyper-V, I have to sit at my Project 1999 computer (Windows machine).  I can manage KVM from the comfort of my old recliner with my Korora 25 laptop.

Unfortunately, this is where the successes begin to end for today.  First I realized that despite having two 2 TB drives in RAID 1 on my lab server, df -h showed that root was mounted on 15 GB of space.  I suspected there would be learning via yak shaving with this project, and here's the first step.  I need to create more space.  After digging through some lvm man pages and seeing useful information from lvdisplay, I tried this command with success:  lvextend -L 500G -r /dev/fedora/root (from the LV path information from the lvdisplay command).  There's probably a better way to do this, as tonight was my first time ever messing with volume sizes outside of the OS Installation GUI.

Now that I have enough space, I used sftp to get my Fedora 26 Workstation ISO to my KVM server, and I'm ready to make me a shiny new VM.  I used the Virtual Machine Manager GUI to setup the VM (functionality is similar to Hyper-V).  I start the VM, a console window appears, and I'm eagerly awaiting the installation GUI.  Instead I'm met with an OpenSSH box asking for my credentials for the KVM server.   This seems odd since I'm already connected to my KVM server; thus, I was able to configure a new VM, but I thought "whatever, maybe it's ust a KVM thing that requires me to authenticate again to view the console of a VM."  Well, after 10 tries of feeding it 100% correct credentials (as in I put my credential in a text document, copy / paste into the terminal when making an ssh connection to my KVM server and it worked with no problem, yet this dialogue box won't accept it), I close the dialog box.  So now I hav a VM that's running, but no way for me to access the console.  After closing and reopening the Virtua Machine Manager, if I were to try to connect to the console, I'm not met with the authentication dialogue, bur rather a "Connecting to the graphical console guest" message that never times or errors out.

Despite this failure to successfully connect to the console of a VM, today was a success both with finally getting around to touching KVM, but also a success in figuring out how to extend a LVM volume.  What's next?  Fix the above problem of course.  I'm tired now, but I'll take to the Google to see if I'm doing something wrong to cause me to not be able to access the console.

Only 24 hours in a day by Eddie Jennings

Ok, f() r3@lz, I'll get to KVM tomorrow (Wednesday).  There was a small block of time to which I could've worked with it; however, I needed some relaxation / vegative time.  I'd rather not dive into something unless I really have some time to devote.

So what happened today, you ask?

First, my current contract project is to write an arrangement for the Pinckneyville Middle School Symphonic Winds that is a tuba feature with band accompaniment.  I made great strides with that and completed the first official draft of the piece.  I've been working with Roland Ventura to make sure the piece meets the needs of his ensemble, and finally a draft has been produced.  It's been a fun process so far, and I'm looking forward to seeing it through completion.

Second,  E-mail.  It never amazes me how an hour of time can evaportate by simply catching up and responding to E-mail.  I can remember during my band directing days, I had to read and / or answer probably 50 E-mails per day.  I'm sure this is far less than what some professions require, but it still seems to take far more time than intended.

Finally, my relaxation time.  Since my cleric has a full set of keys for the Plane of Sky, I decided to hop on Project 1999, and help my guild for the last bit of tonight's Sky raid.  If you play on Project 1999 look for me in game on Serous (my wizard) or Sanabo (my cleric).

I'm looking forward to tomorrow, between a gym training session, and needing to generate some invoices, I think I'll finally have some time to devote to KVM.

Burning Ninja Pears Like There Is No Tomorrow by Eddie Jennings

I know, I know.  Everyone was expecting Exploring KVM - Day 1.  Well, that's coming either tomorrow or Wednesday.  I was derailed a bit this evening.

First, there was Peachtree Symphonic Winds business.  With the help of Allen Barbee and his son Casey, I started the process of sorting music and stuffing folders for the 2017-2018 season.  Rehearsals start next week, and I want to get this done before DragonCon.  Then some of the PSW board members were on a call to discuss grant applications.

Then, there was what has been my favorite iPhone game for the last year:  Naruto Ultimate Ninja Blazing.  This game has brought me hours of entertainment, and also saw my first ever in-app purchases.  One of the nifty things about the game is content will come and go.  That way you don't have the exact same game over and over again.

One such piece of content is the Phantom Castle stage.  It's become one of my favorites.  My goal (usually) is to be ranked in the top 100 before the game ends (usually lasts a week), that way I'll get 6 of the featured character, so I can use the character at the lowest cost.

This was one of my better runs.  I had 60 something wins before I had a loss.  In fact most of my losses (I think I had 15 or so) was due to a way over-powered Sakura character.  The story though is the race to the end.  Phantom Castle closed at 23:00 EDT on 8/28/17.  Because of being busy at work today and the aforementioned PSW stuff, I was rank 130-something at 21:45 EDT.  You can recover one Phantom Castle stamina (each match costs 1 stamina) every hour.  I had three available (the max).  Well, in order to get into the high ranks, you have to spend ninja-pearls (the things you can buy for actual money) to replenish your Phantom Castle stamina.

I had used several ninja pearls through the week, due to having a large stockpile of them, but here at the end, I was burning them like there was no tomorrow.  I even had the game on 2x mode, so I could get through matches faster, striving to get below 100.  The rank seems to not budge, but finally, it started to lower.  At about 22:20 I had finally broken the barrier.  I still had several ninja pearls left, so I kept going, and going, and going.  With 24 seconds to spare I started my final match for this run of the Phantom Castle.  I finished just before maintenance began, so I hope it will count.  At last look my rank was 19.

Tomorrow, I have a raid with my guild on Project 1999.  If I'm not too tired after the raid, I'll dive into KVM, but it'll most likely be Wednesday.  If you're a fan of Naruto, check out that game.  You 100% do not have to spend money to play it, but, in my opinion, it's nice to support the developers every now and then.

Exploring KVM - Day 0 by Eddie Jennings

I've decided my next project for my home lab will be centered around KVM.  My goal is pretty simple:  install, configure, create some VMs, and take / restore snapshots.  A secondary goal is chronicle what I do here.

I've just finished Game of Thrones, and I'm tired, so tonight will be some day 0 tasks.

I am starting from scratch with my Dell R310 server.  I made a new RAID 1 array of my hard drives (Perc H700 is the RAID controller).  And I have a bootable USB stick of Fedora 26 server.  I made the bootable USB stick using my Korora 25 laptop and the dd command.

A side note, I need to dive into Squarespace a bit more (or use a different platform as this is one of convenience from a few years ago) do I have dd appear as a code snippet, rather than the entire paragraph.

Moving on.  I used the GUI installer for Fedora 26 server and chose the Headless Virtualization option from the installer.  I went ahead and configured networking in the installer as well as an administrator user.  I let the installer handle the partitioning and formatting of the hard drive.

Tomorrow, Day 1 will be seeing if I can create a VM.  Methinks there will be some yak shaving, as this is literally a system with just an OS installed.  Also, I'm doing music library tasks for the Peachtree Symphonic Winds after work, but I still have the goal of creating one VM.

Reflections on MangoCon 2017 by Eddie Jennings

Well, I failed my plan to blog at the end of teach day of MangoCon (in addition to trying to do at least a post a week).  Oh well.  At least I'm writing now.

I became involved with the MangoLassi.it community in October (2016).  Since then, I had my eyes opened.  The community has given me clarity about what I'm supposed to be doing as an IT professional, which allows me to better assess what I want to do / if I want to continue following this path.  In addition, I've had many technical questions answered and received suggestions on what I can do to improve my own skill set.

How does this apply to MangoCon?  At MangoCon I finally had the opportunity to meet many of the people who have helped with the above.  I had the opportunity to discuss some situations specific to IT and where I work.  Most importantly, I had the opportunity to listen and process information from experts.  I learn well with the auditory mode.  I like to hear information, which allows me to at the same time think about it.  I was that odd kid who enjoyed lectures :).  MangoCon was paced perfectly for me and the information presented was relevant (VoIP with FreePBX, Sodium project, functional budgeting with IT, practical suggestions for security).

MangoCon 2017 - Day 0 by Eddie Jennings

I'm in my hotel room at the Holiday Inn Downtown Rochester looking forward to the beginning of tomorrow's conference.  This will be a great opportunity to meet folks (face to face rather than just at mangolassi.it) and learn.  Of particular interest will be the sessions around VoIP and FreePBX, which directly helps with a major project I have going on at work.

The rest of the conference is going to stoke the inner flame of wanting to learn.  This flame hasn't been extinguished, but it's nice to give it a breath of life every once in a while.  Becoming a part of this community has bar-none been the best thing that has occurred to date in my IT career (notwithstanding landing my first IT position -- thanks A Closer Look!).  I've told folks that I've learned more about IT as a profession in the last nine months (since involving myself with MangoLassi) than I have in the previous three years.  This isn't a slight on my previous three years of learning, but rather, a compliment to how relevant everything is that I've learned from the MangoLassi community.

Those who know me well, know that I wish to "learn all t3h thingz!"  Unfortunately, a lifetime isn't enough time to learn everything.  I've pondered and toyed around with ideas as to where I want to focus my next phase of learning.  I believe that path is going to be toward RHEL administration.  I've become quite interested in learning how to administer systems with OSes based on Linux.  I've also learned and realized just how much of the world's IT infrastructure depends on it.  Of course in six months I might have found another interesting path of learning, but I think this one (the RHEL path) will be quite beneficial.  This, of course, doesn't mean I have no interest in running Windows-based systems; however, I have a feeling the concepts and such I'll learn following the Linux path will transfer greatly to Windows administration.

Ending this stream of consciousness:  My goal is to do a post for each day at MangoCon.  It'll serve me well to summarize the information which I've acquired as a means to process it.  It'll serve you, my audience, by receiving one real, actual human's opinion of the conference, which you can use to help decide if you want to participate in the future.

Busy? by Eddie Jennings

I'm tired and want to sleep, but I figured I could contribute a post before I retire for the night.  Perhaps my mind is fatigued, but I was going to write about how busy I've been, but come to think of it, I can't enumerate exactly what's eaten my time for the last couple of weeks.  I have a feeling it's something along the lines of death by one thousand cuts, which for me would be one thousand little small timesinks.  So rather than dwell, let's look forward.

I'm quite excited about attending MangoCon next week.  This will be my first IT In-service / conference since the career change.  I became involved with the mangolassi.it community in October, and it has been a great experience.  I feel like I've learned more about my craft in the last nine months, than I have in the last three years.  This learning has been more conceptual, rather than raw skills.  Now, I've acquired some bare-to-the-metal knowledge as well, but after joining and participating I feel more knowledgeable about what IT actually is, and how I fit into the world.  Quite an empowering feeling.

Well, I lied.  One thing did some to mind in the realm of "busy."  I've had a successful deployment of a Discord server for my guild on Project 1999.  Learned a good bit on the fly, and if you're in need of a good platform for group chat and group voice chat, Discord is polished and reliable.

More Adventures in VoIP by Eddie Jennings

No, I haven't just worked with VoIP for past seven days.  Other things have to be accomplished as well; however, today was a nice breakthrough from 24 hours of struggling with my lab.  I'm currently comparing two SIP providers: Twilio and VoIP.ms.

The set-up for VoIP.ms was trivial, and following Jared Busch's guide, it worked like a charm.  Twilio, not so much.  However, I really think my struggles were more about me not following the documentation to the word, as well as needing to understand how dialed numbers can be manipulated by the trunk.

In Twilio's documentation, it says that you must have a + in the outbound dial prefix.  So, I had that configured, and kept receiving an "all circuits busy" message.  Further in the documentation, it mentions the goal is to have the number following the E.164 standard.  For me, this means adding a 1, even though the call I'm making isn't truly a long distance call for me.  So I had to make the outbound dialing prefix a +1.  Now, there's probably a more eloquent way to handle this, as I'm sure my users will instinctively dial a 1 when calling a "long distance" number, and having +1 in the prefix will make the resultant number be +11, but for right now, the goal was simply "be able to terminate a call with FreePBX and Twilio"

Another aspect of the documentation that I learned must be strictly followed is that the outbound CID must follow that same numbering standard (E.164).  So I had to configure it to be my number from Twilio with +1.  Not configuring that resulted in the same error message.

The final thing I overcame was a failure of attention to detail.  As I was troubleshooting why the trunk seemed to be failing for terminating calls, I kept seeing an error in the Asterisk logs about a URI being invalid.  Well, I checked my configuration, and everything looked to be in order.  Spelling was correct.  Hyphens and dots were in the right places.  It wasn't until I noticed what seemed to be an extra space between the URI listed in the log and the error message.  So after cursing to myself, I checked my FreePBX configuration again, and saw that I did have an extra space in SIP server URI configuration for my trunk -- got to love cutting and pasting.

Other tasks I tried today included configuring the FreePBX trunk to use CHAN_SIP instead of PJSIP, since PJSIP seemed to be "failing".  I did this because the Twilio documentation example appeared to have similar settings to that of FreePBX's CHAN_SIP configuration.  After a while (and time lost due to my eagerness and not following the documentation closely enough), I was able to terminate calls -- discover all of the above things about dialing patterns and CID configuration.

So what's the result?  The result is I was able to successfully originate and terminate calls with Twilio and FreePBX using both PJSIP trunks and CHAN_SIP trunks.  Time could've been saved had I followed the documentation closely during my initial attempts to get PJSIP working.  On a positive note, the troubleshooting I did was useful in it forced me to narrow problems down step by step as well as showed me exactly how some pieces worked (especially dialing patterns), so overall today was a win.

A Little Break by Eddie Jennings

After spending a chunk of today crunching some numbers to estimate costs between SIP providers, I decided to take a break from my PBX project tonight.  Instead I spent some time playing Naruto Shippuden:  Ultimate Ninja Blazing.  One of my favorite aspects of the game is the Phantom Castle.  Last Phantom Castle run was my best.  I ended up ranked 221, much to my surprise.  I also did my first ever in-app purchase for a game (my way of supporting the devs).  I've had a few losses (some of which from my own miscalculation; some of which from phone calls putting my ninjas in poor positions) so far, but I'm confident I can beat 221.  Hopefully it'll replenish the ninja pearls I have to spend.

I also watched a bit more of House of Cards.  After several recommendations, I finally started watching it a week or so ago.  I'm now into season two, and I must say, it has exceeded expectations.  The last Washington-like show I enjoyed was "The West Wing."  HoC ranks with it.  If I had to pick a favorite character to date, it would be Doug Stamper.  He functions in a way that I admire -- just get the job done.

Test Call Successful! Wait, what?! by Eddie Jennings

So, I've discovered that a 512 MB of RAM instance of Vultr seems to be a bit small for FreePBX.  I started running into "unable to allocate memory" errors when making configuration changes.  I also found that almost 90% of the memory was being used at all times.  I made a new instance with 1024 MB, and I haven't seen the memory allocation errors anymore.

So, I was able to place and receive some test calls!  Yay!  I was using Zoiper as a softphone application on both my work Windows laptop and my Korora laptop at home.  However, a few minutes later, all calls were now failing.  Inbound calls to my number would receive a busy signal, and outbound calls received the message "The number has not yet been assigned."  I double checked my configuration in FreePBX and all seemed like it was accurate.  The trunk even showed as online on the dashboard.  Here's the curious thing though.  The state of my voip.ms account showing "registration not found" shortly after making a call.

This makes sense, as restarting my PBX temporarily solved the problem, as the trunk would've had to re-register with voip.ms.  Something was intefering with maintaining my PBX's registration with voip.ms.  I found this article on voip.ms's wiki, and changing the expiration setting on my trunk to 120 seconds seems to have solved the problem.

FreePBX Experimentation by Eddie Jennings

This weekend, I decided to spin up a vultr instance of FreePBX.  The goal of this project is to learn to install, configure, and administer it in order to eventually do the same for my company.  Simply because other things got in the way, I didn't get a fully functional PBX going.  That is fine, as the goal is to try, break, and learn.

Here are a few two I've learned / discovered along the way.  First, check out this guideJared Busch does a great job at giving on a basic step-by-step, since once you install FreePBX, it can seem a bit unclear about knowing what to do "next."  Second, realize while this is CentOS under the hood, it's customized for FreePBX/Asterisk.  yum update -y works fine, as do most other commands; however, when I did a test of creating another user specifically to not have to use root to do tasks, I ran into some problems.

The Blog is Back by Eddie Jennings

Well, sort of.  Just like with any blog I've done in the past, the amount of content be related to the amount of time and energy I have to create the content.  I'm going to be doing a number of little projects to get my feet wet in CentOS / Linux administration, so I figure I'll write about them.  Perhaps others can benefit from my successs and failures in this journey.