Skip to content

Ansible playbook to install and configure an infrastructure-as-code lab playground server.

Notifications You must be signed in to change notification settings

marcelvenema/lab-playground

Repository files navigation

Lab Playground development server


Playbook voor installatie en configuratie van een development lab server, als basis voor het ontwikkelen van een moderne infrastructuur. Automatische installatie en configuratie van o.a. Ansible, GitLab, Semaphore, Hashicorp Vault en Nexus Repository OSS.

Het playbook installeert de volgende rollen:

  • RedHat Cockpit
    Browser-gebaseerde beheeromgeving voor Linux. Toegang via http://<hostname>:9090.
    Gebruikersnaam en wachtwoord worden gedefinieerd tijdens installatie via lab_username en lab_password variabelen.
    Zie ook role cockpit

  • Podman container infrastructure
    Container infrastructuur. Kan worden beheerd via de Cockpit user interface.
    Zie ook role podman

  • Hashicorp Vault
    Secret management. Geinstalleerd als container, benaderbaar via http://<hostname>:8200.
    Access token en unseal keys zijn opgeslagen in /data/vault/config folder.
    Zie ook role vault

  • Server-Config-Linux
    Basis server configuratie rol met o.a configuratie automation account, configuratie tijdzone, base-server-config in Vault, etc.
    Zie ook role server_config_linux

  • MySQL
    Installatie en configuratie van MySQL server. UNDER DEVELOPMENT.
    Zie ook role mysql

  • Ansible Semaphore
    Grafische interface voor Ansible. Geinstalleerd als container, benaderbaar via http://<hostname>:3000.
    Zie ook role semaphore

  • Gogs - Git service
    Geinstalleerd als container, benaderbaar via http://<hostname>:10880.
    Zie ook role gogs

  • Sonatype Nexus Repository OSS
    Artifact repository. Geinstalleerd als container, benaderbaar via http://<hostname>:8081.
    User name is admin, initiele wachtwoord is opgeslagen in Vault.
    Zie ook role nexus_repository

Overzicht ontwerp


Voorbereidingen

Het playbook wordt gebruikt voor de configuratie van een lab server met een aantal geinstalleerde podman containers als Vault, Nexus Repository, MySQL, Semaphore en Gogs. Een voorbeeld typische infrastructuur is een Ansible Development server en Lab Playground server.

Virtuele Machines

Ansible Development server
De Ansible Development server wordt gebruikt om de code te kopieren (clone) vanuit git en het ansible playbook te starten. Geadviseerd wordt een Linux VM met min. 2 vCPU en 3GB intern geheugen. De diskruimte is 20GB.

Voorbereidingen Ansible Development server:
Installeer volgende packages op development server: dnf install epel-release tar nano.
epel-release: prerequisite voor ansible, tar: voor configuratie visual studio code remote ssh, nano: eenvoudige editor.
Installeer git en ansible: dnf install ansible git.
configureer git: git config --global user.name "<github username> en git config --global user.email "<github email>.
Maak ssh certificaat aan via ssh-keygen: ssh-keygen -t ed25519 -C "<your_email@example.com>"
kopieer de publieke sleutel en kopieer naar github settings.
test git connectie: ssh -T git@github.com

Clone lab-playground repository: git clone <adres>..
Installeer Ansible Galaxy collections via sh requirements.sh.
Controleer de variabelen in het group_vars/all.yml bestand en wijzig deze indien nodig.
Controleer de ip-adressen in het inventory/hosts.yml bestand en wijzig deze indien nodig.

Lab Playground server
De Lab playground omgeving kan via dit playbook geinstalleerd worden op een Linux virtuele machine met 2 vCPU en 4GB geheugen. Geadviseerd wordt een diskruimte van 200Gb ivm mogelijke repository data.

Installatie

Installatie van het playbook kan via onderstaande commandline. De -K parameter vraagt om het BECOME wachtwoord.

ansible-playbook install.yml -i inventory/hosts.yml -K

Configuratie

Globale variabelen:

Onderstaande globale variabelen kunnen worden gebruikt:

  • uninstall: true | false
    Bij installatie (install) van een role, wordt de role eerst ge-deinstalleerd (uninstall).

  • lab_hostname: labserver.marcelvenema.com

  • lab_username: admin

  • lab_usercomment: "Admin user for Lab environment"

  • lab_password: Password29!

  • lab_email: marcel@marcelvenema.com

  • automation_username: Gedefinieerd in install.yaml

  • automation_password: not present, will be generated.

  • automation_email: "ansible@marcelvenema.com"

Licentie

MIT

Auteur

Marcel Venema

About

Ansible playbook to install and configure an infrastructure-as-code lab playground server.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published