Mir ist gerade folgendes aufgefallen.
Ich arbeite gerade an einem Projekt mit Docker, InfluxDB und Python. Die DB läuft bereits im Swarm von Docker und wird mittels einen start.sh Script gestart.
Jetzt bin ich seit ca. 3 Stunden dabei, das Startscript in Python zu schreiben. Mir ist gerade klar geworden das es eigentlich unnötig ist. Da ein Script zum Init und der Rest via Konsole Funktionsfähig ist.
Trotzdem bilde ich mich das ein haben zu wollen...
Das ist ja nicht wenig "Zeit" die man verdaddelt, wenn auch im eigentlichen Thema/Projekt.
Ich bin Anfänger und verrenne mich in Wünschen und Funktionalitäten. Ich seh eine Funktion und denke "Cool, haben will" und muss mich zu sehr einlesen. Was auch wieder Zeit kostet...
Meine Frage dazu!
Wie geht ihr damit um? Kann man das als allgemeinen Lernprozess verbuchen? Oder sollte ich mich auf die wirklichen Funktionen konzentrieren und später bei Bedarf ausbauen.
Ich ringe gerade mit diesen Gedanken...
Deswegen wollt ich das mal loswerden...
Am Beispiel hier. Die Sys.argv sind/waren erstmal überhaupt nicht wichtig..Trotzdem wollte und hab ich sie implementiert...
Code: Alles auswählen
import sys, getopt
import machine
import docker
MACHINES = machine.Machine(path="/usr/local/bin/docker-machine")
class Noder():
def __init__(self, manager_anzahl, node_anzahl):
"""
Init Nodes sowohl im Dev als auch Run Modus
startet die Nodes
Node Handling? Class via Nodenamen aufrufen?
speicherung der Infos in der Class siehe List machine.ls()
:param manager_anzahl: int
:param node_anzahl: int
"""
self.manager_anzahl = manager_anzahl
self.node_anzahl =node_anzahl
def node_info(self):
MACHINES.ls()
def default_swarm_init():
# Hier docker stack deploy -c docker-compose.yml
print("Init swarm ohne machines")
def default_machine_init():
"""
vielleicht in Class verpacken
vererbeung für die Node
"""
nodelist = MACHINES.ls()
for node in nodelist:
print(node["Name"])
def manager_anzahl(man_anzahl):
# if machine ls == man_zahl pass ansonsten init X
pass
def node_anzahl(node_anzahl):
# if docker ls == node_anzahl pass ansonsten init X
pass
def main(argv):
opts = []
args = [] # ggf. später verwenden
try:
opts, args = getopt.getopt(argv[1:], "hdm:n:", ["help", "manageranzahl=", "nodeanzahl="])
except:
print("start_dockering.py -d <devmode 0|1> -m <manageranzahl> -n <nodeanzahl>")
for o, a in opts:
if o == "--help" or o == "-h":
print("HELP")
print("start_dockering.py -d -m <manageranzahl> -n <nodeanzahl>")
elif o == "--manageranzahl" or o == "-m":
print(f"Starte mit {a} Managern")
manager_anzahl(a)
elif o == "-d":
print("Starte im Dev Mode")
default_machine_init()
elif o == "--nodeanzahl" or o == "-n":
print(f"Starte mit {a} Nodes")
node_anzahl(a)
if __name__ == "__main__":
main(sys.argv)