While setting up some cluster machines to run masterless I ran into this bug.  I had a directory structure like this:

code
  module1
    manifests
  module2
    modules
      module3
        manifests

 When running puppet apply with the modulepath code:code/module1/modules I ran into this error, specifically using the logrotate module.

Error: Evaluation Error: Resource type not found Logrotate::Size (file: code/modules/logrotate/manifests/conf.pp, line: 32, column:12)


I updated my private key and added the public key to the authorized_keys on my target hosts and it didn't work.  I ran a few verbose connections to see that the key was being sent, but not accepted.

Turns out the old version of ssh on this server doesn't generate the public key from the private key, it reads the id_rsa.pub file to send the public key.  Since this public key doesn't match what's in authorized_keys, I was denied.

The solution was to delete the public key.  Alternatively, you can generate the public key with ssh-keygen.


I gave a talk on processes and made some simple shortcuts to show processes matching patterns.

psg

ps - grep, grep the process listing for something and show the parent pid, sort by pid.


I just got a new laptop with Secure Boot and was having trouble getting Windows and Fedora installed in a dual boot configuration.  I read a few posts on how to do it by changing the bios to Legacy mode but that didn't seem like much fun.  Fedora 30 installed to secure with no problem, so I knew it was possible.

I started by paritioning the disk with a GPT partition table and the following partitions:


For reasons I'm running vagrant with VirtualBox inside a docker container.  Most of the time this goes great and no problems, but when it fails it's difficult to see what's happening on the machine.  I've tried and failed to get VNC going on the vm running inside the container. I should note that my problem is with Windows VMs, with Linux VMs it's never a problem to get console. My workaround for Windows is to use screenshots and send keystrokes to the vm via vboxmanage.

First step is to get the uuid or name of the vm


Getting nokogiri to install was failing for me. I'm using bundler and needed nokogiri. Gem is trying to compile it and failing on libxml2.

At first I tried using the libxml from brew, that that didn't work, so specified where to find XCode's version of libxml in my bundle config.


We build our Jenkins from a docker container, setting up that with code requires setting up the plugin from groovy. I didn't want to figure out how to translate our config for the plain mailer plugin to the email-ext plugin. I started using the plain mailer plugin but decided I'd like to send the email in HTML format. Once again, Jenkins docs were terrible, but reading the code, it looked like mimetype was supported.

I came up with the following code to send an HTML email from the Jenkinsfile


I needed to checkout some code from another repository into my project, but I only wanted a specific directory within the other repository.

As usual with Jenkins, the docs are lacking, but reading the source for a bit I came up with the following:


Talk I gave at #LISA2018. I've given this talk as a half day tutorial, at LISA2018 I gave it in 90minutes. The bulk of the talk is laying a solid foundation on how Linux works. Slides