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.
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 |
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 |
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.
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
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
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
For å automatisere opprettelsen og styringen av Linux- og containermiljøer ved hjelp av Nutanix REST API, kan du bruke lignende trinn som tidligere nevnt.
curl -u "username:password" -X POST 'https://<prism_central_ip>:9440/api/nutanix/v3/login'
-
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" } }'
curl -X DELETE https://<prism_central_ip>:9440/api/nutanix/v3/apps/<application_uuid> \
-H "Authorization: Bearer <token>"
For å overvåke og optimalisere ressursbruken når du kjører Linux- og containermiljøer:
-
Overvåk ressursbruk:
- Bruk Prism Central til å se CPU-, RAM-, og lagringsbruk for hver VM i sanntid.
- Identifiser potensielle flaskehalser eller underutnyttede ressurser.
-
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.
-
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.
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.
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.
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ø.