Nutanix_Home_Lab_Mentor_13 - itnett/FTD02H-N GitHub Wiki

Du har rett i at Nutanix Calm krever en lisens og er ikke inkludert i Nutanix Community Edition (CE). For å automatisere oppsettet av de første serverne i Nutanix CE uten Calm, kan du bruke følgende alternativer:

1. Bruke Cloud-Init for Automatisering

Cloud-Init er en kraftig løsning som støttes av Nutanix AHV og kan brukes til å automatisere initialiseringen av VMer (virtuelle maskiner). Her er en steg-for-steg guide for å bruke Cloud-Init:

  1. Opprett en minimal Linux ISO med Cloud-Init:

    • Last ned en minimal Linux-distribusjon som allerede har Cloud-Init installert, eller opprett en ISO som inkluderer Cloud-Init.
    • Last opp denne ISO-filen til Nutanix Image Service via Prism Element.
  2. Opprett en VM i Nutanix AHV:

    • Gå til Prism Element (PE) og opprett en ny VM.
    • Velg den opplastede Cloud-Init ISO som boot-medie.
    • Tilordne ressurser (vCPU, minne, nettverksgrensesnitt) til VM-en.
  3. Konfigurer Cloud-Init-data:

    • Cloud-Init lar deg konfigurere VMer ved hjelp av en YAML-fil. Eksempelet nedenfor vil oppdatere og oppgradere pakkene, installere nødvendige verktøy som vim, curl, wget, og sette opp grunnleggende iptables regler.
    #cloud-config
    package_update: true
    package_upgrade: true
    packages:
      - vim
      - curl
      - wget
      - iptables
    
    runcmd:
      - iptables -A INPUT -p tcp --dport 22 -j ACCEPT
      - iptables -A INPUT -p tcp --dport 80 -j ACCEPT
      - iptables -A INPUT -p tcp --dport 443 -j ACCEPT
      - iptables -A INPUT -j DROP
      - systemctl restart iptables
    
    • Lagre denne filen som cloud-config.yaml.
  4. Konverter YAML-filen til Base64:

    • For at Cloud-Init skal lese user-data, må den være Base64-kodet.
    cat cloud-config.yaml | base64
    
  5. Konfigurer VM-en for Cloud-Init:

    • I Nutanix Prism Element, under VM-opprettelsen, legg til user-data som en del av tilpasningen for gjeste-OS (Guest Customization).
    • Bruk Base64-kodet user-data i denne tilpasningen.
  6. Start VM-en:

    • Når VM-en startes, vil Cloud-Init kjøre og konfigurere systemet i henhold til YAML-konfigurasjonen.

2. Automatisering via Scripting

Hvis du foretrekker å bruke skript for automatisering, kan du:

  1. Forbered et Bash-skript:

    • Du kan lage et Bash-skript som installerer nødvendige pakker og konfigurerer systemet etter oppstart.
    #!/bin/bash
    sudo apt-get update -y
    sudo apt-get upgrade -y
    sudo apt-get install -y vim curl wget iptables
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    sudo iptables -A INPUT -j DROP
    sudo systemctl restart iptables
    
  2. Inkluder Skriptet i ISO-en eller kjør det manuelt:

    • Du kan integrere dette skriptet i en ISO for automatisk kjøring, eller kjøre det manuelt etter at VM-en er opprettet.

3. Manuell Opprettelse og Konfigurasjon

Hvis du foretrekker å starte manuelt, kan du:

  1. Opprett VMen via Prism Element:

    • Bruk Prism Element til å opprette en VM med en minimal Linux-distribusjon.
  2. Koble til VM-en:

    • Når VM-en er oppe, koble til via SSH eller konsoll i Prism Element.
  3. Installer og konfigurer nødvendige pakker:

    • Kjør kommandoene manuelt for å installere og konfigurere pakkene.

Oppsummering

For Nutanix CE kan du effektivt bruke Cloud-Init til å automatisere oppsettet av dine første servere. Dette er en kraftig, men enkel metode som kan brukes uten ekstra kostnader. For mer komplekse automasjoner, kan scripting eller manuell konfigurasjon også være veien å gå, spesielt hvis du trenger mer kontroll eller ikke har Cloud-Init forhåndskonfigurert.

For å sette opp servere og tjenester i de to første VLAN-ene, VLAN 100 (Management) og VLAN 110 (Monitoring), trenger vi å lage skript som håndterer installasjonen og konfigurasjonen av nødvendige tjenester på hver server. Vi vil bruke Cloud-Init for å automatisere disse prosessene.

1. VLAN 100 - Management

  • Tjenester: Nutanix Prism, management VMs

Cloud-Init Script for Management VM:

Dette skriptet oppdaterer pakkelisten, installerer nødvendige verktøy, og klargjør systemet.

#cloud-config
package_update: true
package_upgrade: true
packages:
  - vim
  - curl
  - wget
  - iptables

runcmd:
  - iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  - iptables -A INPUT -p tcp --dport 9440 -j ACCEPT  # Nutanix Prism port
  - iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  - iptables -A INPUT -j DROP
  - systemctl restart iptables

2. VLAN 110 - Monitoring

  • Tjenester: Zabbix, Grafana, Suricata

Cloud-Init Script for Zabbix Server:

Dette skriptet installerer Zabbix Server på en minimal Linux-distribusjon.

#cloud-config
package_update: true
package_upgrade: true
packages:
  - zabbix-server-mysql
  - zabbix-frontend-php
  - zabbix-apache-conf
  - mysql-server

runcmd:
  - systemctl enable mysql
  - systemctl start mysql
  - mysql -e "create database zabbix character set utf8 collate utf8_bin;"
  - mysql -e "create user 'zabbix'@'localhost' identified by 'password';"
  - mysql -e "grant all privileges on zabbix.* to 'zabbix'@'localhost';"
  - mysql -e "flush privileges;"
  - zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -ppassword zabbix
  - systemctl enable zabbix-server
  - systemctl start zabbix-server
  - systemctl enable apache2
  - systemctl restart apache2

Cloud-Init Script for Grafana Server:

Dette skriptet installerer og konfigurerer Grafana.

#cloud-config
package_update: true
package_upgrade: true
packages:
  - apt-transport-https
  - software-properties-common
  - wget
  - grafana

runcmd:
  - wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -
  - add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
  - apt-get update
  - apt-get install -y grafana
  - systemctl enable grafana-server
  - systemctl start grafana-server

Cloud-Init Script for Suricata (IDS/IPS):

Dette skriptet installerer og konfigurerer Suricata for nettverksovervåking.

#cloud-config
package_update: true
package_upgrade: true
packages:
  - suricata
  - oinkmaster

runcmd:
  - systemctl enable suricata
  - systemctl start suricata
  - suricata -c /etc/suricata/suricata.yaml -i eth0

3. Implementasjon

  1. Last opp Cloud-Init-filer til Nutanix Prism Element: Bruk disse YAML-konfigurasjonene som user-data når du oppretter nye VMer for hver tjeneste.
  2. Opprett VMer: Bruk Prism Element til å opprette nye VMer basert på dine Cloud-Init-konfigurasjoner.
  3. Start VMer: Når VMer starter, vil Cloud-Init automatisk utføre nødvendige konfigurasjoner og installasjoner.

Oppsummering

Ved hjelp av disse Cloud-Init skriptene kan du automatisere oppsettet av alle nødvendige tjenester på serverne i VLAN 100 (Management) og VLAN 110 (Monitoring). Dette reduserer manuelt arbeid og sikrer en konsistent konfigurasjon på tvers av alle servere.