Notieren Sie sich das Verfahren zum Erstellen der Python-Umgebung unter Cent OS. Dies ist nur ein Memo über den Konstruktionsvorgang. Wenn Sie also tatsächlich in der Produktionsumgebung bauen, werden diese Informationen nicht zum Erstellen und Betreiben der Produktionsumgebung verwendet. Die Umgebung ist wie folgt und wird mit einer virtuellen Maschine auf VMware erstellt.
Was ich tun möchte, ist wie folgt.
Nach dem folgenden Verfahren wird davon ausgegangen, dass das Betriebssystem bereits installiert ist. Als Konvention ist \ # der Root-Benutzer, $ der allgemeine Benutzer und >>> die Eingabeaufforderung, die angibt, dass Python ausgeführt wird.
Aktualisieren Sie es zunächst.
Ausführungsbefehl
# yum update
Erstellen Sie als Nächstes einen Benutzer für jupyter.
Benutzer erstellen
# useradd jupyter
# passwd jupyter
Ändern Sie das Passwort für den Benutzer jupyter.
Neues Kennwort:
Bitte geben Sie Ihr neues Passwort erneut ein:
passwd:Alle Authentifizierungstoken wurden erfolgreich erneuert.
Laden Sie zunächst das Installationsprogramm der Version herunter, die Sie installieren möchten.
Laden Sie die Anaconda-Installationsshell herunter
# wget https://repo.continuum.io/archive/Anaconda3-5.3.1-Linux-x86_64.sh
Führen Sie als Nächstes das heruntergeladene Installationsprogramm aus. Zum Zeitpunkt der Ersteinstellung werden Sie nach dem Installationsverzeichnis gefragt, setzen jedoch / opt / anaconda3 / anstelle der Ersteinstellung. Ansonsten fahren Sie mit Ja fort.
Führen Sie die Installationsshell aus
# bash Anaconda3-5.3.1-Linux-x86_64.sh
...
Anaconda3 will now be installed into this location:
/root/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/root/anaconda3] >>> /opt/anaconda3/ <-Ändern Sie das Installationsverzeichnis
Wenn Sie die Shell nicht einmal neu laden, wird der Pfad möglicherweise nicht geladen und der Befehl conda ist möglicherweise nicht verfügbar. Laden Sie ihn daher neu.
Shell-Profil neu laden
# source ~/.bashrc
Überprüfen Sie danach die Version als Testversion.
Anaconda Versionsprüfung
# conda --version
conda 4.8.4
Anaconda ist installiert und Versionsinformationen werden angezeigt.
Nachdem die Installation von Anaconda abgeschlossen ist, installieren Sie als nächstes Qiskit.
Installieren Sie zuerst gcc.
gcc Installation
# yum install gcc
Starten Sie als Nächstes die virtuelle Umgebung von Anaconda und installieren Sie dort qiskit.
Installieren Sie Qiskit
# conda create -n myenv python=3
# source activate myenv
(myenv) # pip install qiskit
Überprüfen Sie, ob es installiert ist.
Bestätigung der Qiskit-Installation
(myenv) # conda list | grep qiskit
qiskit 0.21.0 pypi_0 pypi
qiskit-aer 0.6.1 pypi_0 pypi
qiskit-aqua 0.7.5 pypi_0 pypi
qiskit-ibmq-provider 0.9.0 pypi_0 pypi
qiskit-ignis 0.4.0 pypi_0 pypi
qiskit-terra 0.15.2 pypi_0 pypi
Überprüfen Sie als Nächstes die installierte Version von Qiskit.
Python-Ausführung
(myenv) # python
Python 3.8.5 (default, Sep 4 2020, 07:30:14)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
Importieren Sie Qiskit und führen Sie den Versionsbestätigungsbefehl aus.
Überprüfen Sie die Version von Qiskit
>>> import qiskit
>>> qiskit.__qiskit_version__
{'qiskit-terra': '0.15.2', 'qiskit-aer': '0.6.1', 'qiskit-ignis': '0.4.0', 'qiskit-ibmq-provider': '0.9.0', 'qiskit-aqua': '0.7.5', 'qiskit': '0.21.0'}
Wenn die Bestätigung abgeschlossen ist, drücken Sie Strg-D, um Python zu beenden.
JupyterHub installieren
# conda install -c conda-forge jupyterhub
# conda install notebook
Erstellen Sie nach Abschluss der Installation eine Konfigurationsdatei.
Konfigurationsdatei generieren
(myenv) # cd /opt/
(myenv) # jupyterhub --generate-config
Writing default config to: jupyterhub_config.py
# ls -l
44 insgesamt
drwxr-xr-x.26 Wurzel Wurzel 4096 18. September 18:49 anaconda3
-rw-r--r--.1 Wurzel Wurzel 40275 18. September 19:00 jupyterhub_config.py
drwxr-xr-x.2 Wurzel Wurzel 6 31. Oktober 2018 rh
Sobald die Konfigurationsdatei erstellt wurde, bearbeiten Sie sie.
Konfigurationsdatei bearbeiten
(myenv) # vim jupyterhub_config.py
Fügen Sie den folgenden Inhalt hinzu. Die beiden unteren Zeilen sind die Einstellungen, die für die Dienstkonvertierung erforderlich sind.
/opt/jupyterhub_config.py
c.Spawner.notebook_dir = '~/notebook'
c.Authenticator.whitelist = {'jupyter'}
c.Authenticator.admin_users = {'root'}
c.ConfigurableHTTPProxy.command = '/opt/anaconda3/envs/myenv/bin/configurable-http-proxy'
c.Spawner.cmd = ['/opt/anaconda3/envs/myenv/bin/jupyterhub-singleuser']
Erstellen Sie als Nächstes ein Verzeichnis für Benutzer, die JupyterHub verwenden.
Verzeichnis für Benutzer erstellen
# mkdir -p /home/jupyter/notebook
# chown jupyter:jupyter /home/jupyter/notebook
Starten Sie JupyterHub.
Starten Sie Jupyter Hub
# jupyterhub &
JupyterHub läuft auf Port 8000, erlauben Sie also Port 8000.
Firewall-Berechtigungseinstellungen
# firewall-cmd --add-port=8000/tcp --permanent
success
# firewall-cmd --reload
success
Versuchen Sie, vom Host-Computer aus auf http://192.168.249.130:8000/ zuzugreifen.
Ich konnte darauf zugreifen.
Versuchen Sie als Nächstes, sich als Jupyter-Benutzer anzumelden.
Ich konnte mich einloggen.
Überprüfen Sie, ob Qiskit ausgeführt werden kann.
Ich konnte es ausführen.
Machen Sie es schließlich zu einem Service.
Nehmen Sie verschiedene Einstellungen vor.
Einstellungen für den Jupyterhub-Dienst
# conda install --quiet --yes notebook jupyterhub nodejs configurable-http-proxy
# npm install -g configurable-http-proxy
# ln -s /usr/bin/nodejs /usr/bin/node
# npm -v
# npm cache clean -f
# npm install -g n
# n stable
Überprüfen Sie den Pfad des Befehls jupyterhub, um die Definitionsdatei für die Dienstregistrierung zu erstellen.
Überprüfen Sie den Pfad von Jupyterhub
(myenv) # which jupyterhub
/opt/anaconda3/envs/myenv/bin/jupyterhub
Sobald die Informationen erhalten wurden, erstellen Sie eine Definitionsdatei.
Definitionsdatei erstellen
(myenv) # vim /etc/systemd/system/jupyterhub.service
Fügen Sie den folgenden Inhalt hinzu.
/etc/systemd/system/jupyterhub.service
[Unit]
Description = JupyterHub
[Service]
Type=simple
PIDFile=/var/run/jupyterhub.pid
ExecStart=/opt/anaconda3/envs/myenv/bin/jupyterhub
WorkingDirectory=/opt/
Restart=always
[Install]
WantedBy = multi-user.target
Wenn die Definitionsdatei fertig ist, beginnen Sie mit dem Lesen.
Definitionsdatei lesen
# systemctl daemon-reload
Starten Sie nach dem Lesen den Dienst.
Servicestart
# systemctl start jupyterhub.service
Überprüfen Sie den Servicestatus. Es gab einige Fehler, aber ich konnte starten und mich anmelden. Qiskit funktioniert auch gut.
Service Statusprüfung
(myenv) # systemctl status jupyterhub.service
● jupyterhub.service - JupyterHub
Loaded: loaded (/etc/systemd/system/jupyterhub.service; enabled; vendor preset: disabled)
Active: active (running)seit Kim 2020-09-18 21:27:20 JST; 7min ago
Main PID: 3291 (python)
Tasks: 7
CGroup: /system.slice/jupyterhub.service
└─3307 node /opt/anaconda3/envs/myenv/bin/configurable-http-proxy --ip --port 8000 --api-ip 127.0.0.1 --api-port 8001 --error-target http://...
‣ 3291 /opt/anaconda3/envs/myenv/bin/python /opt/anaconda3/envs/myenv/bin/jupyterhub
18. September 21:27:21 localhost.localdomain jupyterhub[3291]: 21:27:21.575 [ConfigProxy] info: 201 POST /api/routes/
18. September 21:27:21 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:21.577 JupyterHub app:2422] JupyterHub is now running at http://:8000
18. September 21:27:29 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:29.928 JupyterHub log:174] 200 GET /hub/spawn-pending/jupyter (jup...29.88ms
18. September 21:27:33 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:33.252 JupyterHub login:43] User logged out: jupyter
18. September 21:27:33 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:33.262 JupyterHub log:174] 302 GET /hub/logout -> /hub/login (jupy...16.03ms
18. September 21:27:33 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:33.276 JupyterHub log:174] 200 GET /hub/login (@::ffff:192.168.249.1) 8.34ms
18. September 21:27:40 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:40.212 JupyterHub base:663] User logged in: jupyter
18. September 21:27:40 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:40.213 JupyterHub log:174] 302 POST /hub/login?next= -> /hub/spawn...12.63ms
18. September 21:27:40 localhost.localdomain python[3291]: pam_loginuid(login:session): Error writing /proc/self/loginuid: Operation not permitted
18. September 21:27:40 localhost.localdomain python[3291]: pam_loginuid(login:session): set_loginuid failed
Hint: Some lines were ellipsized, use -l to show in full.
Aktivieren Sie schließlich die Service-Automatisierung. Selbst wenn das Betriebssystem heruntergefahren wird, wird der Dienst sofort nach dem Start gestartet, und Sie können jederzeit wie zuvor über Ihren Webbrowser auf Jupyter zugreifen.
Aktivieren und überprüfen Sie die automatische Ausführung
# systemctl enable jupyterhub
# systemctl is-enabled jupyterhub
enabled
Nach dem Neustart des Gastbetriebssystems habe ich versucht, über den Webbrowser des Hostcomputers darauf zuzugreifen, und konnte erfolgreich darauf zugreifen und mich anmelden.
Ich bin zu 90% zufrieden mit der Tatsache, dass ich eine Umgebung erstellen konnte, in der alle Benutzer Qiskit verwenden können, was ich diesmal tun wollte, und dass sie es durch Authentifizierung über einen Webbrowser verwenden können. Es gibt jedoch einige Fehler und Mängel bei der Konstruktion der Umgebung, daher möchte ich in Zukunft an diesen Bereichen arbeiten.
Obwohl ich nicht motiviert war, konnte ich alles in einem halben Tag zusammenstellen, sodass es genau richtig war, um sich nach morgen aufzuwärmen. Obwohl der Dienst von Jupyter Notebook reibungslos verlief, verursachte der Dienst von JupyterHub nacheinander Fehler, und es war schwierig, einen zu lösen. Daher hatte ich das Gefühl, dass ich ihn nicht ohne etwas erneut implementieren möchte. (Dafür gibt es diesen Artikel)
Recommended Posts