This is a story about an operating system problem that occupied me at work in 2015 for couple of days. The goal is to give you an overview of debugging techniques and associated tools. I'd like to use this opportunity (writing this article for my students of the Unix programming class at the Mathematical-physical faculty of the Charles university in Prague in 2021) to provide some historical points, some background and some details about operating system work (I feel old writing this). As a bit of a spoiler, the cause of the problem turned out to be completely different than what it seemed initially and involved traversing multiple layers in the operating system. I love this kind of problems because it is fun and great learning experience. I vaguely remember a job advertisement in Netfix bunch of years back that demanded that the applicants posses intimate knowledge of the operating system internals down to (
This is an example setup with NetBox using AzureAD for authentication. It uses the Python Social Auth library.
Most of this was taken from this gist: https://gist.github.com/leoluk/16d91ec22d833945c7ac7ed2b3b05a27
This is written to support NetBox v2.10 to v3.0. I'll try to note differences for 2.9 or earlier.
NOTE: NetBox v3.1 added basic support for using social_auth so most of this is no longer required and can be placed in the configuration.py
file.
v1.0
Author: Anton Chmutov Derevianko [email protected]
- M Series - first product by Juniper Networks, multiservice router (routing and MPLS services, no switches) Designed for enterprise and service providers.
- T Series - no switching, only routing, old, performance upgrade for M. High end and core routers.
#!/usr/bin/env python | |
# | |
# This code is based on | |
# https://github.com/finish06/pyunifi/blob/master/unifi-ls-clients | |
# | |
# 1. Install pyunifi | |
# pip install --user pyunifi | |
# 2. Run this script | |
# unifi-ls-all-clients -c UNIFI_HOST -b UNIFI_PORT -u USER -p PASSWORD -V |
import requests | |
import json | |
import sys | |
import time | |
import datetime | |
from requests.auth import HTTPBasicAuth | |
import logging | |
import elasticsearch | |
import geoip | |
import traceback |
virsh destroy edge-router | |
virsh undefine --nvram edge-router | |
virsh vol-delete edge-router --pool fast-storage | |
virt-install \ | |
--name edge-router \ | |
--cpu host-passthrough \ | |
--vcpus=4,sockets=1,cores=4,threads=1 \ | |
--ram 2048 \ | |
--os-variant debian10 \ |
Netbox SSO with Okta, Vouch and Nginx
@echo off | |
echo Dell iDRAC 6 SSL Key upload system | |
echo. | |
echo ===[credentials]=== | |
set default_hostname=your.idrac.address | |
rem Host Section | |
set /p host="Host (Default. %default_hostname%): " | |
IF NOT DEFINED host ( |
based upon simulation from: https://github.com/OTRF/detection-hackathon-apt29
use the following OSSEM branch
Following are the steps I followed to have further understanding
-
Know the architecture from this link. Whether the API totally encapsulates the CGI or there are some differences, that is not the topic of this guide, so it's better to be always aware of the Disk Station Architecture your script would support, so that when we have to read the sources we'll know which source to check
-
Try a working ansible role. That will give a pretty good overview of how the interaction is implemented.
-
Check the official docs for the