ProxmoxGuru_Home_Lab_Mentor_16 - itnett/FTD02H-N GitHub Wiki

Tilpasning av Proxmox-riggen for Database

For å optimalisere Proxmox-riggen din for temaet "Database", vil vi fokusere på å sette opp containere som dekker de ulike aspektene av emnet, fra grunnleggende databaseteori til mer avanserte temaer som normalisering, sikkerhet og datavisualisering. Vi vil også benytte automatisering med Ansible for å effektivisere oppsettet og vedlikeholdet av disse containerne.

1. Nettverksoppsett og VLAN-plan

Vi kan gjenbruke det eksisterende nettverksoppsettet med VLAN 100 (Dev Network) for databasemiljøet. Dette gir tilstrekkelig isolasjon og fleksibilitet for utvikling og testing av databaseløsninger.

VLAN ID Nettverk IP-adresseplan Bruk
VLAN 100 Dev Network 10.0.100.0/24 Utviklingsmiljøer, databaseoppsett, testing, feilsøking

2. Containeroppsett og Domenestruktur

Vi vil opprette flere containere (LXC), hver dedikert til spesifikke databasekonsepter og verktøy:

Domene Container Navn Rolle Ressurser VLAN
database.local DB-MYSQL-CT01 MySQL-server vCPU: 2, RAM: 4GB, Disk: 50GB VLAN 100
database.local DB-POSTGRES-CT02 PostgreSQL-server vCPU: 2, RAM: 4GB, Disk: 50GB VLAN 100
database.local DB-TOOLS-CT03 Databaseverktøy (phpMyAdmin, pgAdmin, DBeaver, etc.) vCPU: 2, RAM: 4GB, Disk: 20GB VLAN 100
database.local DB-VIZ-CT04 Datavisualisering (Metabase, Grafana, etc.) vCPU: 2, RAM: 4GB, Disk: 20GB VLAN 100

3. Oppsett av LXC-containere i Proxmox VE

Følg samme fremgangsmåte som beskrevet tidligere for å opprette LXC-containerne for databasemiljøet. Husk å koble alle containerne til VLAN 100 og tildele passende IP-adresser.

4. Konfigurasjon av Databasecontainere

  1. Logg inn på Containeren via Shell:

    • Fra Proxmox Web Interface, gå til containeren og klikk på Shell for å få terminaltilgang.
  2. Oppdater OS:

    • Oppdater systemet:
      apt-get update -y && apt-get upgrade -y  # For Ubuntu/Debian
      yum update -y                             # For CentOS/RHEL
      
  3. Installer Nødvendige Verktøy:

    • For DB-MYSQL-CT01:

      apt-get install -y mysql-server  # For Ubuntu/Debian
      yum install -y mariadb-server    # For CentOS/RHEL
      
    • For DB-POSTGRES-CT02:

      apt-get install -y postgresql postgresql-contrib  # For Ubuntu/Debian
      yum install -y postgresql-server postgresql-contrib  # For CentOS/RHEL
      
    • For DB-TOOLS-CT03:

      apt-get install -y phpmyadmin pgadmin4 dbeaver  # For Ubuntu/Debian
      yum install -y phpMyAdmin pgadmin4 dbeaver      # For CentOS/RHEL
      
    • For DB-VIZ-CT04:

      apt-get install -y metabase grafana  # For Ubuntu/Debian
      # Installer Metabase og Grafana manuelt for CentOS/RHEL, da de ikke er tilgjengelige i standardrepositoriene
      

5. Automatisering med Ansible i Proxmox

A. Oppsett av Ansible for Databasecontainere

  1. Installer Ansible på en Kontrollnode:

    • Installer Ansible:
      sudo apt-get update
      sudo apt-get install ansible -y
      
  2. Opprett en Ansible Inventory-fil:

    • Lag en hosts-fil som inkluderer databasecontainerne:
      [db_mysql]
      db-mysql-ct01 ansible_host=10.0.100.10
      
      [db_postgres]
      db-postgres-ct02 ansible_host=10.0.100.20
      
      [db_tools]
      db-tools-ct03 ansible_host=10.0.100.30
      
      [db_viz]
      db-viz-ct04 ansible_host=10.0.100.40
      
  3. Opprett Ansible Playbooks for å Konfigurere Containere:

    • Eksempel Playbook for DB-MYSQL-CT01:

      - name: Configure DB-MYSQL-CT01
        hosts: db_mysql
        become: yes
        tasks:
          - name: Install MySQL Server
            apt: # eller yum for CentOS/RHEL
              name: mysql-server 
              state: present
      
          - name: Secure MySQL Installation
            mysql_user: 
              name: root
              password: 'your_strong_password'
              host: '%'
              priv: '*.*:ALL'
              state: present
      
    • Opprett lignende playbooks for de andre containerne, og tilpass dem med de nødvendige pakkene og konfigurasjonene for hver enkelt.

  4. Kjør Ansible Playbooks:

    • Kjør playbookene for å konfigurere containerne:
      ansible-playbook -i hosts db_mysql_setup.yml
      ansible-playbook -i hosts db_postgres_setup.yml
      # ... og så videre for de andre playbookene
      

6. Ytterligere Konfigurasjon og Tilpasning

Etter å ha kjørt Ansible playbooks, må du kanskje utføre ytterligere konfigurasjon og tilpasning i hver container, avhengig av dine spesifikke behov og databaseprosjekter. Dette kan inkludere:

  • Opprette databaser og brukere.
  • Konfigurere sikkerhetsinnstillinger, som brannmurregler og tilgangskontroll.
  • Sette opp eksempeldata og utføre spørringer for å teste funksjonaliteten.
  • Konfigurere datavisualiseringsverktøy for å koble til databasene og lage dashboards og rapporter.

7. Testing og Validering

Etter at du har fullført oppsettet og konfigurasjonen, er det viktig å teste og validere at alt fungerer som det skal.

  • Test tilkobling til databasene fra databaseverktøy-containeren.
  • Kjør eksempelspørringer og sørg for at dataene hentes og vises riktig.
  • Test datavisualiseringsverktøyene for å sikre at de kan koble til databasene og generere meningsfulle visualiseringer.
  • Utfør sikkerhetsrevisjoner og sårbarhetsskanninger for å sikre at containerne er sikre.

Oppsummering

Ved å følge denne veiledningen har du nå et optimalisert databasemiljø i Proxmox, klar til å utforske og utvikle ulike databaseprosjekter. Husk å fortsette å lære og eksperimentere med ulike databaseteknologier og verktøy for å forbedre ferdighetene dine og holde miljøet ditt oppdatert. Lykke til med databaseutforskningen i Proxmox!