From 9ef0f7c93cb9c6e70d584664d742d986896dd6d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zi=C4=99tkiewicz?= Date: Fri, 2 Jul 2021 23:41:30 +0200 Subject: [PATCH] Dodano informacje o konfiguracji srodowiska --- IUM.Dla prowadzacego.ipynb | 87 +++++++++++++++++++++++++++++++++++++ IUM_02.Dane.ipynb | 2 +- IUM_03.CI-Jenkins.ipynb | 22 ++++++---- IUM_04.Konteneryzacja.ipynb | 2 +- 4 files changed, 102 insertions(+), 11 deletions(-) create mode 100644 IUM.Dla prowadzacego.ipynb diff --git a/IUM.Dla prowadzacego.ipynb b/IUM.Dla prowadzacego.ipynb new file mode 100644 index 0000000..7599a25 --- /dev/null +++ b/IUM.Dla prowadzacego.ipynb @@ -0,0 +1,87 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ac87c554", + "metadata": {}, + "source": [ + "# Środowisko wykorzystywane na zajęciach" + ] + }, + { + "cell_type": "markdown", + "id": "167416f3", + "metadata": {}, + "source": [ + "Certificat SSL dla strony: https://letsencrypt.org/\n", + "Instrukcja instalacji: https://certbot.eff.org/lets-encrypt/ubuntufocal-other\n", + "\n", + "Instalacja certyfikatu w Jenkins: https://www.vhinandrich.com/jenkins-standalone-ssl-lets-encrypt\n", + "\n", + "Ścieżka do certyfikatu, którego ma używać Jenkins może być podana w dwóch miejscach (na Ubuntu 20.04):\n", + "`/etc/default/jenkins` lub `/etc/init.d/jenkins`\n", + "Ważne, aby w końcu w zmiennej `JENKINS_ARGS` znalazły się następujące parametry:\n", + "```\n", + "--httpPort=-1\n", + "--httpsPort=8080\n", + "--httpsKeyStore=/var/lib/jenkins/jenkins.jks\n", + "--httpsKeyStorePassword=TUTAJ_HASŁO_PODANE_PRZY_KONWERSJI\"\n", + "```\n", + "albo:\n", + "```\n", + "--httpPort=-1\n", + "--httpsPort=8080\n", + "--httpsCertificate=/var/lib/jenkins/fullchain.pem\n", + "--httpsPrivateKey=/var/lib/jenkins/privkey-rsa.pem\n", + "```\n", + "W zależności od tego, do jakiego formatu przekonwertowaliśmy nasz certyfikat\n", + "\n", + "\n", + "\n", + "\n", + "Po 3 miesiącach certyfikat wygasa. Jeśli narzędzie certbot zostało poprawnie skonfigurowane,to powinno automatycznie odświeżać certyfikat. Niestety nie jest to certyfikat bezpośrednio używany przez Jenkins (ten wymaga konwersji do formatu `*.pem` albo `*.jks`). Dlatego przed wygaśnięciem certyfikatu musimy ręcznie dokonać konwersji (patrz https://www.vhinandrich.com/jenkins-standalone-ssl-lets-encrypt) albo dodać konwersję do post-hook w /etc/letsencrypt/renewal-hooks/post/ \n", + "\n", + "Przykładowy skrypt post (przy okazji restartuje działający na porcie 80 serwer nginx strzegący dostępu do MlFlow:\n", + "```\n", + "cd /home/tzietkiewicz/docker_mlflow_db && docker-compose start\n", + "\n", + "cd /etc/letsencrypt/live/tzietkiewicz.vm.wmi.amu.edu.pl/ && \\ \n", + "openssl pkcs12 -inkey privkey.pem -in fullchain.pem -export -out keys.pkcs12 -password HASLO_CERTYFIKATU && \\\n", + "keytool -importkeystore -srckeystore keys.pkcs12 -srcstoretype pkcs12 -destkeystore /var/lib/jenkins/jenkins.jks.new -srcstorepass HASLO_CERTYFIKATU -deststorepass HASLO_CERTYFIKATU && \\\n", + "mv /var/lib/jenkins/jenkins.jks.new /var/lib/jenkins/jenkins.jks && \\\n", + "service jenkins restart\n", + "```\n", + "`HASLO_CERTYFIKATU` może być dowolne - tutaj je generujemy, ale to samo musimy podać Jenkinsowi w `/etc/default/jenkins` lub `/etc/init.d/jenkins`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60970c71", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/IUM_02.Dane.ipynb b/IUM_02.Dane.ipynb index 05107a4..75bcd57 100644 --- a/IUM_02.Dane.ipynb +++ b/IUM_02.Dane.ipynb @@ -1478,7 +1478,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.9.1" }, "toc": { "base_numbering": 1, diff --git a/IUM_03.CI-Jenkins.ipynb b/IUM_03.CI-Jenkins.ipynb index 85bf791..27ee467 100644 --- a/IUM_03.CI-Jenkins.ipynb +++ b/IUM_03.CI-Jenkins.ipynb @@ -399,17 +399,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Groovy", - "language": "groovy", - "name": "groovy" + "display_name": "Python 3", + "language": "python", + "name": "python3" }, "language_info": { - "codemirror_mode": "groovy", - "file_extension": ".groovy", - "mimetype": "", - "name": "Groovy", - "nbconverter_exporter": "", - "version": "2.5.6" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.1" }, "toc": { "base_numbering": 1, diff --git a/IUM_04.Konteneryzacja.ipynb b/IUM_04.Konteneryzacja.ipynb index 45ccd58..0ed93ff 100644 --- a/IUM_04.Konteneryzacja.ipynb +++ b/IUM_04.Konteneryzacja.ipynb @@ -578,7 +578,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.9.1" }, "toc": { "base_numbering": 1,