Quantum-Cli 2.6.0
quantum-cli ist ein von Planetary Quantum entwickeltes Werkzeug für Kunden unserer Plattform.
Aktuell bietet quantum-cli bereits Integrationsmöglichkeiten für CI/CD-Pipelines (z.B. mit Jenkins, Drone, Github, Gitlab) unserer Kunden. Unser aktuelles quantum-cli Release fügt zwei weitere Sub-Commands (quantum-cli) ps und (quantum-cli) exec hinzu. Diese Funktionen haben wir auf Wunsch unserer Kunden entwickelt und vereinfachen den täglichen Umgang mit Containern auf der Quantum Plattform deutlich.
quantum-cli ps
„ps“ Zeigt Ihnen laufende Tasks (Container) auf Ihrem Cluster an. So eignet sich die Ausgabe zum Beispiel um einen bestimmten Task (Container) zu finden, oder für schnelles Debuggen/Troubleshooting bei Problemen.
quantum-cli exec
Mit „exec“ steigen Sie direkt in einen Container ein.
Voraussetzung dafür ist, dass im Container eine Shell installiert hat. Und dann ist mit „exec“ zum Beispiel das Ausführen von Datenbankmigration, einfaches Debugging/Troubleshooting und das Livetesten von Änderungen in Containern jeder Zeit möglich.
Alle Filter lassen sich nicht nur über die Flags am jeweiligen Subcommand, –stack und –service, sondern auch über Umgebungsvariablen (QUANTUM_STACK und QUANTUM_SERVICE — sowie die bereits vorhanden QUANTUM_ENDPOINT, QUANTUM_USER und QUANTUM_PASSWORD) steuern. Im Repository-Context vermeiden Sie damit unnötige Schreibarbeit und kommen schnell zum Ziel: Zugriff auf die für Ihr Projekt laufenden Services und Tasks. Wir empfehlen dafür das Werkzeug direnv.
quantum-cli ps
Der folgende Ausschnitt zeigt alle Services (und Tasks) aus einem Stack („quantum-id-production“). Zu jedem Service wird ein Status angezeigt, ggf. die Task-ID und Slot (welche optional bei exec verwendet werden können). Außerdem stellen wir dar wann der Service zuletzt aktualisiert wurde (oder wann ein Deployment stattfand), sowie das aktuell verwendete Dockerimage. Mit dem Filter –all, können Sie sich außerdem historische Daten zum Service anzeigen lassen.
❯ quantum-cli ps --stack quantum-id-production
■ stack quantum-id-production
■ service nginx ──────────────────────────────────────────────────── replicated 1/1
STATUS ID SLOT UPDATED NODE IMAGE
running 09d223e1 1 2021-09-27 09:40:14 node-00x.*** r.planetary-quantum.com/***-nginx:0.3
■ service php ────────────────────────────────────────────────────── replicated 1/1
STATUS ID SLOT UPDATED NODE IMAGE
running d294700c 1 2021-09-27 09:40:28 node-00y.*** r.planetary-quantum.com/***id-bothend:0.3
■ service redis ──────────────────────────────────────────────────── replicated 1/1
STATUS ID SLOT UPDATED NODE IMAGE
running 42309ac0 1 2021-09-27 07:12:08 node-00y.*** redis:latest
■ service mysql ──────────────────────────────────────────────────── replicated 1/1
STATUS ID SLOT UPDATED NODE IMAGE
running 7790bfc4 1 2021-09-27 07:12:12 node-00x.*** mysql:5.7
quantum-cli exec
Der folgende Ausschnitt zeigt eine interaktive Verbindung mit einem MySQL-Container an — z.B. um Abfragen zu inspezieren, Backups durchzuführen oder ähnliches.
❯ quantum-cli exec --stack *** --service mysql
# mysql -u GEHEIM -pSUPER-GEHEIM
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 39060
Server version: 5.7.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show processlist;
+-------+--------------+-----------+------+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-------+--------------+-----------+------+---------+------+----------+------------------+
| 39060 | geheim | localhost | NULL | Query | 0 | starting | show processlist |
+-------+--------------+-----------+------+---------+------+----------+------------------+
1 row in set (0.00 sec)
FIN
Wie immer freuen wir uns über Feedback und Anregungen für weitere Features. Bitte sprechen Sie uns an.