MikroTik – Część 24: GitOps, Ansible i REST API – nowoczesne zarządzanie konfiguracją MikroTik
Sieci komputerowe

MikroTik – Część 24: GitOps, Ansible i REST API – nowoczesne zarządzanie konfiguracją MikroTik

MikroTik – kompleksowa konfiguracja sieci od podstaw do zaawansowanych rozwiązań

Część 24: GitOps, Ansible i REST API – nowoczesne zarządzanie konfiguracją MikroTik

W tradycyjnym modelu administracji infrastruktura sieciowa była konfigurowana ręcznie, co niosło za sobą ryzyko błędów, brak spójności, problemy ze skalowaniem i trudności w utrzymaniu audytowalności. W nowoczesnych środowiskach IT, zwłaszcza tych opartych o podejście DevSecOps i Zero Trust, pojawiła się potrzeba traktowania konfiguracji jako kodu (Infrastructure as Code – IaC).

W tym artykule pokażemy, jak połączyć MikroTik z procesem GitOps, używać Ansible do zarządzania urządzeniami i budować automatyczne pipeline’y z wykorzystaniem REST API RouterOS.

MikroTik – Część 24: GitOps, Ansible i REST API – nowoczesne zarządzanie konfiguracją MikroTik
MikroTik – Część 24: GitOps, Ansible i REST API – nowoczesne zarządzanie konfiguracją MikroTik

Czym jest GitOps?

GitOps to podejście, w którym repozytorium Git pełni rolę „źródła prawdy” dla konfiguracji infrastruktury. Zmiany w repozytorium automatycznie wywołują mechanizmy synchronizujące stan rzeczywisty infrastruktury z zapisanym kodem.

Dlaczego warto wdrożyć GitOps dla MikroTik?

  • Spójność i audytowalność zmian
  • Historia commitów i rollback
  • Automatyzacja konfiguracji
  • Integracja z CI/CD i systemami kontroli dostępu

Krok 1: Przygotowanie repozytorium Git

Struktura katalogów:

mikrotik-configs/
├── production/
│   └── core-router.rsc
├── staging/
│   └── test-router.rsc
├── roles/
│   ├── nat.yaml
│   ├── firewall.yaml
│   └── vpn.yaml
└── templates/
    └── base_config.j2

Każdy plik .rsc zawiera komendy RouterOS CLI, które mogą zostać zaaplikowane do konkretnego routera. YAML-owe role zawierają dane wejściowe dla szablonów Jinja2 używanych przez Ansible.


Krok 2: Automatyzacja z Ansible

Instalacja wymaganych modułów:

pip install ansible
pip install routeros-api

inventory.ini

[mikrotik]
router1 ansible_host=192.168.88.1 ansible_user=admin ansible_password=sekret

playbook.yaml

- hosts: mikrotik
  gather_facts: no
  tasks:
    - name: Wczytaj konfigurację bazową
      routeros_command:
        commands:
          - /import file-name=core-router.rsc

Wgrywanie pliku konfiguracyjnego (zdalnie przez API):

    - name: Skopiuj plik konfiguracyjny
      ansible.builtin.copy:
        src: production/core-router.rsc
        dest: /root/core-router.rsc

Krok 3: REST API MikroTik (v7+)

Od RouterOS v7 dostępne jest REST API, które można wykorzystać do dynamicznego pobierania/wgrywania konfiguracji i automatyzacji działań.

Czytaj  Konfiguracja IPv6 w Windows Server: Kompletny przewodnik

Przykład: pobranie listy interfejsów

curl -k -u admin:sekret https://192.168.88.1/rest/interface

Przykład: zmiana adresu IP

curl -k -u admin:sekret -X PATCH https://192.168.88.1/rest/ip/address/0 \
  -H 'Content-Type: application/json' \
  -d '{"address": "192.168.1.1/24"}'

Zalety REST API:

  • Bezpieczne (HTTPS)
  • Możliwość integracji z dowolnym językiem (Python, Go, Bash)
  • Działa niezależnie od WinBoxa

Krok 4: Integracja z CI/CD (GitLab CI, GitHub Actions)

Przykład .gitlab-ci.yml

stages:
  - deploy

deploy_mikrotik:
  stage: deploy
  image: python:3.11
  script:
    - pip install routeros-api
    - python deploy_config.py

deploy_config.py

from routeros_api import RouterOsApiPool

config_lines = open("production/core-router.rsc").read().splitlines()

api = RouterOsApiPool('192.168.88.1', username='admin', password='sekret', plaintext_login=True)
conn = api.get_api()

for cmd in config_lines:
    conn.get_binary_resource('/').call('cli', {'command': cmd})

Krok 5: Monitorowanie i audyt

Zintegrowany system powinien rejestrować:

  • kto wykonał zmianę (Git user),
  • kiedy zmiana była zaaplikowana,
  • różnice między wersjami,
  • sukces/niepowodzenie komend,
  • logi z SIEM (logowanie przez syslog i REST).

Dodatkowo można skonfigurować webhooki do Slacka/Discorda lub SIEM/SOAR informujące o każdej zmianie.


Korzyści z wdrożenia GitOps dla MikroTik

✅ Zautomatyzowana infrastruktura
✅ Wersjonowanie i rollback konfiguracji
✅ Integracja z DevSecOps
✅ Redukcja błędów manualnych
✅ Zgodność z politykami bezpieczeństwa (np. NIS2, ISO 27001)
✅ Skalowalność w środowiskach z wieloma routerami


Co dalej?

W kolejnej części (Część 25) przyjrzymy się tworzeniu dynamicznego systemu zarządzania ACL i regułami firewall w MikroTik z użyciem API, GitOps i integracji z Threat Intelligence (np. AbuseIPDB, MISP, AlienVault OTX).

 

Polecane wpisy
Protokół OSPF – Serce Ruterów w Sieciach Autonomicznych
Protokół OSPF - Serce Ruterów w Sieciach Autonomicznych

Protokół OSPF - Serce Ruterów w Sieciach Autonomicznych Wprowadzenie Protokół OSPF (Open Shortest Path First) to fundamentalny element współczesnych sieci Czytaj dalej

Jak podłączyć się do internetu
Jak podłączyć się do internetu

Jak podłączyć się do internetu Internet to globalna sieć komputerowa, która umożliwia dostęp do informacji i usług z dowolnego miejsca Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.