<! - 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.
<! - Titel und Ankernamen bearbeiten->
Bereiten Sie sich um Docker vor
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
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!
Dieses Mal werden wir Vagrant + vSRX verwenden, um Netzwerkgeräte zu simulieren.
Installieren Sie die vagabundierende und virtuelle Box unter Bezugnahme auf diesen Artikel.
Unter meiner Umgebung
$ vagrant -v
Vagrant 2.2.10
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)
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`.
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
Ich werde ein Git-Labor mit Docker einrichten.
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'
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.
Browserzugriff auf http : // localhost: 10080
Befolgen Sie die Anweisungen auf dem Bildschirm, um das Root-Passwort zu initialisieren.
Erstellen Sie einen Benutzer für oxidiert.
Browserzugriff auf http : // localhost: 10080
Erstellen Sie einen oxidierten Benutzer und fahren Sie wie auf dem Bildschirm gezeigt fort.
Erstellen Sie ein privates Repository zur Verwendung mit oxidiertem. Diesmal mit folgendem Namen. Project name: config-auto-collector
Die Repository-Erstellung ist abgeschlossen.
Bereiten Sie sich um oxidiert vor
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
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
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]
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
Endlich oxidierte Ausführung. Führen Sie es mit gitlab und vSRX aus.
# 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.
Danach stellen wir es in der Produktionsumgebung durch Feinabstimmung und Hostregistrierung bereit.
Tips
Lassen Sie uns die PID töten, die mit ps -ef | grep VBox
herauskommt.
Eindruck, dass vSRX gut aushärtet
Ich habe ungefähr 20.000 Mal "Docker eingeben" gegoogelt. Lass uns erinnern
$ docker-compose exec [Containername] bash
TODO
--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