Skip to main content

Cisco Devnet - How to Make a Splash Page ft. Meraki, Trial and Error, and Many Helpful Programmers

If you haven't looked at Cisco DevNet, it's a really hoppin' resource for hands on work.

(Who says 'hoppin' resource'?)

I'm working from two articles to:

  • Use Meraki
  • Make a captive portal - That thing that says 'Adhere by our T&C' when you try to log in to use public Wi-Fi with your VPN (You are using a VPN, right?)
Articles: 1 , 2

Copying from git in cmd worked well (Somehow, I couldn't do it in Git Bash)


The immediate following is from the 'Setting up your workstation for this computer' section of the instructions.
  1. Clone the repository and change into the new folder.
    $ git clone
    $ cd ~/meraki-code/meraki-captive-portal-python 

There is no folder called meraki-captive-portal-python. There's an actual python executable. I could make the folder, but there's no telling if something was intended to be in said folder.

Looking at the list of files, it's...just not there? Well, let's see what we can do instead.

The next bit of instructions tell us to go to \meraki-code\meraki-captive-portal\sample-captive-portal, which exists, so good for us!

We run the program. Next line starts with a command that's not recognized by windows apparently. This thread says use 'git bash', and then the cmd line says something interesting.

It doesn't help, but it is a nice feature!

Take a look at the instructions again; here. Under Windows. Whatever runs 'source', I don't have installed, so cmd doesn't know what I'm on about. Oddly, I do have git bash but it's still not working.

I may have found a different way to activate the demo captive portal;

dir /s command shows a list of every folder within the Meraki-code directory and their contents.

Take a moment to revisit the instructions again from four lines up. Go on!

I opened the 'Requirements.txt' file; It was a list of programs. "You told me what I need," I thought, "Now, about using it...? Hey, what about that code..."

You can just install things that are a list if you use the appropriate parameters. Technology is amazing.

After a long week of chipping away, surely, we should be able to proceed:

The comments are strangely placed...thank you very much to everyone on Twitter / Slackchat who helped.

Despite installing Flask , the flask module wasn't imported.

It's installed for Python 3 (Somehow), but not Python 2, and this must be working in a Python 2 environment. So, how do we change this to a Python 3 environment?

After approaching Twitter with the problem and getting some help....

So I moved over to the 'sample' side. Had to move the source path from it's home in a hidden file path with this guide.

It still didn't find it. So I ran the next code in the list, and...

This is great news; I know this screen. It's saying "Hey, you're opening a port on your machine. Since it's so high level, we give you the benefit of the doubt that you're doing this on purpose. Be careful."

I allow private access;

The favicon is the tiny image in the address bar. I go to http://localhost:5004/click and...



There are files you copy that are 'Mission' aren't intended for home use.

With the appropriate parameters, you can install a list of programs that are in a .txt file. Always be mindful of where the files come from!

Don't stop! It took me a week to do this but I didn't give up!

In a test environment, it's okay to skip some lines, because who knows what may happen. Working in tech is never a straightforward process, and you're going to have to reach out, ask for help.

I learned how to move environment variables.

EMPLOYERS: This shows persistence! Sometimes you have to take a break, but don't stop!


Popular posts from this blog

Connecting IoT Devices to a Registration Server (Packet Tracer, Cisco)

 If you're seeing this post, I'm helping you, and you probably have LI presence: React and share this post to help me in return.   In Packet Tracer, a demo software made by Cisco Systems. It certainly has changed a lot since 2016. It's almost an Olympic feat to even get started with it now, but it does look snazzy. This is for the new CCNA, that integrates, among other things, IoT and Automation, which I've worked on here before. Instructions here . I don't know if this is an aspect of "Let's make sure people are paying attention and not simply following blindly", or an oversight - The instructions indicate a Meraki Server, when a regular one is the working option here. I have to enable the IoT service on this server. Also, we assign the server an IPv4 address from a DHCP pool instead of giving it a static one. For something that handles our IoT business, perhaps that's safer; Getting a new IPv4 address every week or so is a minimal step against an

Create a Simple Network (Packet Tracer) + A Walkthrough

Again; I've done this, but now there's so many new things, I'm doing it again. The truly new portions were...everything on the right side of this diagram; The cloud needed a coax connector and a copper Ethernet connector. It's all easy to install, turn off the cloud (Weird), install the modules. Getting the Cable section of Connections was an unusual struggle - The other drop down menu had nothing within. It required going into the Ethernet options and setting the Provider Network to 'cable', which is the next step AFTER the drop-downs. The rest was typical DHCP and DNS setups, mainly on the Cisco server down there. The post is rather short - How about adding a video to it? Find out what A Record means - This site says 'Maps a name to an IP address', which is DNS. So it's another name for DNS? You can change them (presumably in a local context) to associate an IP address to another name.

Securing Terraform and You Part 1 -- rego, Tfsec, and Terrascan

9/20: The open source version of Terraform is now  OpenTofu     Sometimes, I write articles even when things don't work. It's about showing a learning process.  Using IaC means consistency, and one thing you don't want to do is have 5 open S3 buckets on AWS that anyone on the internet can reach.  That's where tools such as Terrascan and Tfsec come in, where we can make our own policies and rules to be checked against our code before we init.  As this was contract work, I can't show you the exact code used, but I can tell you that this blog post by Cesar Rodriguez of Cloud Security Musings was quite helpful, as well as this one by Chris Ayers . The issue is using Rego; I found a cool VS Code Extension; Terrascan Rego Editor , as well as several courses on Styra Academy; Policy Authoring and Policy Essentials . The big issue was figuring out how to tell Terrascan to follow a certain policy; I made it, put it in a directory, and ran the program while in that directory