-
Notifications
You must be signed in to change notification settings - Fork 0
Home
wizzense edited this page Sep 1, 2024
·
5 revisions
This project automates the deployment and management of a home lab using Tanium Cloud, focusing on repeatability, thorough documentation, and ease of use. The setup includes deploying and managing VMs across multiple Hyper-V hosts with extensive automation.
- Project Overview
- Project Objectives
- Setup Guide
- Automation Scripts
- Deployment Process
- Maintenance and Updates
- Troubleshooting
- Future Enhancements
- Contributing
- License
This project aims to automate the setup and management of a home lab using Tanium Cloud. The setup involves deploying and clustering VMs on multiple physical hosts running Hyper-V, with a control node used for further automation and management via Tanium.
- Automate the installation of development tools (Git, VSCode, etc.).
- Create/manage GitHub repositories to store and track all scripts and documentation.
- Deploy and cluster Hyper-V on multiple physical machines.
- Automate the creation of a control node VM using Tanium Cloud.
- Ensure high availability and redundancy by setting up a clustered environment.
- Integrate Tanium Cloud for the automation of lab deployment and management.
Ensure the following components are prepared:
- Primary PC (Home PC): Main hypervisor.
- Work PC: Secondary hypervisor for redundancy.
- GitHub Account: For repository management.
-
Required Software:
- Git
- Visual Studio Code (VSCode)
- Git CLI
- PowerShell
- Python (for future automation tasks)
Automate the setup of development tools with the following steps:
-
Git Installation:
- Script to download and install Git.
-
VSCode Installation:
- Script to download and install VSCode.
-
Git CLI Installation:
- Script to download and install the Git CLI.
-
Repository Setup:
- Automate the creation or cloning of a GitHub repository.
- Use configuration files for settings like username, email, and paths.
-
Install Hyper-V:
- Script to install and configure Hyper-V on the Primary and Work PCs.
-
Cluster Configuration:
- Automate the clustering process between Primary and Work PCs.
-
Control Node VM Creation:
- Script to create and configure the control node VM on the Primary PC.
-
Provisioning via Tanium:
- Automate control node provisioning with Tanium Provision.
-
Tanium Client Setup:
- Script to install the Tanium Client on the control node.
-
Tanium Satellite Setup:
- Automate the setup of a Tanium Satellite for lab deployment management.
- PowerShell Module: Simplify the setup with functions to install prerequisites, configure Hyper-V, set up clustering, and deploy VMs.
- Python Scripts: Mirror PowerShell scripts in Python for flexibility and future Proxmox integration.
- Config Files: Store settings (e.g., usernames, paths) to enable easy customization and reusability.
-
Deploy Control Node VM:
- Automate creation and configuration on the Primary PC.
-
Install Tanium Client:
- Automate the installation process.
-
Network Setup:
- Configure networking for Tanium Cloud and control node communication.
-
Download OS ISOs:
- Automate the downloading of common OS ISOs.
-
Provision VMs:
- Use scripts to automate VM deployment on Hyper-V.
-
Configure Server Roles:
- Automate the setup of roles like ADDS, DNS, DHCP on VMs.
-
Cluster Hyper-V Hosts:
- Automate the clustering process for high availability.
-
Failover Configuration:
- Ensure redundancy by automating failover setups.
- Regularly update scripts and modules to keep up with new features and bug fixes.
- Version control with GitHub for tracking changes and ensuring consistency.
- Common Issues: Document common issues like Hyper-V setup failures and networking problems.
- Logs: Provide instructions for accessing and interpreting logs to diagnose issues.
- Proxmox Integration: Extend automation to support Proxmox as an alternative to Hyper-V.
- Complete Python Automation: Transition to Python for broader automation capabilities.
- Tanium API Integration: Further automate Tanium configuration using its API.
- Redundant LDAP/DNS/DHCP: Automate deployment of redundant Linux-based infrastructure.