48 lines
6.4 KiB
HTML
48 lines
6.4 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="description" content="Case study: infrastructure automation using PowerShell, GitOps, Terraform, Ansible, Packer, Bash, and APIs.">
|
|
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
|
|
<!-- PUBLIC-METADATA-START -->
|
|
<meta name="author" content="Jay Phillips">
|
|
<meta name="theme-color" content="#07111f">
|
|
<link rel="canonical" href="https://portfolio.phillips-home.net/automation.html">
|
|
<meta property="og:locale" content="en_US">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:site_name" content="Jay Phillips Infrastructure Portfolio">
|
|
<meta property="og:title" content="Infrastructure Automation | Jay Phillips">
|
|
<meta property="og:description" content="Infrastructure automation case study using PowerShell, Bash, Terraform, Ansible, Packer, Git, Argo CD, and repeatable validation workflows.">
|
|
<meta property="og:url" content="https://portfolio.phillips-home.net/automation.html">
|
|
<meta property="og:image" content="https://portfolio.phillips-home.net/social-card.png">
|
|
<meta property="og:image:type" content="image/png">
|
|
<meta property="og:image:width" content="1200">
|
|
<meta property="og:image:height" content="630">
|
|
<meta property="og:image:alt" content="Jay Phillips - Senior Systems Administrator and Infrastructure Engineer">
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="Infrastructure Automation | Jay Phillips">
|
|
<meta name="twitter:description" content="Infrastructure automation case study using PowerShell, Bash, Terraform, Ansible, Packer, Git, Argo CD, and repeatable validation workflows.">
|
|
<meta name="twitter:image" content="https://portfolio.phillips-home.net/social-card.png">
|
|
<!-- PUBLIC-METADATA-END --><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="/styles.css">
|
|
<title>Infrastructure Automation Case Study | Jay Phillips</title>
|
|
</head>
|
|
<body>
|
|
<a class="skip-link" href="#main">Skip to content</a>
|
|
<header class="site-header"><nav class="nav shell" aria-label="Primary navigation"><a class="brand" href="/"><span class="brand-mark" aria-hidden="true">JP</span><span>Jay Phillips</span></a><div class="nav-links"><a href="/">Home</a><a href="/#projects" aria-current="page">Projects</a><a href="/resume.html">Résumé</a><a href="mailto:Phillips-Jay@outlook.com">Contact</a></div></nav></header>
|
|
<main id="main" class="shell">
|
|
<div class="page-hero"><div class="breadcrumb"><a href="/">Home</a> / <a href="/#projects">Projects</a> / Automation</div><div class="eyebrow">Case study 03 · Repeatable operations</div><h1>Infrastructure <span>automation.</span></h1><p class="lead">Turning repetitive administration and hard-won troubleshooting knowledge into scripts, declarative configuration, version-controlled workflows, and reusable deployment patterns.</p></div>
|
|
<div class="case-layout">
|
|
<div class="case-content">
|
|
<section class="case-section"><h2>PowerShell for enterprise administration</h2><p>PowerShell is the primary automation language for Windows and Active Directory work.</p><ul><li>Query and export computer and user data from Active Directory.</li><li>Normalize input files and enrich records with logon names, email, title, and department.</li><li>Automate group membership, local-account removal, firewall configuration, domain operations, and server inventory.</li><li>Install prerequisites for System Center products and validate server readiness.</li><li>Collect reboot history, health information, and deployment results from remote systems.</li></ul></section>
|
|
<section class="case-section"><h2>GitOps as operational automation</h2><p>The Kubernetes environment treats Git as the desired state. Argo CD reconciles applications, reports drift, retries failures, prunes removed resources, and provides a visible deployment history.</p><ul><li>App-of-apps repository structure.</li><li>Kustomize-rendered application manifests.</li><li>Automated image digest updates for selected workloads.</li><li>Sealed Secrets for encrypted secret workflows.</li><li>Validation, commit, push, sync, rollout, and smoke tests packaged into complete Bash scripts.</li></ul></section>
|
|
<section class="case-section"><h2>Infrastructure as code</h2><p>Terraform, Ansible, and Packer are used in the home lab to explore repeatable virtual-machine provisioning, configuration, and image creation. The objective is to move from manually assembled systems toward reproducible environments with clear inputs and versioned changes.</p></section>
|
|
<section class="case-section"><h2>Design principles</h2><ul><li><strong>Safe defaults:</strong> scripts stop on errors, validate prerequisites, and avoid overwriting unknown state.</li><li><strong>Idempotence:</strong> repeated execution should converge or exit cleanly.</li><li><strong>Complete deliverables:</strong> full scripts and configuration files reduce copy-and-paste mistakes.</li><li><strong>Evidence:</strong> every automation ends with verification output rather than assuming success.</li><li><strong>Rollback:</strong> Git history and declarative state make changes reviewable and reversible.</li></ul></section>
|
|
</div>
|
|
<aside class="case-sidebar"><section class="panel"><h3>Automation stack</h3><dl class="fact-list"><div><dt>Windows</dt><dd>PowerShell</dd></div><div><dt>Linux</dt><dd>Bash</dd></div><div><dt>Provisioning</dt><dd>Terraform</dd></div><div><dt>Configuration</dt><dd>Ansible</dd></div><div><dt>Images</dt><dd>Packer</dd></div><div><dt>Delivery</dt><dd>Git + Argo CD</dd></div></dl></section><section class="panel"><h3>Focus</h3><div class="tags"><span class="tag">Repeatability</span><span class="tag">Validation</span><span class="tag">Least privilege</span><span class="tag">Version control</span><span class="tag">Rollback</span><span class="tag">Documentation</span></div></section></aside>
|
|
</div>
|
|
<section><div class="callout"><div><h2>See how the platform is observed.</h2><p>Continue with metrics, logs, uptime, and alert delivery.</p></div><a class="button primary" href="/observability.html">Observability case study</a></div></section>
|
|
</main>
|
|
<footer class="site-footer shell"><span>© 2026 Jay Phillips</span><span>Case study: infrastructure automation.</span></footer>
|
|
</body>
|
|
</html>
|