[DOCKER] Überprüfung der Konfigurationsverwaltungsautomatisierung von Netzwerkgeräten mit oxidiertem und Git-Labor

Einführung

<! - Beschreibung des Anfangs und der Gliederung-> Ein persönliches Verifizierungsprotokoll, das das Konfigurationsmanagement von Netzwerkgeräten mit oxidiertem und Git-Labor automatisiert. Dies kann in Bereichen nützlich sein, in denen viele Netzwerkgeräte betrieben werden.

In dieser Überprüfung werden wir vSRX mit Vagrant und oxidated und gitlab mit Docker starten. Der Zweck besteht darin, die vSRX-Konfiguration automatisch durch Oxidation zu erfassen und in gitlab zu speichern.

Es wäre schön, wenn die verschwenderische Arbeit, die Konfiguration nach dem Ändern der Einstellungen manuell abzurufen, die Datei über USB in den internen NW zu verschieben, sie in einem freigegebenen Ordner zu speichern und die Konfiguration zu verwalten, so weit wie möglich reduziert würde.

Wenn die neueste Konfiguration nicht ordnungsgemäß verwaltet wird, ist es aufgrund eines Fehlers schwierig, das Gerät auszutauschen, sodass es ordnungsgemäß automatisiert wird.

Umgebung

Inhaltsverzeichnis

<! - Titel und Ankernamen bearbeiten->

  1. [Docker-Vorbereitung](# Docker-Vorbereitung)
  2. [Vorbereiten für vSRX](Vorbereiten für #vSRX)
  3. [Für gitlab vorbereiten](Für #gitlab vorbereiten)
  4. [Vorbereitung für oxidiert](Vorbereitung für #oxidiert)
  5. [Ausführen](# Ausführen)

<! - Jedes Kapitel->

Docker bereit

Bereiten Sie sich um Docker vor

Docker-Installation

Installieren Sie Docker und Docker-Compose unter Bezugnahme auf diesen Artikel.

Unter meiner Umgebung

# docker -v
Docker version 19.03.13, build 4484c46d9d
$ docker-compose -v
docker-compose version 1.27.4, build 40524192

Erhöhen Sie das für Docker verfügbare Speicherlimit

Die Mac-Version von Docker kann standardmäßig nur bis zu 2 GB Speicher verwenden. Lesen Sie daher diesen Artikel. Erhöhen Sie es auf das Gefühl. Speicher 4G / Swap 1G? Konsultieren Sie die Maschinenspezifikationen.

Wenn Sie dies nicht tun, werden Sie für den Rest Ihres Lebens von einem 502-Fehler in Gitlab betroffen sein. Beachten Sie, dass Gitlab viel Speicher benötigt!

vSRX-Vorbereitung

Dieses Mal werden wir Vagrant + vSRX verwenden, um Netzwerkgeräte zu simulieren.

Installieren Sie eine vagabundierende und virtuelle Box

Installieren Sie die vagabundierende und virtuelle Box unter Bezugnahme auf diesen Artikel.

Unter meiner Umgebung

$ vagrant -v
Vagrant 2.2.10

Installieren Sie das Vagrant Plugin

Benötige ich ein Plug-In, um vSRX auszuführen?

$ vagrant plugin install vagrant-host-shell
$ vagrant plugin install vagrant-junos

Unter meiner Umgebung

$ vagrant plugin list
vagrant-host-shell (0.0.4, global)
vagrant-junos (0.2.1, global)

vSRX-Start

Starten Sie den alten vSRX auf Vagrant. Verwenden Sie vSRX im Paketmodus (Router). Wenn Sie einen Fehler machen und vSRX im Flow-Modus (FireWall) verwenden, wird es für den Rest Ihres Lebens durch Ping dupliziert (DUP) und Sie werden verrückt.

#Verzeichnis erstellen
$ mkdir vSRX

#In Verzeichnis wechseln
$ cd vSRX

#Erstellen Sie eine vSRX-Vagrant-Datei
$ vagrant init juniper/ffp-12.1X47-D15.4-packetmode

#Stellen Sie die vSRX-IP entsprechend ein. Diesmal 192.168.33.10
$ sed -i '' -e 's/# config.vm.network "private_network", ip: "192.168.33.10"/config.vm.network "private_network", ip: "192.168.33.10"/' Vagrantfile

#VSRX starten Geduldig warten Es dauert eine Weile
$ vagrant up

#Statusprüfung OK, wenn ausgeführt
$ vagrant status
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

vSRX-Benutzererstellung

Erstellen Sie einen Benutzer für die Oxidation zur späteren Verwendung. Arbeiten Sie im selben Verzeichnis wie das vorherige Element. Sie werden den Benutzer und das Passwort später verwenden.

#SSH-Login bei vSRX
$ vagrant ssh
--- JUNOS 12.1X47-D15.4 built 2014-11-12 02:13:59 UTC
root@vsrx%

#Wechseln Sie in den vSRX-CLI-Modus
root@vsrx% cli
root@vsrx> 

#Wechseln Sie in den vSRX-Konfigurationsmodus
root@vsrx> configure
root@vsrx#

#Oxidierter Benutzer hinzugefügt
root@vsrx# set system login user oxidized class super-user
root@vsrx# set system login user oxidized authentication plain-text-password
New password:[Geben Sie Ihr Lieblingspasswort ein]
Retype new password:[Setzen Sie es wieder ein und treten Sie ein]

#Einstellungen festschreiben
root@vsrx# commit

#Beenden Sie vSRX durch mehrmaliges Beenden
# ssh [email protected] gibt auch eine Bestätigung, dass Sie mit 10 ssh können
#Während ssh WARNUNG: REMOTE HOST IDENTIFICATION HAS CHANGED!Wissen, wann es herauskommt_192 von Gastgebern.168.33.Versuchen Sie, 10 zu löschen

Gitlab-Vorbereitung

Ich werde ein Git-Labor mit Docker einrichten.

Erstellen Sie docker-compose.yml

Erstellen Sie eine Docker-Compose-Datei für gitlab.

#Verzeichnis erstellen
$ mkdir gitlab

#In Verzeichnis wechseln
$ cd gitlab

# docker-compose.yaml dateierstellung
$ touch docker-compose.yaml

Bearbeiten Sie die Datei docker-compose.yaml unten.

gitlab/docker-compose.yaml


version: '3.8'
services:
  gitLab:
    image: gitlab/gitlab-ce:latest
    ports:
     - "10080:80"
    volumes:
     - './config:/etc/gitlab'
     - './logs:/var/log/gitlab'
     - './data:/var/opt/gitlab'

Gitlab laufen

Mit "Docker-Compose Up" ausführen

$ docker-compose up -d

docker-compose up selbst ist schnell, Warten Sie geduldig, bis Sie es auf dem Prouser sehen können. Es benötigt viel Zeit. Bis der Start abgeschlossen ist, werden Sie mit einem Fehler wie woops! Oder 502 traurig sein. Lass uns warten.

Gitlab-Zugang

Browserzugriff auf http : // localhost: 10080

fig1.png

Befolgen Sie die Anweisungen auf dem Bildschirm, um das Root-Passwort zu initialisieren.

Gitlab oxidierter Benutzer erstellt

Erstellen Sie einen Benutzer für oxidiert.

Browserzugriff auf http : // localhost: 10080

fig2.png

Erstellen Sie einen oxidierten Benutzer und fahren Sie wie auf dem Bildschirm gezeigt fort.

Erstellen Sie ein Gitlab-Repository

Erstellen Sie ein privates Repository zur Verwendung mit oxidiertem. Diesmal mit folgendem Namen. Project name: config-auto-collector

fig3.png

Die Repository-Erstellung ist abgeschlossen.

fig4.png

Zur Oxidation vorbereitet

Bereiten Sie sich um oxidiert vor

Erstellen Sie docker-compose.yml

Erstellen Sie eine oxidierte Docker-Compose-Datei.

#Verzeichnis erstellen
$ mkdir oxidized

# oxidized/Ziehen nach
$ cd oxidized

# docker-compose.yaml dateierstellung
$ touch docker-compose.yaml

Bearbeiten Sie die Datei docker-compose.yaml unten. Ich habe 2 Tage geschlafen, ohne die Existenz von "extra_hosts" zu kennen Praktisch, da Hosts automatisch im Docker-Container festgelegt werden

oxidized/docker-compose.yaml


oxidized:
  restart: always
  image: oxidized/oxidized:latest
  ports:
    - 8888:8888/tcp
  environment:
    CONFIG_RELOAD_INTERVAL: 600
  volumes:
    - ./oxidized:/root/.config/oxidized
  extra_hosts:
    - vSRX:192.168.33.10

oxidierte Konfiguration

Wir werden die oxidierte Konfiguration einstellen.

#Erstellen Sie ein Moiko-Verzeichnis
$ mkdir oxidized

# oxidized/oxidized/Ziehen nach
$ cd oxidized

#Konfigurationsdatei erstellen
$ touch config

Bearbeiten Sie die Konfiguration unten. Ich habe das Gefühl, dass es unnötige Einstellungen gibt, aber ich glaube und kopiere. Bitte geben Sie einige IPs und Passwörter für Ihre Umgebung ein. Da das Erfassungsintervall (Intervall) 10 Sekunden beträgt, ist eine Optimierung erforderlich, wenn es in die Produktionsumgebung gestellt wird. (Halber Tag, vielleicht jeden Tag)

oxidized/coxidized/config


---
username: oxidized
password: oxidized
model: junos
resolve_dns: true
interval: 10
use_syslog: false
log: "/root/.config/oxidized/logs/oxidized.log"
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 127.0.0.1:8888
next_adds_job: false
vars: {}
groups: {}
models: {}
pid: "/root/.config/oxidized/pid"
crash:
  directory: "/root/.config/oxidized/crashes"
  hostnames: false
stats:
  history_size: 10
input:
  default: ssh, telnet
  debug: false
  ssh:
    secure: false
  ftp:
    passive: true
  utf8_encoded: true
output:
  default: git
  git:
      user: oxidized
      email: [E-Mail-Adresse, die beim Erstellen von oxidiertem Rot mit gitlab angegeben wurde]
      single_repo: true
      repo: "/root/.config/oxidized/config-auto-collector"
hooks:
  push_to_remote:
    type: githubrepo
    events: [post_store]
    remote_repo: "http://[Echte IP des lokalen Hosts]:10080/oxidized/config-auto-collector.git"
    username: oxidized
    password: [gitlab Passwort]
source:
  default: csv
  csv:
    file: "/root/.config/oxidized/router.db"
    delimiter: !ruby/regexp /:/
    map:
      name: 0
      model: 1
      username: 2
      password: 3
    vars_map:
      enable: 4
model_map:
  cisco: ios
  juniper: junos

oxidierte Einstellungen (router.db)

Wir werden die router.db von oxidiert einstellen. Es ist so, als würde man das Netzwerkgerät so einstellen, dass es oxidiert wird.


# oxidized/oxidized/Arbeiten Sie unter Untergebenen
# router.Erstellung einer Datenbankdatei
$ touch router.db

Bearbeiten Sie router.db unten.

oxidized/coxidized/router.db


vSRX:juniper:oxidized:[vSRX oxidiertes Benutzerkennwort]

Repository-Vorbereitung

Lassen Sie uns das von Ihnen erstellte Repository klonen. Stellen Sie sicher, dass Sie mit der realen IP zugreifen, ohne localhost usw. zu verwenden. Dieses Repository ist eine Datei, die für den Docker-Container freigegeben ist Wenn Sie es auf localhost setzen, können Sie von der Docker-Container-Seite nicht einfach darauf zugreifen. (vielleicht)

# oxidized/oxidized/Arbeiten Sie unter Untergebenen
$ git clone http://oxidized@[Echte IP des lokalen Hosts]:10080/oxidized/config-auto-collector.git

Lauf

Endlich oxidierte Ausführung. Führen Sie es mit gitlab und vSRX aus.

oxidierter Start

# oxidized/Arbeiten Sie unter Untergebenen
$ docker-compose up -d

Wenn alles gut geht, wird die vSRX-Konfiguration automatisch zum Repository hinzugefügt. Wenn Sie die vSRX-Konfiguration ändern, wird sie natürlich automatisch in das Repository übertragen. Ich bin glücklich.

fig5.png

Danach stellen wir es in der Produktionsumgebung durch Feinabstimmung und Hostregistrierung bereit.

Tips

Wenn der Vagabund gefriert

Lassen Sie uns die PID töten, die mit ps -ef | grep VBox herauskommt. Eindruck, dass vSRX gut aushärtet

Betreten Sie den Docker-Container

Ich habe ungefähr 20.000 Mal "Docker eingeben" gegoogelt. Lass uns erinnern

$ docker-compose exec [Containername] bash

TODO

Impressionen

--Deoxidiert ist mit wenigen Dokumenten schmerzhaft ――Wenn Sie ins Internet gehen können, müssen Sie gitlab nicht lokal einrichten. ――Nach der Bereitstellung scheint die Bedienung einfach zu sein

Ende

Recommended Posts

Überprüfung der Konfigurationsverwaltungsautomatisierung von Netzwerkgeräten mit oxidiertem und Git-Labor
Kommunizieren Sie zwischen Gitlab und Gitlab Runner, die mit Docker gestartet wurden