Archive

Category Archives for "blog.scottlowe.org"

The Linux Migration: Virtualization Provider

As part of my migration to Linux as my primary laptop OS, I needed to revisit my choice of virtualization provider. Long-time readers probably know that I was an early adopter of VMware Fusion, starting way back in 2006 with the very first “friends and family” release (before it was even publicly available). Obviously I can’t use Fusion on Linux, but do I use VMware Workstation for Linux? VirtualBox? Or something else? That’s what I set out to determine, and in this post I’ll share what I selected and the reasoning behind my selection.

So what were the options to consider? While there may be some other solutions, these are the three I primarily assessed:

  • VMware Workstation for Linux 12.5.2
  • VirtualBox 5.1.14
  • “Native” Linux KVM, supplemented by Libvirt and a GUI like GNOME Boxes (installed by default in Fedora 25)

Since I have been using Vagrant quite a bit over the last few years, whatever solution I selected needed to work reasonably well with Vagrant.

I’m pretty familiar with KVM and Libvirt, so I started there. Given that KVM and Libvirt are “native” to Linux, it felt like it would be a clean solution. While Continue reading

Installing VirtualBox 5.1 on Fedora 25

Last fall, I wrote a piece about why I had switched to VirtualBox (from VMware Fusion) for my Vagrant needs. As part of my switch to Fedora Linux as my primary laptop OS, I revisited my choice of virtualization provider. I’ll describe that re-assessment in a separate post; the “TL;DR” for this post is that I settled on VirtualBox. As it turns out, though, installing VirtualBox 5.1 on Fedora 25 isn’t as straightforward as one might expect.

After a number of attempts (using a test VM to iron out the “best” procedure), here’s the process I found to be the most straightforward:

  1. Run dnf check-update and dnf upgrade to pick up the latest packages. If a new kernel version is installed, reboot. (I know this sounds contrived, but I’ve run into issues where some kernel-related packages aren’t available for the kernel version you’re actually running.)

  2. Install the RPMFusion repos. You only really need the “free” repository, but you can install the “nonfree” as well if you like (it won’t affect this process). I won’t go through the process for how to do this; it’s really well-documented on the RPMFusion web site and is pretty straightforward.

  3. Next, use Continue reading

Spousetivities at DockerCon 2017

DockerCon 2017 is coming up in mid-April in Austin, TX, and Spousetivities will once again be offering activities for folks traveling to Austin with conference attendees. This is Spousetivities’ second time at DockerCon, and Crystal has a great lineup of activities planned.

Here’s a quick preview of the activities organized for DockerCon:

  • Trip to Magnolia Market (from HGTV’s “Fixer Upper”)
  • Tour of LBJ State Park
  • Visit to Fredricksburg
  • Sightseeing through the Hill Country around Austin
  • Lunch at the Salt Lick BBQ

Austin in the spring should be a great place to visit, and Crystal has some really enjoyable activities planned—it’s a great reason to bring your spouse, girlfriend/boyfriend, significant other, or family member with you to Austin when you come for DockerCon. Of course, the chance to win some great prizes is nice too…

Crystal’s blog post on the Spousetivities site has a few more details, and registration is open right now.

Technology Short Take #77

Welcome to Technology Short Take #77. I’ve got a new collection of links and articles from around the Web on various data center-focused technologies.

Networking

The Linux Migration: Final Linux Distro Selection

In my Linux migration initial progress report, I provided an early assessment of the Linux distribution that I thought I would use moving forward. At that time, I had selected Ubuntu. Since that time, though, I’ve pivoted a bit and selected a different Linux distribution as the operating system (OS) for my primary laptop moving forward. In this post, I’d like to describe why I selected Fedora.

My original reasons for selecting Ubuntu 16.04 were as follows:

  • Hardware support
  • Performance
  • Leading but not bleeding edge
  • User interface

These are all valid reasons, but as I continued to compare Ubuntu against Fedora 25 I realized that some of these factors weren’t as critical as I’d originally thought:

  • Hardware support: I initially targeted Ubuntu because it runs really well on Apple hardware. Fedora, on the other hand, doesn’t run quite as well on Apple hardware. Since I’m coming from the OS X world, I initially placed some emphasis on support for Apple hardware. The reality is, though, that I need a Linux distribution that does a great job of supporting my new work laptop, not one of my leftover Mac laptops. My experience with Fedora 25 on the Dell E7370 Continue reading

Looking Ahead: My 2017 Projects

For the last few years, I’ve been sharing my list of projects for each year (here’s the list for 2012, the list for 2013, 2015’s list, and last year’s list—I didn’t do a list for 2014). Toward the end of each year, I also publish a “report card” assessing my performance against that year’s list (here’s the 2016 assessment). In this post, I’m going to share my list of planned projects for 2017.

Without further ado, here’s the list for 2017:

  1. Finish the network automation book. One way or another, the network automation book I’m writing with Jason Edelman and Matt Oswalt is getting finished in 2017. (It’s available now as an Early Access edition if you’d like to give it a look and provide some feedback.)

  2. Launch an open source book project. This is something I’ve been tossing around for a while now. Since my efforts at making code contributions to an open source project aren’t going so well (though I’m going to keep moving in that direction), I figured I’d contribute in a way I know I can do. This is going to be a “cookbook”-style book, and the goal I’m setting Continue reading

Review: Dell Latitude E7370

As part of my Linux migration (see my initial progress report), late this past week I started setting up my first non-Apple laptop since 2003. In this post, I’d like to share my thoughts on my new laptop, a Dell Latitude E7370.

First, let’s get the specs—the “speeds and feeds”—out of the way:

  • Intel Core m7 CPU
  • 16 GB of RAM
  • 512 GB NVMe SSD
  • 3200x1800 touchscreen
  • Intel HD graphics and Intel 802.11a/b/g/n/ac wireless

Based on the specs alone, it’s easy to see this laptop is no slouch. It’s certainly comparable to the latest-generation of MacBook Pro laptops, except for the touchscreen (which the Macs don’t offer/support).

Subjectively, I have to say I’m impressed with the E7370. I travel quite a bit, so size and weight are important. This laptop looks and feels more svelte than my previous laptop, a 13” MacBook Air. From a comparison perspective, I’d say it’s on par with my son’s 11” MacBook Air. The build quality is great, and the laptop feels solid and sturdy. The display is crisp, sharp, and bright, and battery life (so far, without any OS-level tuning) has been respectable. Unlike some previous ultrabooks I’ve seen, Dell’s done Continue reading

Technology Short Take #76

Welcome to Technology Short Take #76, the first Technology Short Take of 2017. Normally, I’d publish this on a Friday, but due to extenuating circumstances (my mother-in-law’s funeral is tomorrow) I’m posting it today. Here’s hoping you find something useful!

Networking

Plain Text Productivity Redux

Almost 2 years ago, I set out on an experiment in plain text productivity. I won’t say the experiment was a failure; I did learn from the experiment, and gaining knowledge is usually a positive outcome. In the end, I switched back to OmniFocus, the OS X- and iOS-specific app I’d been using previously. In the last few weeks, though, I’ve revisited the idea of a plain text productivity system as part of my migration to Ubuntu Linux as my primary desktop OS, and I think I’ve resolved some of the issues that were present in my last attempt.

To recap, in my previous attempt I settled on the TaskPaper format (named after the OS X app of the same name). The format is extraordinarily flexible, and the OS X app is more powerful than you might expect. However, I uncovered some issues that made the solution untenable; namely:

  1. Handling future tasks is a problem.
  2. Handling repeating tasks is a problem.
  3. Handling tasks with due dates is a problem.
  4. Handling lots of tasks is a problem.
  5. Keeping task lists synced across computers can be a problem.

At the time, the app had no way to dynamically respond to Continue reading

Enabling an Apple MBP Wireless Adapter with Fedora 25

In this article, I want to share with you the steps I took to enable wireless networking on an older (mid-2011) 13” MacBook Pro running Fedora 25. This is driven by a continued need to evaluate Fedora 25, as I’ve run into a few potential roadblocks with Ubuntu 16.04 as my primary laptop OS. Using Fedora 25 instead may help resolve some of these issues, which primarily center around corporate collaboration.

First, you’ll want to enable the RPM Fusion repositories. This is pretty well documented on the RPM Fusion web site. This link will take you to the configuration page, which will provide links for graphical setup via your browser as well as CLI commands.

Once the RPM Fusion repositories (both Free and Nonfree) repositories are enabled, then it’s just a matter of installing a few packages:

  1. First, install the “kernel-devel” package appropriate for your current kernel. The command to use is:

     sudo dnf install "kernel-devel-uname-r == $(uname -r)"
    

    This could be user error on my part, but I’ve found that it’s necessary to use the full package (including version) instead of just “kernel-devel”. Otherwise, Fedora seems to have a tendency to install the latest package, which may not Continue reading

OPML-to-Markdown Conversion Script

In this post, I’d like to share a script I wrote to help with converting Outline Processor Markup Language (OPML) documents to Markdown. If you read the recent update on my Linux migration plans, you may recall that I identified OPML files (created in OmniOutliner) as an area where some work was going to be required. This script is the result of my efforts in this area.

<aside>Before I continue, I want to very briefly point out that this script was written to help in my specific use case. It’s quite likely that you’ll want or need to adjust the behaviors of this script in order to meet the needs of your particular use case.</aside>

This script takes advantage of two tools: pandoc and sed. pandoc is a third-party tool that is easily installed on Ubuntu using apt or apt-get. (I haven’t checked other Linux distributions, but I suspect packages are available there as well.) pandoc is also available for OS X, making it a very handy cross-platform tool to have in my toolchest. (See this post for more information on how you can use pandoc in a Markdown-heavy environment.) sed, of course, is a Continue reading

Some Reading on Application Containers

One aspect of my pending migration to Ubuntu Linux on my primary laptop has been the opportunity to explore “non-traditional” uses for Linux containers. In particular, the idea of using Docker (or systemd-nspawn or rkt) to serve as a sandbox (of sorts) for GUI applications really intrigues me. This isn’t a use case that many of the container mechanisms are aiming to solve, but it’s an interesting use case nevertheless (to me, anyway).

So, in no particular order, here are a few articles I found about using Linux containers as application containers/sandboxes (mostly focused around GUI applications):

A Docker-Like Container Management using systemd
Running containers without Docker
Containerizing Graphical Applications on Linux with systemd-nspawn
Debian Containers with systemd-nspawn
Using your own containers with systemd-nspawn and overlayfs

I was successful in using Docker to containerize Firefox (see my “dockerfiles” repository on GitHub)), and was also successful in using systemd-nspawn in the same way, including the use of overlayfs. My experiments have been quite helpful and informative; I have some ideas that may percolate into future blog posts.

My (Evolving) Multi-Platform Toolbelt

A few days ago I posted a tweet about a new tool I’d (re-)discovered called jrnl. Someone replied to that tweet, asking me to list my “multi-platform toolbelt.” While it’s still evolving (every day!), I thought it might make for a good blog post. So, here’s a list of my still-evolving multi-platform toolbelt.

  • Sublime Text: Over the last few years, I’ve moved to creating the vast majority of my content in Markdown (MultiMarkdown, to be more specific). At first I was using OS X-specific text editors (first TextMate 1.x, then BBEdit), but last year I switched to Sublime Text. Sublime Text supports OS X, Linux, and Windows. I don’t have any Windows-based systems, so I only use it on OS X and Linux.

  • Wire: My use of Wire is still a bit limited, but only because the reach of the platform is also still a bit limited (this is a classical example of network effect). I’m currently using Wire on Linux and OS X, with plans to extend to iOS and Android. (If you’re using Wire, feel free to look me up! My username is “scottslowe”).

  • IMAP/SMTP: I’ve standardized on using IMAP/SMTP for all my e-mail Continue reading

Technology Short Take #75

Welcome to Technology Short Take #75, the final Technology Short Take for 2016. Fortunately, it’s not the final Technology Short Take ever, as I’ll be back in 2017 with more content. Until then, here’s some data center-related articles and links for your enjoyment.

Networking

  • Ajay Chenampara has some observations about running Ansible at scale against network devices.
  • Andrey Khomyakov shares some information on automating the setup of whitebox switches running Cumulus Linux in part 2 of this series on learning network automation.
  • Russell Bryant has shared the results of some testing comparing ML2+OVS and OVN as backends for OpenStack networking. As Russell indicates in his post, some additional analysis is needed to truly understand what’s happening, but early looks at the results of his tests show performance improvements in OVN versus ML2+OVS when it comes to total time required to boot a VM.
  • Ivan Pepelnjak shares a Python script that creates Ansible inventory from Vagrant’s SSH configuration. Handy.

Servers/Hardware

Nothing this time around!

Security

Looking Back: 2016 Project Report Card

As I’ve done for the last few years, in early 2016 I published a list of my planned personal projects for the year. In this post, I’d like to look back on that list of projects and grade myself on my progress (or lack of progress, if that is the case). Even though 2016 isn’t over yet, it’s close enough to the end of the year that things won’t change that much before 2017 is upon us.

For reference, here’s the list of planned 2016 projects:

  1. Complete a new book (again)
  2. Make more open source contributions
  3. Expand my knowledge and use of Python
  4. Expand my knowledge, use, and focus on public cloud services
  5. Complete a “wildcard project”

Let’s look at each of these planned projects and see how I fared.

  1. Complete a new book (again): Well—in the spirit of total honesty and transparency—this was a major failure. Not only did I fail to complete the network automation book I’ve been working on with Matt Oswalt and Jason Edelman, but the other book project I had planned also did not go anywhere. Granted, the circumstances preventing the second book project were outside my control, but the fact remains I still did Continue reading

Opening Web Internet Location Files on Ubuntu

As part of my effort to make myself and my workflows more “cross-platform friendly,” I’ve been revisiting certain aspects of how I do things. One of the things I’m reviewing is how I capture—and later review—posts or articles on the web. On OS X, I would run an AppleScript that generated a .webloc file (aka an Internet location file). This is an XML file that OS X understands. However, Linux doesn’t natively understand these files, so today I came up with a solution to reading .webloc files with Ubuntu and Firefox.

The solution to the file involves the use of xmllint, a tool that you can install on Ubuntu as part of the “libxml2-utils” package. Using xmllint, you can easily extract a single XML element from an XML file—and .webloc files are just XML files. For the sake of illustration, here’s the contents of a .webloc file generated on OS X:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>URL</key>
    <string>http://blog.fntlnz.wtf/post/systemd-nspawn/</string>
</dict>
</plist>

Using xmllint, you can extract the URL value, and then pass Continue reading

The Linux Migration: Initial Progress Report

About 4 years ago, I discussed some changes in the Apple ecosystem that might lead me to move away from OS X. To be honest, I’ve made only token efforts since that time to actually migrate away, even though the forces that I described in that post are still in full effect. In fact, some might say that the “iOS-ification” of OS X (now rebranded as “macOS”) is even stronger now. As a result, I’ve stepped up my work on a Linux migration, and I’m happy to report that I’ve made some progress.

Here’s a quick update on where things stand so far.

Linux Distribution

I’ve looked at a fair number of Linux distributions. I tried Elementary OS, which some have raved about but which I found too simplistic. I also went back and looked again at Ubuntu derivatives like Linux Mint. Given that Ubuntu is itself derived from Debian, I also took a look at Debian “Jessie”. Finally, I tested Fedora 25. For a number of reasons—which I’ll describe in more detail in a moment—I’ve settled on Ubuntu 16.04.

So, why Ubuntu 16.04 “Xenial Xerus”? Keep in mind that the reasons I list below are my Continue reading

Hiding the User List on the Ubuntu Login Screen

In this post, I’m going to share how to hide the user list on the login screen for Ubuntu 16.04. The information here isn’t necessarily new or ground-breaking; however, in searching for the solution myself I found a lot of conflicting information as to how this may or may not be accomplished. I’m publishing this post in the hopes of providing a bit more clarity around this topic.

I’ve verified that this procedure works on the desktop distribution of Ubuntu 16.04. Note also that this is probably not the only way of making this work; it’s likely there are other ways of accomplishing the same thing.

To make configuration changes to the login screen, you’ll want to add configuration files to /etc/lightdm/lightdm.conf.d. I used a single file to hide the user list and disable guest logins; presumably, you could use separate files for each configuration directive.

To disable the user list and disallow guest logins, add this content to a file in the etc/lightdm/lightdm.conf.d directory (I used the filename 00-hide-user-list.conf):

[SeatDefaults]
greeter-hide-users=true
greeter-show-manual-login=true
allow-guest=false

Once this file is in place, you’ll need to either restart your Ubuntu system, or restart the LightDM Continue reading

Installing Ansible 2.2 on Ubuntu 16.04

A few weeks ago I wrote a post about installing Ansible 2.2 on Fedora 25; today, I’d like to tackle what’s involved in installing Ansible 2.2 on Ubuntu 16.04. This post, like its Fedora counterpart, stems from my ongoing evaluation of Linux distributions and desktop environments. While the information here is very similar to the information in the Fedora post, I’m putting it in its own post in the hopes of making the information easier for readers to find.

It’s not really a secret that I like to run Ansible in a Python virtualenv, but I don’t believe that it will make any difference to the procedure described in this post. The errors that result when trying to install Ansible 2.2 without the necessary prerequisite packages should be the same either way (in a virtualenv or not). However, I’m happy to be corrected if someone knows otherwise.

To create a Python virtualenv, you’ll first need virtualenv installed. I prefer to install virtualenv globally for all users using this command:

sudo -H pip install virtualenv

Alternately, you could install it via a package, with apt install virtualenv. As far as I can tell, either approach Continue reading

Using OVN with KVM and Libvirt

In this post, I’m going to discuss how to use OVN (Open Virtual Network; part of the Open vSwitch project) with KVM and Libvirt to provide virtual networking for KVM-based virtual machines. This post will build on some concepts around OVS and Libvirt that I’ve discussed previously; be sure to review the OVS posts and Libvirt posts on this site for more details and prerequisite knowledge.

I’ll structure this discussion around 2 key steps:

  1. Setting up OVN
  2. Integrating KVM/Libvirt into OVN

Note that I’m not going to discuss setting up KVM/Libvirt, as that’s something I’ve covered previously and is well-documented.

Ready? Let’s jump in!

Setting up OVN

The biggest “challenge” here is package availability—many Linux distributions don’t have packages available for OVS 2.6.0, which is the first release with non-experimental support of OVN. If you’re an Ubuntu user, then you can use the Ubuntu Cloud Archive for the OpenStack “Newton” release, which includes OVS/OVN 2.6.0 packages. For other distributions, you’ll probably need to compile from source. In that case, the OVS installation documentation is quite accurate and usable.

For the purposes of this post, I’ll assume you’re using Ubuntu 16.04 and will pull packages Continue reading

1 20 21 22 23 24 33