Author: Superhero Ninja

  • Using SSH to forward the same local port to multiple external hosts

    Okay, this is kinda awesome :-), I got my geek on 🙂
    My application is connecting to a cluster of external servers but my application can configure hostname but can’t configure port.
    So I wanted to connect to a remote cluster using SSH tunneling, but I was unable to forward everything because the port binding to localhost (127.0.0.1) can only be used once.
    Then I saw that you can use multiple loopback addresses! See this page: https://en.wikipedia.org/wiki/Loopback
    Basically you can bind the portforward to 127.0.0.2, 127.0.0.3 till 127.255.255.254, that should provide enough addresses, right!? 🙂
    So I can use multiple port forwards from my localhost(s) to the six remote hosts like this:

    ssh somedomain.com \
    -L 127.0.0.1:9042:external-node1.somedomain.com:9042 \
    -L 127.0.0.2:9042:external-node2.somedomain.com:9042 \
    -L 127.0.0.3:9042:external-node3.somedomain.com:9042 \
    -L 127.0.0.4:9042:external-node4.somedomain.com:9042 \
    -L 127.0.0.5:9042:external-node5.somedomain.com:9042 \
    -L 127.0.0.6:9042:external-node6.somedomain.com:9042
  • Vagrant proxy through CNTLM on Windows using CYGWIN

    Wow, talk about a crappy post title, but I just got this working on my corporate network and was quite happy about it.
    Reason for this post; Every time I start a new assignment at a (rather big) corporation, I need to follow these steps to be able to access the internet from my vm’s.
    (and I keep forgetting the steps, I’m getting old..)
    What we’ll use to get this working:

    • Cygwin : https://www.cygwin.com/
    • Vagrant : https://www.vagrantup.com/
    • Virtualbox : https://www.virtualbox.org/
    • Cntlm : http://cntlm.sourceforge.net/

    I’m running CentOS vm’s inside Vagrant with Virtualbox provisioning on Cygwin on Windows 7. I’m running Cntlm to create a local proxy for all stuff what I’m doing through cygwin, because I don’t like putting clear text passwords in bashrc or in Win / Bash variables.

    Steps:

    1. Get your corporate proxy URL (Via Google Chrome)
    2. Configure Cntlm
    3. Configure Cygwin
    4. Configure Vagrant
    5. Use teh interwebs from your VM, practicing ninja turtle coding skillz and be instantly awesome!!1!

    (more…)

  • Dell XPS 13 Skylake 9350 does not boot Fedora with UEFI while livecd works

    I’ve been struggling to get Fedora working on my new laptop (Dell XPS 13 Skylake 9350) since I got it a couple of months ago. It was quite frustrating to have a working LiveCD (LiveUSB) but my laptop kept failing to boot Fedora.
    Today I’ve found the problem and the fix was easy.
    After the installation the EFI boot partition contains a fedora directory
    ( /boot/efi/EFI/fedora )
    Contents of the fedora directory:
    [code]
    fedora
    ├── BOOT.CSV
    ├── fonts
    │   └── unicode.pf2
    ├── fw
    ├── fwupx64.efi
    ├── gcdx64.efi
    ├── grub.cfg
    ├── grubenv
    ├── grubx64.efi
    ├── MokManager.efi
    ├── shim.efi <<<< This is the one!!
    └── shim-fedora.efi
    [/code]
    The solution was to create a new Boot entry in the BIOS, this wasn’t done automatically by Fedora.
    Configure the UEFI boot manager to point to the shim.efi file.
    When that’s done, reboot your laptop and start using Fedora.

  • BEA-010213, Message-Driven EJB: MyProcessMDB's transaction was rolled back

    I encountered this error last week and it was quite a headache to find out what the source of the problem was.

    Short summary:

    I thought the BEA-010213 error and the rollback log entries meant that we had a database problem. This was a wrong assumption, there’s another storage type in weblogic domains which use transactions (or state transitions?), which are JMS queues, which live in persistent stores in the managed servers.
    That was the source of our problem; our persistent stores became corrupted because of storage problems.
    (more…)

  • Remove duplicate lines while comparing two files

    I’ve been quite busy this whole day with a partially complete database dump and wanted to prepare for tomorrow with some ninja bash voodoo shizzle. I’m doing a braindump here because I know I’ll have forgotten this when I wake up tomorrow 🙂
    The command stated below was the first working example I’ve gotten together, please let me know if you know a neater / better solution!

    The situation:

    I’ve got two files. The first file contains lines which need to be deleted from the second line (if they exist there) (more…)

  • Puppet provisioning on Vagrant Error: –manifestdir

    This post is a distilled version of the discussion here: https://github.com/mitchellh/vagrant/issues/3740

    Problem:

    When I started using the latest Puppetlabs boxes, I encountered the error “Error: Could not parse application options: invalid option: –manifestdir” when my puppet manifest was about to be executed. (more…)

  • Python pip without internet

    The title of this post is a bit misleading. I will not outline the use of pip without internet but I will suspect most people will search for this search string, thus coming here for an alternative.
    I’ve been blessed with a very thorough security officer, who decided that CLI internet access is not permitted, even using CNTLM (1)is blocked.
    The easiest way to install packages is via pip, but it’s also possible to install them via the commandline.
    Using the example of Django, we will first download the tarball from the Django site;
    https://www.djangoproject.com/download/
    On the right side there’s a link to the latest release.
    Unzip and untar the tarball and open a Prompt in that directory.
    Then run the following command:
    python setup.py install

    Next, we’ll check if it is installed correctly:
    2015-10-20 13_11_27-Opdrachtprompt

  • Create a simple HTTPS server with OPENSSL S_SERVER

    This post will mostly serve as a reference for future posts, the goal is to create the simplest HTTPS webserver possible, which will serve to test certificates, authentication via private keys and in the end; configure SSL offloading to an Apache HTTPD, which will act as a proxy between your client and the secure endpoint.
    GOAL: At the end of this article, you will have a running secure web server which you can access via your web browser and/or via an SSL client. (more…)

  • Remove host from SSH KnownHosts file without seeing the hostname

    This post is mostly a bookmark for myself. I’ve been using search engines way too often to find this command..
    The command to remove a host from a knownhosts file without seeing the actual hostname in the knownhosts file is the following:
    [code]ssh-keygen -R HOSTNAME[/code]
    (more…)

  • Comparing sed stream output in linux

    Sed is very very powerful, which is a good thing to be aware of.
    I was looking to compare the output of a sed command to the original file before I wanted to execute the sed command directly on the file and came across this handy trick.
    It works by using temporary named pipes inside the diff command.
    Contents of file:
    [code title=”contents of numbers.txt:”]
    One
    Two
    Three
    Four
    Five
    [/code]
    If I just want to remove the line which begins with “Four”, I can check my sed command like this:
    [code title=”Terminal output:”]
    joris@beanie ~
    $ diff <(sed ‘/Four/d’ numbers.txt) numbers.txt
    3a4
    > Four
    [/code]
    Awesome possum, now I know my sed command won’t destroy anything.