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)

However;


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 https://github.com/CiscoDevNet/meraki-code
    $ 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...

🎉🎆🎇



CONCLUSION:

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!

Comments

Popular posts from this blog

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

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 intruder, but it is a step. There are no devices associated with this new server; In an earlier lab (not shown), I attached them to 'H

Building, Breaking, and Building A CRM with Retool

 I like no- or low-code solutions to things. I've often wanted to simply push a button or move some GUI around and have the code implement itself.  I've thought about building something that's like a customer relationship management (CRM) system for keeping up with my network better than my little spreadsheet where I click links and then go like something. The general idea in this CRM Development is:  To have a GUI to add people to a NRM (Network Relationship Management).       Attach it to a database (MySQL is what I went with eventually using Amazon Relational Database service, but you can use PostGRES, and probably others).     Make sure components are connected to each other in the retool interface. This video is a good start. Watching the tutorial video, heard some SQL commands and went 'Oh no 😳" before going "Wait I know basic SQL", which is good, because you'll see.  When you get set up, there's a plethora of resources you can use -- Incl

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