Skip to content

Instantly share code, notes, and snippets.

View mtelvers's full-sized avatar

Mark Elvers mtelvers

  • University of Cambridge
View GitHub Profile
@mtelvers
mtelvers / upgrade-to-noble.yml
Created January 16, 2026 13:57
Update Ubuntu machines to Noble
- hosts: all
serial: 1
gather_facts: true
vars:
target_release: noble
tasks:
- name: Skip hosts that are not ARM64 workers
#!/usr/bin/env python3
"""
Docker Build Log Analyzer
Analyzes Docker build logs to extract build times and create visualizations.
"""
import os
import re
import glob
from datetime import datetime, timedelta
@mtelvers
mtelvers / install_ubuntu.sh
Created May 1, 2025 12:51
Script to install Ubuntu so that it looks like a Scaleway installation
for a in /dev/sda /dev/sdb /dev/sdc /dev/sdd ; do
wipefs -af $a
sgdisk -n1:1M:+1M -t1:EF02 $a
sgdisk -n2:0:+512M -t2:FD00 $a
sgdisk -n3:0:0 -t3:FD00 $a
done
mdadm --create /dev/md0 --level=raid1 --metadata=1.2 --raid-devices=4 /dev/sd[a-d]2
mdadm --create /dev/md1 --level=raid5 --metadata=1.2 --raid-devices=4 /dev/sd[a-d]3
@mtelvers
mtelvers / remove-md-bios.yml
Created May 1, 2025 12:09
Remove mdadm RAID from a BIOS (not EFI) system
- hosts: all
vars:
boot_device: "/dev/sda2"
root_device: "/dev/sda3"
tasks:
- name: Install apt packages
apt:
@mtelvers
mtelvers / remove-md.yml
Created April 30, 2025 15:03
Remove a /dev/md0 root from a running system
- hosts: all
vars:
root_device: "/dev/sda2"
tasks:
- name: Install apt packages
apt:
name:
@mtelvers
mtelvers / zfs-ubuntu.yml
Created April 2, 2025 17:38
Ansible Playbook to install Ubuntu 24.04 on a new machine with a ZFS root
- hosts: all
vars:
password: "password"
part1: []
part2: ""
part3: ""
part4: ""
tasks:
@mtelvers
mtelvers / golang+docker.yml
Created April 1, 2025 16:41
Upgrade to the latest Go and Docker on Ubuntu
- hosts: all
vars:
go_version: 1.24.1
tasks:
- name: apt packages
apt:
name:
- docker.io
- golang
@mtelvers
mtelvers / create-container.ps1
Last active June 27, 2024 16:05
Using `runhcs` to create a container
$config = Invoke-RestMethod -uri https://raw.githubusercontent.com/Microsoft/hcsshim/d0b3bfc2ea9303a6a506da319f67fe827530b91e/test/functional/assets/defaultwindowsspec.json -Method Get
$config.process.args = @("cmd", "/c", "echo hello")
$config.windows.layerFolders = New-Object System.Collections.ArrayList
$ver = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name LCUVer).LCUVer
$image = "mcr.microsoft.com/windows/servercore:$ver"
docker image pull $image
$imageInspect = docker image inspect $image | ConvertFrom-JSON
$layer = $imageInspect.GraphDriver.Data.dir
while ($layer) {
$config.windows.layerFolders.Add($layer)