Dies ist der Artikel am 9. Tag von Engineer Advent Calendar 2019.
Ich habe das Skript berührt, das den Server des Unternehmens sichert, und wollte selbst etwas erstellen. Ich denke auch, dass es für Anfänger eine Verschwendung ist, beim Aufbau einer Umgebung zu stolpern. Ich möchte, dass Sie dies verwenden, wenn Sie möchten. Quelle
Ich hoffe, Sie werden mehr verstehen, wenn Sie diesen Artikel zusammen mit der Quelle lesen.
OS: Windows10 Vagrant, VirtualBox, Cmder werden verwendet. Laden Sie sie herunter Bitte installieren Sie es.
Dieses Skript automatisiert eine Reihe von Aufgaben zum Erstellen einer virtuellen Umgebung mit Vagrant und Virtualbox. Als Fluss
Zum Ausführen des Skripts sind zwei Argumente erforderlich. Einer ist der Name des Verzeichnisses Der andere ist der Typ der virtuellen Maschine.
Erstellen Sie zunächst eine Datei zum Speichern der Vagrant-Datei. In meinem Fall habe ich ein Verzeichnis mit dem Namen "C: \ Benutzer \ Benutzername \ VM" als ROOT-Verzeichnis erstellt und das als Argument empfangene Verzeichnis erstellt.
setup.sh
DIR_NAME=$1
cd $ROOT_DIR
if [ ! -d "$DIR_NAME" ]; then
mkdir $ROOT_DIR/$DIR_NAME
fi
$ HOME / VM ist der Variablen ROOT_DIR zugeordnet.
Dieses $ HOME / VM
steht für C: \ Users \ username \ VM
.
DIR_NAME=$1
Dieses "$ 1" ist das erste Argument. Wenn Sie den Befehl "sh setup.sh aaa" ausführen, wird "aaa" in "$ 1" eingegeben. Wie wir später sehen werden, gibt es auch "$ 2" und "$ 3", die das zweite bzw. dritte Argument darstellen.
if [ ! -d "$DIR_NAME" ]; then
//wird bearbeitet
fi
Die if-Anweisung hier dient zum Erstellen des Verzeichnisses, wenn kein Verzeichnisname als Argument empfangen wurde.
-d
prüft, ob ein Verzeichnis vorhanden ist.
Führen Sie "vagrant init" in dem Verzeichnis aus, das Sie gerade erstellt haben, um eine Vagrant-Datei zu erstellen. Box wird auch zum Zeitpunkt der Init angegeben. Die Box, die ich benutze, ist Bento / CentOS 7.5. (Bitte ändern Sie hier nach Bedarf.)
setup.sh
count_dir
cd $ROOT_DIR/$DIR_NAME
vagrant init bento/centos-7.5
if [ -f Vagrantfile ]; then
sed -i '31a \ config.vm.network "forwarded_port" ,guest: 80, host: 8080, host_ip: "127.0.0.1"' Vagrantfile
sed -i '35a \ config.vm.network "private_network", ip: "192.168.33.10"\n config.vm.network :public_network, ip: "192.168.11.'$((100+$COUNT))'", bridged: "en1: Wi-Fi(AirPort)"' Vagrantfile
sed -i '69a \ config.vm.provision "shell", :path => "provision.sh", :privileged => false' Vagrantfile
fi
Das Vagranfile wird in der if-Anweisung neu geschrieben. Der Forward-Port wird oben angegeben. Die IP-Adresse für das öffentliche Netzwerk wird in der Mitte angegeben. Die IP-Adresse ändert sich entsprechend der Anzahl der Verzeichnisse, die von der Funktion "count_dir" abgerufen werden. (Ich dachte, diese Funktion wäre am Anfang notwendig, aber ich habe nicht darüber nachgedacht.) Schließlich habe ich eine Zeile hinzugefügt, in der "vagabundierende Bestimmungen" verwendet werden.
Erstellen Sie schließlich provision.sh. Beschreiben Sie in provision.sh, was Sie ausführen möchten, wenn Sie vagabundieren. Innerhalb des Skripts gibt es common.sh, das allgemeine Befehle beschreibt, die auf jedem Computer ausgeführt werden sollen, und ein Skript, das Befehle beschreibt, die in jeder Umgebung ausgeführt werden sollen. Erstellen Sie provision.sh, indem Sie diese common.sh mit dem Skript kombinieren, das in jeder Umgebung ausgeführt werden soll.
setup.sh
case "$ENV_TYPE" in
"dev") cp -p $DEV/development.sh provision.sh.org ;;
*) ERROR_NUM=5
get_errormessages
exit ;;
esac
if [ -f provision.sh.org ]; then
cp -p $COMMON/common.sh common.sh
cp -p $COMMON/end.sh end.sh
cat common.sh provision.sh.org end.sh > provision.sh
rm common.sh provision.sh.org end.sh
fi
\ $ ENV_TYPE enthält den Typ der virtuellen Maschine, der durch das zweite Argument angegeben wird. (Derzeit nur Entwickler) Wenn \ $ ENV_TYPE dev ist, wird das Skript aus dem angegebenen Ordner kopiert.
Alles, was Sie tun müssen, ist Vagabund zu laufen. Führen Sie den in provision.sh beschriebenen Befehl aus, der zuvor erstellt wurde, wenn vagrant up ausgeführt wird, um die virtuelle Maschine einzurichten.
Das Obige ist der allgemeine Ablauf des diesmal erstellten Skripts zur Automatisierung der Umgebungskonstruktion. Ich habe dieses Skript zum Spaß und zum Lernen erstellt, aber ich hoffe, dass Anfänger, die über die Erstellung von Umgebungen stolpern, Spaß daran haben können, damit zu programmieren.
Ich denke, es ist schwer mit einem kindischen Satz zu verstehen. Wenn Sie Fragen haben, hinterlassen Sie bitte einen Kommentar.
Recommended Posts