Adding Virtio drivers for KVM to RHEL's initrd
Fix a RHEL VM that drops to the dracut prompt after migrating to KVM or OpenStack by chrooting in and injecting virtio drivers into the initrd with dracut.
OpenStack: Fixing the CLI (python2) error: No module named queue
Fix the broken python-openstackclient install on Ubuntu 18.04 by swapping `import queue` for `from multiprocessing import Queue as queue` in the SDK files.
AWS CodeBuild CICD - Deploy to Lambda
Build a CI/CD pipeline for Python Lambda functions using CodeCommit, CodeBuild, and AWS SAM templates to test and auto-deploy on every commit.
OpenStack Cloudbase-init: PowerShell user_data Scripts
How to run PowerShell scripts via Cloudbase-init user_data when deploying Windows instances in OpenStack. Covers the #ps1 script format and the --user-data launch flag.
Authenticating with AWS IAM in AWS API Gateway
Lock down an AWS API Gateway endpoint with IAM auth, wire it to a Python Lambda, and call it from a signed client using policies and access keys.
CodePipeline - Continuous Delivery to AWS ECR
Wire up AWS CodeCommit, CodePipeline, and CodeBuild with a buildspec.yml to auto-build Docker images and push them to ECR on every commit.
Create & Terminate EC2 Instances from Python
Launch and terminate EC2 instances from Python using boto3, with a working example covering Ubuntu AMIs, security groups, tags, and wait_until_running.
IAM Auth for Lambda
Restrict access to a specific AWS Lambda function using an IAM policy scoped to its ARN, then invoke it from Python with boto3 and access keys.
AWS Lambda - Basics
Create your first AWS Lambda function in Python, define a test event, and understand pricing per request and per GB-second of execution duration.
Injecting KVM Drivers to Windows 10 for OpenStack
Inject VirtIO KVM drivers (viostor, Balloon, NetKVM) into a Windows 10 VHDX image with Dism so it can boot on OpenStack Glance after qcow2 conversion.
Operating OpenStack from Ansible
Automate OpenStack workloads with Ansible os_ modules. Covers auth, projects, users, quotas, networks, volumes, and launching VMs on an existing cloud.
Google Cloud Firestore Basics - Python
Read and write Google Cloud Firestore documents from Python, with pricing comparisons against Datastore mode and a walk through collections and references.
Google Cloud Functions: Basics
Deploy a Python 3.7 HTTP-triggered Google Cloud Function that returns the caller's IP, with notes on pricing, invocation costs, and testing from the console.
Using AWS S3 from Python
Upload and download files to AWS S3 from Python using boto3, with IAM policies, user groups, and a dedicated service account for programmatic access.
AWS Fargate - Basics
Step-by-step for launching a Docker container on AWS ECS Fargate from the web console, including task definitions, load balancer setup, and ECR image URLs.
AWS ECR - Elastic Container Registry - Basics
Set up an AWS Elastic Container Registry repo, create least-privilege IAM groups for push and pull access, and connect Docker using the AWS CLI.
Modifying OpenStack Kolla Docker Images
Add the Pure Storage Cinder plugin to a Kolla OpenStack image with a Jinja2 template override, keeping the upstream Kolla source untouched.
Install Non-Prod OpenStack on a Physical Server
Step-by-step Kolla-Ansible install of OpenStack Rocky on a single Ubuntu 18.04 server with Keystone, Nova, Neutron, Cinder LVM, Heat, and Magnum.
Install OpenStack with Kolla-Ansible in a VM
Build a throwaway OpenStack Rocky dev cloud inside a single Ubuntu 18.04 VM using Kolla-Ansible, Cinder LVM, and a VLAN provider network.
Google Cloud Storage: Website Hosting
Host a static site on Google Cloud Storage with Search Console domain verification, bucket setup, a CNAME to c.storage.googleapis.com, and real pricing numbers.
Google Cloud Build: Basics
Intro to Google Cloud Build with real cloudbuild.yaml examples for pushing Docker images to GCR and rsyncing a static site to Cloud Storage on every Git commit.
Google Container Registry: Basics
Getting started with Google Container Registry, covering why GCR beats a self-hosted Docker registry, setting up service accounts, and Docker auth via gcloud.