Bygg komplett IT-infrastruktur fran terminalen.
TUI-baserat verktyg som genererar Ansible-projekt for att automatisera hela infrastrukturen — fran natverkskonfiguration och hypervisor-provisionering till OS-hardening och dokumentationsgenerering. 14 wizard-steg, 16 tjanstplugins, noll manuellt krångel.
InfraBuilderOS tacker hela livscykeln — fran initial natverksdesign till driftverifiering och dokumentation — utan att du behover lamna terminalen.
Guidar dig igenom hela infrastrukturdesignen med interaktiva formulär och navigationsmeny i sidopanelen.
10 Linux-tjanster, 5 Windows-tjanster och 1 plattformsoberoende plugin. Beroenden losas automatiskt.
Inbyggd integration mot Proxmox via community.proxmox-collectionen. Provisionera VMs direkt fran wizarden.
OPNsense via REST API (api_key/api_secret) och MikroTik RouterOS via SSH/API. CHR stods.
ansible-lockdown-roller for CIS L1/L2 och STIG mot Ubuntu, AlmaLinux och Windows Server.
Out-of-band-hantering for Dell (iDRAC) och HPE (iLO) servrar. Konfigureras i steg 8.
Wizarden scannar projektet efter vault_-nyckelreferenser och presenterar maskerade inmatningsfallt.
Jamfor faktiskt tillstand mot projektdefinitionen. Visar MATCH, DRIFT eller MISSING per host och tjanst.
Genererar sex dokumenttyper i Markdown eller HTML — systemoverview, trafikmatriser, anvandarmanualer med mer.
Kors fran ett USB-minne med ett virtualenv utan att installera nagot pa hosten. Ansible maste dock finnas pa systemet.
Hela infrastrukturmodellen sparas som YAML. Snapshot-funktion skapar versionerade kopior (_v001.yml).
709 tester tacker modeller, plugins, generator, driftkomparator, dokumentation, vault och wizard-flode.
Varje steg ar ett eget skarmformular i TUI:n. Du navigerar fritt mellan stegen och kan
spara projektet nar som helst med Ctrl+S.
--project.dns_ad laggs ad_dc till utan att du begar det.skip_reboot och disruption_high.vault_-nyckelreferenser och presenterar ett maskerat inmatningsfallt for vart och ett. Sparas krypterat till vault.yml.InfraBuilderOS stoder de vanligaste enterprise-operativsystemen, bade Linux och Windows, samt ledande brandvaggar och Proxmox som hypervisor.
| OS | Version | Familj |
|---|---|---|
| Ubuntu | 22.04 LTS | Linux |
| Ubuntu | 24.04 LTS | Linux |
| AlmaLinux | 8 | Linux |
| AlmaLinux | 9 | Linux |
| Windows Server | 2022 | Windows |
| Windows Server | 2025 | Windows |
| Typ | Ansible-anslutning | Notering |
|---|---|---|
| OPNsense | REST API |
api_key / api_secret. Standard-val. |
| MikroTik RouterOS | SSH / RouterOS API |
CHR (Cloud Hosted Router) stods. |
| Typ | Ansible-collection |
|---|---|
| Proxmox VE | community.proxmox |
Varje plugin ar ett Python-objekt som deklarerar plattform, beroenden, portar, Ansible-variabler och driftcheckar. Beroenden losas automatiskt — ingen manuell ordning kravs.
| Plugin | Visningsnamn | Plattform | Ansible-roll / Collection |
|---|---|---|---|
apache |
Apache HTTP Server | Linux | geerlingguy.apache |
nginx |
Nginx | Linux | geerlingguy.nginx |
ntp |
Chrony NTP | Linux | geerlingguy.ntp |
dns_bind |
BIND9 DNS | Linux | dns_bind (lokal) |
rsyslog |
Central Rsyslog | Linux | rsyslog_server (lokal) |
zabbix_agent |
Zabbix Agent 2 | Linux | community.zabbix.zabbix_agent |
zabbix_server |
Zabbix Server | Linux | community.zabbix.zabbix_server |
pxe |
PXE Boot Server | Linux | pxe_server (lokal) |
haproxy |
HAProxy | Linux | haproxy (lokal) |
ssh_jumpserver |
SSH Jump Server | Linux | jumpserver (lokal) |
ad_dc |
Active Directory DC | Windows | infrabuilder.ad_dc |
adfs |
AD FS | Windows | adfs (lokal) |
dns_ad |
AD-integrerad DNS | Windows | infrabuilder.dns_ad |
gpo |
Group Policy Objects | Windows | gpo (lokal) |
rds |
Remote Desktop Services | Windows | rds (lokal) |
ca |
Certificate Authority | Bada | infrabuilder.ca / community.crypto |
Valj en mall i steg 2 som startpunkt. Alla VLAN-parametrar — ID, namn, subnot och DHCP-intervall — kan redigeras fritt efterat i TUI:n.
Klassisk trelagermodell med separata VLAN for servrar, klienter och management.
| VLAN | Namn | Roll | Subnot | DHCP |
|---|---|---|---|---|
| 10 | servers | lan | 192.168.10.0/24 | 100–200 |
| 20 | clients | lan | 192.168.20.0/24 | 100–250 |
| 99 | management | mgmt | 192.168.99.0/24 | Nej |
Som 3-Tier men med ett dedikerat OOB-VLAN for iDRAC/iLO-hantering.
| VLAN | Namn | Roll | Subnot | DHCP |
|---|---|---|---|---|
| 10 | servers | lan | 192.168.10.0/24 | 100–200 |
| 20 | clients | lan | 192.168.20.0/24 | 100–250 |
| 99 | management | mgmt | 192.168.99.0/24 | Nej |
| 100 | oob | oob | 192.168.100.0/24 | 100–200 |
For enklare miljoer: ett enda platt produktionsnAt kombinerat med ett OOB-VLAN.
| VLAN | Namn | Roll | Subnot | DHCP |
|---|---|---|---|---|
| 1 | default | lan | 192.168.1.0/24 | 100–250 |
| 100 | oob | oob | 192.168.100.0/24 | 100–200 |
InfraBuilderOS anvander ansible-lockdown-rollerna for OS-hardening. Konfigurera niva per VM i steg 7. STIG for Ubuntu ar inte tillgangligt i ansible-lockdown; anvand CIS for Ubuntu-hostar.
| Framework | Niva | OS | Ansible-roll |
|---|---|---|---|
| CIS | L1 / L2 | Ubuntu 22.04 | ansible-lockdown.ubuntu22_cis |
| CIS | L1 / L2 | Ubuntu 24.04 | ansible-lockdown.ubuntu24_cis |
| CIS | L1 / L2 | AlmaLinux 8 | ansible-lockdown.rhel8_cis |
| CIS | L1 / L2 | AlmaLinux 9 | ansible-lockdown.rhel9_cis |
| CIS | L1 / L2 | Windows Server 2022 / 2025 | ansible-lockdown.windows_2022_cis |
| STIG | L1 / L2 | AlmaLinux 8 | ansible-lockdown.rhel8_stig |
| STIG | L1 / L2 | AlmaLinux 9 | ansible-lockdown.rhel9_stig |
Konfigurerbara parametrar per profil: skip_reboot, disruption_high,
enabled_sections och custom_vars.
I steg 12 skapar generatorn foljande katalogstruktur, redo att koras med
ansible-playbook site.yml -i inventory/hosts.ini.
<output-dir>/ ├── ansible.cfg ├── site.yml # Master playbook (importerar alla faser) ├── 01-network.yml # Brandvaggskonfiguration ├── 02-hypervisor.yml # Proxmox-konfiguration ├── 03-vms.yml # Skapa virtuella maskiner ├── 04-base-config.yml # Basinstallning (hostname, SSH, osv.) ├── 05-services.yml # Tjanstinstallation via plugins ├── 06-hardening.yml # OS-hardening (CIS/STIG) ├── 07-oob.yml # OOB-konfiguration (iDRAC/iLO) ├── 08-verify.yml # Driftverifiering ├── inventory/ │ ├── hosts.ini # Inventarielista │ └── group_vars/ │ ├── all.yml # Globala variabler (utan vault) │ ├── all/ │ │ ├── vars.yml # Globala variabler (med vault) │ │ └── vault.yml # Krypterade hemligheter (ansible-vault) │ ├── linux.yml # Linux-specifika variabler │ ├── windows.yml # Windows-specifika variabler │ └── firewall.yml # MikroTik-anslutningsvariabler │ └── host_vars/ │ ├── webb01.yml # Per-host-variabler (en fil per VM) │ └── dc01.yml └── roles/ └── requirements.yml # ansible-galaxy-beroenden
I steg 11 scannar wizarden alla vault_-nyckelreferenser i projektet —
till exempel vault_ca_passphrase, opnsense_api_key — och
presenterar ett maskerat inmatningsfallt for vart och ett.
Varden lagras i minnet och skrivs av generatorn till
inventory/group_vars/all/vault.yml. Kryptera efterat med ansible-vault.
---
vault_ca_passphrase: "hemligt-losenord"
vault_opnsense_api_key: "abc123"
vault_opnsense_api_secret: "xyz789"
ansible-vault encrypt inventory/group_vars/all/vault.yml
Steg 13 kor playbook 08-verify.yml mot den levande infrastrukturen och
jamfor resultatet med vad som ar definierat i projektet. Varje tjanst-plugin implementerar
get_inventory_checks() som genererar de Ansible-tasks som kors.
Tjansten ar aktiv, portarna ar oppna och konfigurationen stammer overens med projektdefinitionen. Inget atgard kravs.
Tjansten kors men avviker fran forvantat tillstand — till exempel fel version, stangd port eller modifierad konfiguration.
Tjansten ar definierad i projektet men hittades inte pa hosten. Troligtvis en misslyckad eller ej utford provisionering.
TUI:n visar resultaten uppdelade per host med en sammanfattning av antal MATCH, DRIFT och MISSING. Varje host kan expanderas for att se detaljerade kontrollresultat.
Steg 14 genererar dokumentation direkt fran projektmodellen. Bade Markdown och standalone-HTML stods. Valj utdatakatalog direkt i TUI:n.
| Typ | Filnamn (Markdown) | Innehall |
|---|---|---|
system_overview |
system_overview.md | Oversikt: VMs, tjanster, natverk och topologi. |
traffic_internal |
traffic_internal.md | Intern trafikmatris mellan VMs och tjanster. |
traffic_external |
traffic_external.md | Extern trafik till och fran brandvAggen. |
user_manual |
user_manual.md | Anvandargranssnitt och dagliga arbetsfloden. |
admin_manual |
admin_manual.md | Administrationsinstruktioner och underhall. |
prerequisites |
prerequisites.md | Krav och forarbeten fore deploy. |
Att lagga till en ny tjanst krAver bara ett Python-objekt och en Ansible-roll.
Pluginen dyker automatiskt upp i steg 6 for alla VMs med ett OS som listas i
supported_os_versions.
from infrabuilder.services.base import ServicePlugin
class MinTjanstPlugin(ServicePlugin):
@property
def name(self) -> str:
return "min_tjanst"
@property
def display_name(self) -> str:
return "Min Tjanst"
@property
def platform(self) -> str:
return "linux" # eller "windows" eller "both"
@property
def supported_os_versions(self) -> list[str]:
return ["ubuntu_2204", "ubuntu_2404", "alma_8", "alma_9"]
def get_role_name(self) -> str:
return "namespace.min_tjanst_roll"
def get_ansible_vars(self, config: dict) -> dict:
return {"min_tjanst_port": config.get("port", 8080)}
def get_dependencies(self) -> list[str]:
return [] # t.ex. ["ntp"] om NTP maste vara installerat forst
def get_ports(self) -> list[dict]:
return [{"port": 8080, "proto": "tcp"}]
def validate(self, config: dict) -> list[str]:
errors = []
port = config.get("port", 8080)
if not isinstance(port, int) or not (1 <= port <= 65535):
errors.append("port maste vara ett heltal mellan 1 och 65535")
return errors
def get_inventory_checks(self) -> list[dict]:
return [
{
"name": "Check min_tjanst is running",
"ansible.builtin.service_facts": {},
}
]
def default_config(self) -> dict:
return {"port": 8080}
from infrabuilder.services.min_tjanst import MinTjanstPlugin # noqa: F401
for _cls in [
...,
MinTjanstPlugin, # <-- lagg till har
]:
registry.register(_cls)
Skapa sedan en Ansible-roll under roles/min_tjanst_roll/ eller registrera
den i roles/requirements.yml for automatisk nedladdning via ansible-galaxy.