Skip to content

Instantly share code, notes, and snippets.

@russellds
russellds / rhel9-bootstrap.md
Created June 4, 2025 03:34
RHEL9 Bootstrap

Bootstrapping a Red Hat Enterprise Linux (RHEL) 9 server on-premises for Ansible involves setting up SSH, Python, and a sudo user, tailored to RHEL’s specifics (e.g., dnf package manager, wheel group for sudo). Since this is your first server, I’ll provide a concise, secure, and RHEL-specific process to get it ready for Ansible management, including a shell script to automate the bootstrap. The process assumes you have initial access to the server (e.g., via root or a default user) and are setting it up from a control node (your local machine or another server running Ansible).

RHEL 9 Bootstrap Process for Ansible

Prerequisites

  • RHEL 9 installed: Ensure the server has a base installation with SSH enabled (usually included in RHEL’s default setup).
  • Control node: A machine with Ansible installed (can be your local machine or another server).
  • Network access: The control node must reach the server via SSH (port 22).
  • Initial credentials: Root access or a user with sudo privile
@russellds
russellds / Launch
Last active July 7, 2024 18:55
Omakub
wget -qO- https://gist.githubusercontent.com/russellds/feb8b8d75dfb995b17d3470a1f432044/raw/install.sh | bash
@russellds
russellds / ubuntu-2404-setup-config.md
Last active June 26, 2024 03:15
Ubuntu 24.04 Setup and Configuration

Ubuntu 24.04 Setup and Configuration

Hyper-V VM Creation

  1. Download Ubuntu 24.04
  2. In Hyper-V use "new" to create VM.
  3. Enter values in "new" VM wizard, select "Generation 2".
  4. Complete VM wizard.
  5. Right click physical computer in "Hyper-V Manager" and select "Settings...".
  6. Select "Security" and uncheck "Enable Secure Boot" checkbox.
@russellds
russellds / winget.json
Created September 21, 2023 18:57
Software-Computer-Baseline
‎‎​
<#
.SYNOPSIS
Replace tokens in a file with values.
.DESCRIPTION
Finds tokens in a given file and replace them with values. It is best used to replace configuration values in a release pipeline.
.PARAMETER InputFile
The file containing the tokens.
@russellds
russellds / Standards.bicep
Created May 25, 2023 20:40
Bicep Standards Module
targetScope = 'subscription'
@description('The environment abbreviation.')
@allowed([
'prod'
'prev'
'demo'
'test'
'dev'
'infra'
@russellds
russellds / tasks.json
Created May 25, 2023 19:05
VS Code Setup for Bicep
{
"version": "2.0.0",
"tasks": [
{
"label": "Remove Telemetry",
"type": "shell",
"command": "${workspaceFolder}/.vscode/scripts/RemoveTelemetry.ps1",
"args": [
"-WorkspacePath",
"${workspaceFolder}"
param(
[string]$WorkspacePath
)
$InformationPreference = 'Continue'
Write-Information "Workspace Path: $( $WorkspacePath )"
Set-Location -Path $WorkspacePath
$telemetryStrings = @()
@russellds
russellds / Injection.psm1
Created April 22, 2022 20:36
Injection PowerShell Module
function doStuff {
param(
[string]
$Item,
[string]
$Value = 'default'
)
$htDoStuff.($Item) = $Value
@russellds
russellds / foreach-parallel-sync-hash.ps1
Created April 22, 2022 20:19
ForEach-Object -Parallet with a Synchronized HashTable and Injecting a Function
function doStuff {
param(
[string]
$Item
)
$htDoStuff.($Item) = @{}
}
$stringFuncDoStuff = "${function:doStuff}"