Nutanix_Home_Lab_HLD_11_Linux - itnett/FTD02H-N GitHub Wiki

For å integrere temaene "Linux" og "Containere" i ditt eksisterende Nutanix CE-lab, kan vi opprette et miljø som fokuserer på Linux-administrasjon, systemdrift, containerisering, og automatisering. Dette vil inkludere oppsett av dedikerte servere for Linux-distribusjoner, containeradministrasjon, sikkerhet, og bruk av terminalen for administrasjon av systemer og tjenester.

1. Utvidet Nettverksoppsett og VLAN-plan

For å støtte Linux- og container-temaene, vil vi introdusere VLAN som er dedikert til Linux-serveradministrasjon, containerisering, og sikkerhet.

VLAN ID Nettverk IP-adresseplan Bruk
VLAN 900 Linux Server Network 10.5.0.0/24 Nettverk for Linux-serverinstallasjon, konfigurasjon, og drift
VLAN 910 Container Network 10.5.1.0/24 Nettverk for containeradministrasjon og automatisering

2. Servere og Domenestruktur

For å støtte temaene Linux og containere, vil vi opprette flere servere dedikert til Linux-administrasjon, containerisering med Docker eller Podman, og automatisering.

Domene Servernavn Rolle VLAN IP Address Ressurser
linux.local LINUX-SERVER-01 Linux OS administrasjon og drift VLAN 900 10.5.0.10 vCPU: 4, RAM: 8GB, 100GB SSD
container.local CONTAINER-SERVER-01 Containeradministrasjon (Docker/Podman) VLAN 910 10.5.1.10 vCPU: 4, RAM: 8GB, 100GB SSD
automation.local AUTOMATION-SERVER-01 Automatisering med Ansible/Shell Scripts VLAN 910 10.5.1.20 vCPU: 4, RAM: 4GB, 100GB SSD

3. Blueprints og Oppstartsskript

Vi lager Blueprints i Nutanix Calm for hver server i de ulike domenene. Disse Blueprintene vil installere nødvendige verktøy og konfigurere miljøet ved oppstart.

A. LINUX-SERVER-01 (Linux OS Administrasjon og Drift)

Blueprint Details:

  • Name: LINUX_SERVER_01
  • Base Image: Minimal Ubuntu (Template)
  • Scripts:
#!/bin/bash
# Startup Script: configure_linux_server.sh

# Set Hostname
hostnamectl set-hostname "LINUX-SERVER-01"

# Set IP Address
nmcli con mod "System eth0" ipv4.addresses "10.5.0.10/24" ipv4.gateway "10.5.0.1" ipv4.dns "10.5.0.1" ipv4.method manual
nmcli con up "System eth0"

# Install necessary packages
apt-get update -y
apt-get install -y vim htop curl wget net-tools

# Create a new user and configure SSH
useradd -m linuxadmin -s /bin/bash
echo "linuxadmin:securepassword" | chpasswd
usermod -aG sudo linuxadmin

# Enable SSH service
systemctl enable ssh
systemctl start ssh

B. CONTAINER-SERVER-01 (Containeradministrasjon med Docker/Podman)

Blueprint Details:

  • Name: CONTAINER_SERVER_01
  • Base Image: Minimal Ubuntu (Template)
  • Scripts:
#!/bin/bash
# Startup Script: configure_container_server.sh

# Set Hostname
hostnamectl set-hostname "CONTAINER-SERVER-01"

# Set IP Address
nmcli con mod "System eth0" ipv4.addresses "10.5.1.10/24" ipv4.gateway "10.5.1.1" ipv4.dns "10.5.1.1" ipv4.method manual
nmcli con up "System eth0"

# Install Docker or Podman
apt-get update -y
apt-get install -y docker.io

# Add user to Docker group
usermod -aG docker linuxadmin

# Enable and start Docker service
systemctl enable docker
systemctl start docker

C. AUTOMATION-SERVER-01 (Automatisering med Ansible/Shell Scripts)

Blueprint Details:

  • Name: AUTOMATION_SERVER_01
  • Base Image: Minimal Ubuntu (Template)
  • Scripts:
#!/bin/bash
# Startup Script: configure_automation_server.sh

# Set Hostname
hostnamectl set-hostname "AUTOMATION-SERVER-01"

# Set IP Address
nmcli con mod "System eth0" ipv4.addresses "10.5.1.20/24" ipv4.gateway "10.5.1.1" ipv4.dns "10.5.1.1" ipv4.method manual
nmcli con up "System eth0"

# Install Ansible and necessary tools
apt-get update -y
apt-get install -y ansible

# Configure basic Ansible inventory
echo -e "[linux_servers]\n10.5.0.10 ansible_user=linuxadmin ansible_password=securepassword" > /etc/ansible/hosts

# Create a sample playbook
echo -e "- hosts: linux_servers\n  tasks:\n  - name: Install Apache\n    apt:\n      name: apache2\n      state: present" > /etc/ansible/playbook.yml

4. Automatisering med Nutanix REST API

For å automatisere opprettelsen og styringen av Linux- og containermiljøer ved hjelp av Nutanix REST API, kan du bruke lignende trinn som tidligere nevnt.

Steg 1: Autentisering

curl -u "username:password" -X POST 'https://<prism_central_ip>:9440/api/nutanix/v3/login'

Steg 2: Opprettelse av et Linux/Containermiljø med API

  1. Opprett en Linux Server:
    curl -X POST https://<prism_central_ip>:9440/api/nutanix/v3/blueprints/<blueprint_uuid>/launch \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    -d '{
      "spec": {
        "name": "LINUX_SERVER_DEPLOYMENT",
        "description": "Deployment of LINUX-SERVER-01",
        "app_profile_reference": {
          "kind": "app_profile",
          "uuid": "<app_profile_uuid>"
        },
        "application_name": "LINUX-SERVER-01"
      }
    }'

Steg 3: Fjern et Linux/Containermiljø ved hjelp av API

curl -X DELETE https://<prism_central_ip>:9440/api/nutanix/v3/apps/<application_uuid> \
-H "Authorization: Bearer <token>"

5. Ressurshåndtering i Nutanix Prism

For å overvåke og optimalisere ressursbruken når du kjører Linux- og containermiljøer:

  1. Overvåk ressursbruk:

    • Bruk Prism Central til å se CPU-, RAM-, og lagringsbruk for hver VM i sanntid.
    • Identifiser potensielle flaskehalser eller underutnyttede ressurser.
  2. Varsler og kapasitetsplanlegging:

    • Sett opp varsler for å overvåke ressursbruk og sikre at ingen VM overskrider sine tildelte ressurser.
    • Bruk Prism’s Capacity Runway-verktøy for å planlegge fremtidige utvidelser eller tilpasninger.
  3. Optimaliser ressursbruk:

    • Juster ressursallokering basert på bruken og læringsbehovene.
    • Bruk automatisering i Calm for å justere ressurser dynamisk når miljøer startes og stoppes.

6. High-Level Design (HLD)

Overall Design:

  • Network Segmentation: VLANs isolate different environments to prevent interference between labs and allow for specialized testing (e.g., container administration).
  • Resource Allocation: Each server is allocated sufficient CPU, memory, and storage resources based on the expected workload, ensuring smooth operation without overloading the rig.
  • Security Measures: Each VLAN has built-in security measures like firewalls and ACLs to replicate real-world Linux administration and containerization scenarios.
  • Automation and Management: Nutanix Calm and REST APIs are used to automate the deployment, configuration, and scaling of these environments.

7. Low-Level Design (LLD)

Server Configuration and Deployment:

  • Operating Systems: Minimal Ubuntu for all servers to maintain consistency across the environment.
  • **Network

Configuration:**

  • Each server is connected to its specific VLAN through dedicated NICs (onboard NICs and USB-to-NIC dongles).
  • Static IP addresses are assigned to each server for consistent network configuration.
  • Software Installation:
    • Servers are pre-configured with relevant software based on their role, such as Docker on CONTAINER-SERVER-01, Ansible on AUTOMATION-SERVER-01, and essential utilities on LINUX-SERVER-01.
  • Security Settings:
    • Basic security configurations are applied to all servers, such as firewall rules, user access controls, and encryption for sensitive data.

Managing Resources within the Rig's Limitations:

  • CPU and Memory Allocation: The rig has 6 cores (12 threads) and 32GB of RAM. Not all servers will run samtidig. Servers are grouped based on their use case, and only necessary servers are powered on depending on the lab scenario.
  • Storage Management:
    • The Samsung 850 EVO 500GB SSD is used for high-speed storage of critical VMs.
    • The additional HDDs (3x1.5TB and 1x4TB) are used for large data storage, logs, and backup purposes.
  • Dynamic Resource Allocation: Nutanix Calm allows for the dynamic provisioning and de-provisioning of resources, ensuring optimal use of CPU and memory.

Conclusion

Dette oppsettet gir en solid ramme for å praktisere og utvikle ferdigheter innen Linux-administrasjon, containerisering, og automatisering. Det maksimerer bruken av riggen din samtidig som det holder seg innenfor begrensningene, ved å bruke VLAN, domenestruktur, og Nutanix's automatiseringsverktøy for å skape et fleksibelt og dynamisk labmiljø.

⚠️ **GitHub.com Fallback** ⚠️