Files
homelab/step-by-step.md

3.0 KiB

Almost automated step by step walkthrough of full lab deployment

This is will be the complete walkthrough of the deployment of my homelab.

This repo is a mono-repo that is broken up into three sections:

  • infra-config
  • cluster-config
  • apps

Getting Started

  • On a PC/laptop, clone this git repo

    (Ansibilze this process (below) )

  • Create your vault file for secrets (and store somewhere safe)

    echo 'master-ansible-password' > ~/.vault_pass.txt
    chmod 644 ~/.vault_pass.txt
    
  • Add "export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt" to your shell profile.

  • Create vault file

    cd homelab/group_vars/all
    ansible-vault create vault
    
  • Modify ansible variables for your environment

Network Manual

https://registry.terraform.io/providers/ubiquiti-community/unifi/latest/docs/resources/network

Storage Manual

Proxmox Manual

https://registry.terraform.io/providers/bpg/proxmox/latest

Unbound DNS Manual


Build infra01

  • From laptop run ansible playbook to:

    cd homelab/infra-config
    ansible-playbook -i inventory.yml 03-infra01-server/install.yml
    
    • Install ansible-core
    • Copy .vault_pass.txt from laptop and set env variable
    • Clone git repo
    • Install ansible required packages
    scp ~/.vault_pass.txt infra01:.
    ssh infra01
    
    cd homelab
    ansible-galaxy collection install -r requirements.yml
    ansible-playbook -i inventory.yml 10-sno-hub-cluster/install.yml
    

Other needed software:

  • kustomize
  • git
  • oc
  • ansible
  • terraform

FreeIPA Manual

Templates Manual

Matchbox Manual

  • Downloading the Agent-based Installer

Hub Cluster In Progress

  • Prepare matchbox to install hub cluster

    Running this playbook will configure Matchbox to wait for the sno-cluster to boot via iPXE and will install Single Node OpenShift. All configuration files are built from templates driven from Ansible variables.

    cd homelab
    ansible-playbook -i inventory.yml 10-sno-hub-cluster/install.yml
    
  • PXE boot the SNO host

    Boot host to boot options menu:

    • <F12> for Dell 7050

    Select NIC with matching MAC to boot from

  • Monitor installation process

    openshift-install --dir homelab/10-sno-hub-cluster/03-openshift-image agent wait-for bootstrap-complete --log-level=debug
    
  • Admin password and kubeconfig are in the homelab/10-sno-hub-cluster/03-openshift-image/auth directory

  • Bootstrap ACM

    From laptop/infra server:

    cd homelab
    oc apply -k hub-cluster-bootstrap
    oc apply -f ~/ocp/doppler-token.yaml
    oc apply -k hub-cluster-bootstrap
    

Internal Cluster TBD

(Deployed in conjunction with ACM)

External Cluster TBD

(Deployed in conjunction with ACM)