Image bauen
docker build
.
Image ID herausfinden
docker images
Image taggen
docker tag <image id> < username/image_name>:latest
Evtl. in die Registry einloggen (mit Username nicht Emailadresse)
docker login
Image Pushen
docker push
Image bauen
docker build
.
Image ID herausfinden
docker images
Image taggen
docker tag <image id> < username/image_name>:latest
Evtl. in die Registry einloggen (mit Username nicht Emailadresse)
docker login
Image Pushen
docker push
1. Virtualenv anlegen
virtualenv -p python3 venv #if python2 is the default interpreter |
2. Libraries installieren (ipykernel nicht vergessen)
pip3 install -r requirements.txt #dependencies |
3. Kernel anlegen
python -m ipykernel install --user --name=venv |
4. Virtual Env aktivieren
source venv/bin/activate |
5. Im Playbook unter Kernel -> Change Kernel den Kernel venv wählen
6. Session beenden wenn Du fertig bist
deactivate |
Mein Linux Mint ist mittlerweile recht antiquiert und ebenso die Software die mitkommt. Auf ein Distupgrade habe ich keine Lust, da die / Partition voll ist und mein Rechner mit 4 Jahren bald ersetzt wird.
Mit Linux Mint 17 bekommt man openssh in der Version 6.6 aber ich brauche das super coole Feature Proxy Jump. Der Spaß ist recht schnell kompiliert:
wget http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz tar -zxvf openssh-7.5p1.tar.gz cd openssh-7.5p1/ ./configure make |
Da ich nur den ssh client benötige mache ich statt
sudo make install |
einfach
sudo cp ssh /usr/bin/ |
Fertig.
ms@w530~/Downloads/openssh-7.5p1$ ssh -V OpenSSH_7.5p1, OpenSSL 1.0.2l 25 May 2017 |
Wenn die Uhr nicht korrekt auf dem Rechner eingestellt ist geschehen die lustigsten Dinge.
Deshalb synchronisiert sich Debian Linux per NTP gegen einen Zeitserver. Manchmal muß man jedoch an sowas vorbei arbeiten.
Um ein Script in der Vergangenheit oder Zukunft auszuführen muß NTP deaktiviert werden.
Unter Debian / Ubuntu funktioniert das so:
root@server:~# timedatectl set-ntp 0 root@server:~# timedatectl set-time 2017-06-20 root@server:~# date Tue Jun 20 00:00:01 CEST 2017 |
Im Anschluss auf keinen Fall vergessen NTP wieder zu aktivieren und die Uhr prüfen!
root@server:~# timedatectl set-ntp 1 root@server:~# date Wed Jun 21 12:30:45 CEST 2017 |
Ansible ist eine ganz nette Software um Serverlandschaften deklarativ zu administrieren /konfigurieren. Nicht so schön ist die Tatsache, daß alles per Yaml definiert wird – einer Auszeichnungssprache die mit Einrückungen arbeitet. Unangenehm wird es, wenn man Vault Files editieren möchte. Diese sind mit einem Passwort verschlüsselt und müssen mit dem Befehl
ansible-vault |
entschlüsselt werden. Im Erfolgsfall öffnet sich nun der Default Editor (konfiguriert über update-alternatives –config editor unter Debian oder Ubuntu).
Das funktioniert prinzipiell, ist aber sehr fehleranfällig beim Anlegen von neuen Strukturen. Um z.B. Sublime Text für das Editieren zu nutzen muß nur die EDITOR Variable gesetzt werden :
EDITOR="subl -n -w" |
Um den Editor dauerhaft auf Sublime umzustellen muß die Variable nur in die Shell Konfiguration ( ~/.bashrc) eingetragen werden:
export EDITOR="subl -n -w" |
Wunderbarer Einzeiler um das zu erledigen:
for filename in *bson; do mongorestore --drop --db <DB-NAME> --collection ${filename%.*} $filename ;done |
Kanboard ist eine nette Software um kleine Projekte oder im Ernstfall sich selbst per Kanban (angeblich spricht der Japaner das als „Kamban“ aus) zu managen. Ich nutze das für kleinere Projekte in- und abseits der Arbeit mit mehr oder weniger Erfolg. Ich habe eine Instanz auf Uberspace installiert weil das Hosting da schmerzfrei über die Bühne geht und ich keinen Server betreuen muß. Einzig der Webspace ist mit 10GB schmal bemessen. Installiert ist Kanboard über git clone – wenn ich mal Lust auf Features habe pull ich einfach den Masterbranch. Bei dieser Taktik wird leider auch jeder einzelne Commit auf die Platte gezogen.
Abhilfe schafft das abschneiden der History:
git clone --depth=1 --branch master https://github.com/fguillot/kanboard |
Bei composer das Flag –no-dev nicht vergessen
composer install --no-dev |
und die Installation ist um ~ 70% geschrumpft
40M kanboard.de |
141M kanboard.de.xxl |
Ansible ist ein nettes Tools um deklarativ Rechner über SSH zu administrieren oder aufzusetzen. Deklarativ meint, daß man Zustände definiert die Ansible herbeiführen soll. Man erklärt in Tasks welche Software auf einem Rechner installiert sein soll und Ansible führ diesen Zustand herbei.
Ab und an muß man diesen deklarativen Pfad leider verlassen. Im konkreten Beispiel müßen alte Datenbanken (benannt nach dem Schema YYYY-mm-dd-hh-i-s) gelöscht werden damit das RDBMS nicht volläuft. Wichtig ist es statt command shell zu nutzen, da es sonst mit dem Pipen nicht klappt.
- name: remove old databases shell: mysql --user={{ vault_mysql_server[env][tld].wp_content_user }} --password='{{ vault_mysql_server[env][tld].wp_content_password }}' --batch --execute "show databases;" |grep wp_content|sort -hr |tail -n+4|while read line; do mysql --user={{ vault_mysql_server[env][tld].wp_content_user }} --password='{{ vault_mysql_server[env][tld].wp_content_password }}' --batch --execute "DROP DATABASE $line;" 2>/dev/null;done register: debugOutput
Für bewegte Bilder auf der Glotze ist bei mir Kodi auf einem Raspberry Pi2 zuständig. Ich nutze dafür die Testbuilds von Milhouse weil man damit auch den Streaming Dienst von Amazon nutzen kann. Wie man das initial einrichtet erklärt Christoph von bei Linuxundich ganz gut. Da es sich um Testbuilds handelt macht es Sinn öfter mal ein Update einzuspielen. Wenn man das händisch macht ist es halt mit viel Arbeit verbunden und Arbeit sollten man vermeiden wo es nur geht. Deshalb habe ich ein kleines Script gebastelt welches mir diese Arbeit abnimmt. Die Geschichte ist natürlich bei weitem nicht perfekt. Ich habe aufgehört als es funktioniert hat.
Wichtig: mein Script lädt die Files für den Raspberry PI2 /3 wenn du einen Raspberry Pi 1 hast solltest Du dieses Script auf keinen Fall verwenden!
Um das ganze zum laufen zu bringen brauchst du PHP und Bash.
Die Scripte liegen in einem Repo auf Github wenn Du dir das genauer anschauen magst.
Falls nicht mußt du nur dieses Phar File und ein Bash Script downloaden und in ein bin folder legen – $USER/bin wäre ein schöner Ort dafür.
Nun muß noch das executable flag gesetzt werden:
chmod +x today-release.phar chmod +x update-kodi.sh |
Einfach das Script mit dem ssh String zum Raspberry aufrufen
update-kodi.sh kodi@192.168.0.89 |
Die Geschichte mit den Scripts ist schon ein wenig smelly. Eigentlich wollte ich mir das mit Ansible aufsetzen und das ADHS hat mich gezwungen diese Scripte zu erzeugen. Sinnvoll wäre es auch, wenn vor dem Einspielen des Updates die /etc/issue geprüft wird um zu schauen ob das Gerät schon auf der aktuellen Version läuft.
Ich parse die Url http://milhouse.libreelec.tv/builds/master/RPi2/ das ist ziemlich unelegant wie ich finde. Gibt es da vielleicht eine Art Http Standard um sowas direkt lesen zu können?
Wie jedes elektrische Gerät wollen auch E-Zigaretten Updates bekommen. Dabei werden Bugfixes eingespielt und neue Features. Die Hersteller bieten natürlich keine Lösung für Linux an. In diesem Beitrag erkläre ich Dir wie Du Updates unter Linux einspielen kannst. Getestet habe ich das mit einer eVic VTwo mini und dem iStick Pico. Unterstützt werden wohl folgende Modelle:
Der Vorgang spielt sich in der Shell ab. Falls Du damit noch nicht so sicher bist solltest Du unbedingt bei den Ubuntuusers vorbeischauen. Für das Updaten wird python-evic von Ban3 verwendet.
sudo apt-get install git python-dev python-setuptools cython libhidapi-dev libusb-1.0-0-dev libudev-dev python-pip libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk |
Das Repository clonen
git clone git://github.com/Ban3/python-evic.git && cd python-evic |
Berechtigungen für udev setzen
sudo cp udev/99-nuvoton-hid.rules /etc/udev/rules.d/ && sudo service udev restart |
Python-Evic installieren
sudo python setup.py install |
Zuerst mußt Du dir das Update beim Hersteller downloaden.
Nun das Gerät per USB an den Rechner anschließen und in der Konsole in das Verzeichnis wechseln und evic-usb mit dem Namen des .bin Files ausführen
evic-usb upload eVic_VTwo_mini_V5.04.bin |
Dafür benötigst du ein Bitmap (bmp) in den Abmessungen 64x40px.
evic-usb upload-logo Logo.bmp |