Paul's Blog

A collection of notes and stuff I find interesting

Installing .NET on Ubuntu

2023-09-09 1 min read Code snippets
Installing .NET on Ubuntu is supposed to be easy. Sometimes it’s not. You should be able to follow the instructions on the Microsoft docs and install from a package manager but I’ve had issues with that. It’s been a frustrating experience; the package installs but then I can’t run dotnet --version and I can’t figure out why. Thankfully there is an option to manually install .NET, this is what I’ve had the most success with. Continue reading

Purging Deleted Azure Key Vaults

2023-02-27 1 min read Code snippets
Do you constantly provision and delete Azure Key Vaults? If so, you may have noticed attempts to recreate a recently deleted key vault will result in the following error: The vault name is already in use. This is because Azure Key Vaults are kept in a deleted state and not automatically purged. You must manually purge these key vaults to be able to reuse the name. To confirm the key vault in question is in “deleted” state, you can run the following: Continue reading

Ubuntu Dev Tools

2022-11-11 3 min read Code snippets
Is this the year of the Linux desktop? I’m not sure but I have been making more of an effort to “daily drive” a Linux desktop lately. I’m currently working off of an Ubuntu 22.10 machine and here is my script for installing common tools that I work with daily. sudo apt-get update sudo apt-get upgrade # add git repository sudo add-apt-repository ppa:git-core/ppa # install some basic tools sudo apt-get update sudo apt-get install -y \ python3 \ python3-pip \ bpytop \ tree \ guvcview \ vim \ curl \ git \ gnupg2 \ jq \ sudo \ zsh \ build-essential \ cmake \ libssl-dev \ openssl \ unzip \ pkg-config # install brew tools /bin/bash -c "$(curl -fsSL https://raw. Continue reading

Terraform: Azure Container Apps with Azure Managed Grafana using the AzAPI provider

2022-09-09 3 min read Code snippets
Code snippet for the Monitoring Azure Container Apps With Azure Managed Grafana article. terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = ">=3.0.0" } azapi = { source = "azure/azapi" version = ">=0.5.0" } } } provider "azurerm" { features { resource_group { prevent_deletion_if_contains_resources = false } key_vault { purge_soft_delete_on_destroy = false } } } resource "random_pet" "aca" { length = 2 separator = "" } resource "random_integer" "aca" { min = 000 max = 999 } resource "random_string" "aca" { length = 5 lower = true upper = false numeric = true special = false keepers = { # Generate a new random_string on every run to avoid a conflict with the previous revision none = timestamp() } } locals { resource_name = format("%s", random_pet. Continue reading