[PYTHON] Ich habe versucht, eine Umgebung von MkDocs unter Amazon Linux zu erstellen

Eigentlich gab es in diesem Artikel eine Geschichte von Gedanken und Fehlern, aber ich habe sie hier gepostet, weil ich es am Ende erneut versucht habe.

Annahme

Umweltvorbereitung

Es wurde unter Bezugnahme auf Dokumentenseiten mit MkDocs automatisch erstellen durchgeführt.

Rohrinstallation

Installieren Sie Python Package Management pip. Ich habe zuerst python get-pip.py ausgeführt, aber es hat überhaupt nicht funktioniert. .. .. Deshalb habe ich mich entschlossen, python-pip auf der offiziellen Website zu installieren.

$ python --version
Python 2.7.10
$ sudo yum install python-pip
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> Package python26-pip.noarch 0:6.1.1-1.21.amzn1 will be installed
--> Processing Dependency: python(abi) = 2.6 for package: python26-pip-6.1.1-1.21.amzn1.noarch
--> Processing Dependency: python26(dist-packages) for package: python26-pip-6.1.1-1.21.amzn1.noarch
--> Processing Dependency: python26-setuptools for package: python26-pip-6.1.1-1.21.amzn1.noarch
--> Processing Dependency: /usr/bin/python2.6 for package: python26-pip-6.1.1-1.21.amzn1.noarch
--> Processing Dependency: python26-backports-ssl_match_hostname for package: python26-pip-6.1.1-1.21.amzn1.noarch
--> Processing Dependency: python26(alternatives) for package: python26-pip-6.1.1-1.21.amzn1.noarch
--> Running transaction check
---> Package python26.x86_64 0:2.6.9-2.84.amzn1 will be installed
--> Processing Dependency: libpython2.6.so.1.0()(64bit) for package: python26-2.6.9-2.84.amzn1.x86_64
---> Package python26-backports-ssl_match_hostname.noarch 0:3.4.0.2-1.12.amzn1 will be installed
--> Processing Dependency: python26-backports for package: python26-backports-ssl_match_hostname-3.4.0.2-1.12.amzn1.noarch
---> Package python26-setuptools.noarch 0:12.2-1.30.amzn1 will be installed
--> Running transaction check
---> Package python26-backports.x86_64 0:1.0-3.14.amzn1 will be installed
---> Package python26-libs.x86_64 0:2.6.9-2.84.amzn1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================
 Package                                           Arch               Version                        Repository             Size
=================================================================================================================================
Installing:
 python26-pip                                      noarch             6.1.1-1.21.amzn1               amzn-main             1.9 M
Installing for dependencies:
 python26                                          x86_64             2.6.9-2.84.amzn1               amzn-main             5.8 M
 python26-backports                                x86_64             1.0-3.14.amzn1                 amzn-main             5.2 k
 python26-backports-ssl_match_hostname             noarch             3.4.0.2-1.12.amzn1             amzn-main              12 k
 python26-libs                                     x86_64             2.6.9-2.84.amzn1               amzn-main             696 k
 python26-setuptools                               noarch             12.2-1.30.amzn1                amzn-main             582 k

Transaction Summary
=================================================================================================================================
Install  1 Package (+5 Dependent packages)

Total download size: 8.9 M
Installed size: 29 M
Is this ok [y/d/N]: y
Downloading packages:
(1/6): python26-2.6.9-2.84.amzn1.x86_64.rpm                                                               | 5.8 MB     00:00     
(2/6): python26-backports-1.0-3.14.amzn1.x86_64.rpm                                                       | 5.2 kB     00:00     
(3/6): python26-backports-ssl_match_hostname-3.4.0.2-1.12.amzn1.noarch.rpm                                |  12 kB     00:00     
(4/6): python26-libs-2.6.9-2.84.amzn1.x86_64.rpm                                                          | 696 kB     00:00     
(5/6): python26-pip-6.1.1-1.21.amzn1.noarch.rpm                                                           | 1.9 MB     00:00     
(6/6): python26-setuptools-12.2-1.30.amzn1.noarch.rpm                                                     | 582 kB     00:00     
---------------------------------------------------------------------------------------------------------------------------------
Total                                                                                             14 MB/s | 8.9 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python26-libs-2.6.9-2.84.amzn1.x86_64                                                                         1/6 
  Installing : python26-2.6.9-2.84.amzn1.x86_64                                                                              2/6 
  Installing : python26-backports-1.0-3.14.amzn1.x86_64                                                                      3/6 
  Installing : python26-backports-ssl_match_hostname-3.4.0.2-1.12.amzn1.noarch                                               4/6 
  Installing : python26-setuptools-12.2-1.30.amzn1.noarch                                                                    5/6 
  Installing : python26-pip-6.1.1-1.21.amzn1.noarch                                                                          6/6 
  Verifying  : python26-2.6.9-2.84.amzn1.x86_64                                                                              1/6 
  Verifying  : python26-setuptools-12.2-1.30.amzn1.noarch                                                                    2/6 
  Verifying  : python26-libs-2.6.9-2.84.amzn1.x86_64                                                                         3/6 
  Verifying  : python26-pip-6.1.1-1.21.amzn1.noarch                                                                          4/6 
  Verifying  : python26-backports-ssl_match_hostname-3.4.0.2-1.12.amzn1.noarch                                               5/6 
  Verifying  : python26-backports-1.0-3.14.amzn1.x86_64                                                                      6/6 

Installed:
  python26-pip.noarch 0:6.1.1-1.21.amzn1                                                                                         

Dependency Installed:
  python26.x86_64 0:2.6.9-2.84.amzn1                                         python26-backports.x86_64 0:1.0-3.14.amzn1         
  python26-backports-ssl_match_hostname.noarch 0:3.4.0.2-1.12.amzn1          python26-libs.x86_64 0:2.6.9-2.84.amzn1            
  python26-setuptools.noarch 0:12.2-1.30.amzn1                              

Complete!

Ich trat reibungslos ein! !!

Installieren Sie mkdocs

$ sudo pip install mkdocs

~~ weggelassen ~~

  Running setup.py install for Markdown
  Running setup.py install for tornado
  Running setup.py install for click
  Running setup.py install for mkdocs-bootswatch
  Running setup.py install for mkdocs-bootstrap
Successfully installed Markdown-2.6.6 backports-abc-0.4 certifi-2016.2.28 click-6.6 livereload-2.4.1 mkdocs-0.15.3 mkdocs-bootstrap-0.1.1 mkdocs-bootswatch-0.4.0 singledispatch-3.4.0.3 tornado-4.3

Ist hereingekommen! !! Eigentlich habe ich es zuerst ohne sudo ausgeführt, aber ich war wütend auf "Fehler: konnte nicht erstellen" / usr / local / lib / python2.7 / site-packages / markdown ": Berechtigung verweigert", also habe ich es mit sudo ausgeführt. .. Lassen Sie uns sofort die Version von mkdocs überprüfen.

$  mkdocs --version
mkdocs, version 0.15.3

Viel Glück! !!

Beispieldokument erstellen

Erstellung von Dokumentvorlagen

$ mkdocs new sample && cd sample
INFO    -  Creating project directory: sample 
INFO    -  Writing config file: sample/mkdocs.yml 
INFO    -  Writing initial docs: sample/docs/index.md 
$ ls -l
total 8
drwxrwxr-x 2 ec2-user ec2-user 4096 Apr  8 06:29 docs
-rw-rw-r-- 1 ec2-user ec2-user   19 Apr  8 06:29 mkdocs.yml

Ermöglichen Sie den Zugriff auf den EC2-Port 8000

Normalerweise erlaubt die EC2-Standardsicherheitsgruppe nur den Zugriff auf den SSH-Port 22. Fügen Sie daher wie unten beschrieben eine benutzerdefinierte TCP-Regel hinzu, um auf den Standard-8000-Port von mkdocs zuzugreifen. Security_Group_8000.png

Starten Sie den mkdocs-Webserver

$ mkdocs serve -a 0.0.0.0:8000
INFO    -  Building documentation... 
INFO    -  Cleaning site directory 
[I 160408 06:55:54 server:281] Serving on http://0.0.0.0:8000
[I 160408 06:55:54 handlers:59] Start watching changes
[I 160408 06:55:54 handlers:61] Start detecting changes

Machen Sie es zur globalen IP, die Ihrem EC2 zugewiesen ist, und überprüfen Sie es im Browser. http://{Your Global Public IP}:8000/ MkDocs_SamplePage.png

Jetzt können Sie den Inhalt des Beispielprojekts als Website durchsuchen! !!

HTML ausgeben

Dies hängt von EC2 ab, da mkdocs auf EC2 als Webserver fungiert. mkdocs verfügt über eine statische Funktion zur Erstellung von Inhalten. Probieren Sie es also aus.

$ mkdocs build
INFO    -  Building documentation to directory: /home/ec2-user/sample/site 
$ cd site && ls -l
total 64
-rw-r--r-- 1 ec2-user ec2-user 3823 Apr  8 07:05 404.html
-rw-r--r-- 1 ec2-user ec2-user 4720 Apr  8 07:05 base.html
-rw-r--r-- 1 ec2-user ec2-user  189 Apr  8 07:05 content.html
drwxrwxr-x 2 ec2-user ec2-user 4096 Apr  8 07:05 css
drwxrwxr-x 2 ec2-user ec2-user 4096 Apr  8 07:05 fonts
drwxrwxr-x 2 ec2-user ec2-user 4096 Apr  8 07:05 img
-rw-rw-r-- 1 ec2-user ec2-user 4816 Apr  8 07:05 index.html
-rw-r--r-- 1 ec2-user ec2-user    0 Apr  8 07:05 __init__.py
-rw-r--r-- 1 ec2-user ec2-user  148 Apr  8 07:05 __init__.pyc
drwxrwxr-x 2 ec2-user ec2-user 4096 Apr  8 07:05 js
drwxrwxr-x 3 ec2-user ec2-user 4096 Apr  8 07:05 mkdocs
-rw-r--r-- 1 ec2-user ec2-user 3359 Apr  8 07:05 nav.html
-rw-r--r-- 1 ec2-user ec2-user  418 Apr  8 07:05 nav-sub.html
-rw-rw-r-- 1 ec2-user ec2-user  235 Apr  8 07:05 sitemap.xml
-rw-r--r-- 1 ec2-user ec2-user  436 Apr  8 07:05 toc.html

Wie oben erwähnt, wurde nicht nur die HTML-Datei, sondern auch die gesamte Website ausgegeben.

Site-Anzeige mit statischem Inhalt nur in AWS S3

Da es eine gute Idee ist, werde ich die oben festgelegte Ausgabe in S3 hochladen und die Site nur mit statischem Inhalt durchsuchen. Für die Grundeinstellungen wurde S3 unter Bezugnahme auf die offizielle AWS-Website festgelegt.

Legen Sie index.html als Indexdokumentnamen in S3 fest. Laden Sie die obige Datei in S3 hoch. Eigentlich ist es klüger, EC2 und S3 mit lsyncd usw. zu synchronisieren, aber diesmal habe ich es manuell hochgeladen. Wenn Sie dies tun möchten, [dieser Bereich](http://dev.classmethod.jp/cloud/aws/file-upload-to-s3-from-ec2-using-sftp/#install-lsyncd-on-ec2-and-setting- Bitte beziehen Sie sich auf Umgebung).

Wenn Sie nur auf S3 hochladen, werden Sie mit ** 403 Forbidden ** gesegnet. Setzen Sie die Berechtigung daher auf S3, indem Sie auf den folgenden Artikel verweisen. Hosten Sie eine kleine statische Site mit Amazon S3!

Dieses Mal lautet die von AWS Policy Generator erstellte und festgelegte Richtlinie wie folgt.

{
  "Id": "Policy<UNIQUE_ID>",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "<UNIQUE_ID>",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::mkdocstest/*",
      "Principal": "*"
    }
  ]
}

Der Bucket-Name lautet "mkdocstest". Und wenn Sie auf den S3-Endpunkt zugreifen ... http://mkdocstest.s3-website-ap-northeast-1.amazonaws.com/ MkDocs_SamplePage_byS3.png

Es kam heraus! !!

Zusammenfassung

Zukünftiges Nutzungsbild

Um ehrlich zu sein, selbst wenn Sie nicht mit S3 surfen, scheint die Webserverfunktion von mkdocs ausreichend zu sein, aber ich denke, ich werde es anhand der Betriebsbedingungen beurteilen. Trotzdem hatte ich den Eindruck, dass mich die Installation unter Amazon Linux und nicht die mkdocs selbst beunruhigten. Im AWS-System ist es außerdem wichtig, über Berechtigungen wie Sicherheitsgruppen zu verfügen. Daher gibt es viele Teile, die einfach sind, wenn Sie sie kennen.

das ist alles! !! (Ah, es war erfrischend)

Recommended Posts

Ich habe versucht, eine Umgebung von MkDocs unter Amazon Linux zu erstellen
Erstellen Sie eine Umgebung für MkDocs unter Amazon Linux (versucht)
Ich habe versucht, mit Raspberry Pi 4 eine Umgebung von Ubuntu 20.04 LTS + ROS2 zu erstellen
[Azure] Ich habe versucht, eine virtuelle Linux-Maschine mit Azure von Microsoft Learn zu erstellen
Ich habe versucht, Linux wieder einzuführen
[Ich bin ein IT-Anfänger] Ich habe mein Bestes versucht, Linux unter Windows zu implementieren
Ich habe versucht, eine Umgebung zu erstellen, um regelmäßig mit Selenium mit AWS Fargate zu überprüfen
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
Ich habe versucht, ein Modell mit dem Beispiel von Amazon SageMaker Autopilot zu erstellen
So stellen Sie pyenv unter Amazon Linux und Ubuntu ein, um eine Python 3.6.0-Umgebung zu erstellen
So erstellen Sie eine ISO-Datei (CD-Image) unter Linux
[Django] Memo zum Erstellen einer Umgebung von Django + MySQL + Vue.js [Python]
Ich habe versucht, einen Artikel mit SQL Alchemy auf Wiki.js zu erstellen
Ich habe versucht, eine Quip-API zu erstellen
Erstellen Sie eine Linux-Umgebung unter Windows 10
Führen Sie die Python 3.5.2-Umgebung unter Amazon Linux ein
[Linux] Ich habe versucht, die Ressourcenbestätigungsbefehle zusammenzufassen
Erstellen Sie eine AWS Cloud9-Entwicklungsumgebung auf einer Amazon EC2-Instanz
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
Ich habe versucht, in 3 Jahren 5 Muster der Analysebasis zu erstellen
Ich habe versucht, einen Linebot zu erstellen (Implementierung)
Ich habe einen Nur-SFTP-Benutzer unter Linux erstellt.
Ich habe versucht, einen Linebot zu erstellen (Vorbereitung)
So erstellen Sie eine NVIDIA Docker-Umgebung
Ich möchte Linux auf dem Mac verwenden
So aktualisieren Sie PHP unter Amazon Linux 2
Erstellen Sie eine OpenCV3 + python3-Umgebung unter OSX
Ich habe versucht, eine Umgebung zu schaffen, in der Sie ein lustiges Zoom-Meeting mit Linux (Ubuntu) + Zoom + OBS Studio + Soundeffekten haben können
Ich habe versucht, die Beispielnachrichten zur Geschäftsintegration in Amazon Transcribe zu übertragen
Eine Geschichte, die mich süchtig nach dem Versuch machte, LightFM unter Amazon Linux zu installieren
Ich habe verschiedene Versionen der Python + OpenCV + FFmpeg-Umgebung auf dem Mac ausprobiert
[Linux] Ich habe versucht, die sichere Bestätigungsmethode von FQDN (CentOS7) zu überprüfen.
[Lambda] Ich habe versucht, ein externes Python-Modul über S3 zu integrieren
Ich habe versucht, Slack über das Update von Redmine zu informieren
Ich habe versucht, durch Schaben ein Bild zu bekommen
Ich habe versucht, das Umfangsverhältnis mit 100 Millionen Stellen zu ermitteln
Erstellen Sie eine Umgebung mit 64-Bit-Windows + Python 2.7 + MeCab 0.996
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, ein Objekt mit M2Det zu erkennen!
Versuchen Sie, einen neuen Befehl unter Linux zu erstellen
Richten Sie eine Objective-C 2.0-Entwicklungsumgebung unter Linux ein
Ich habe versucht, Linux mit Discord Bot zu betreiben
Ich möchte die Eingabe / Ausgabe von Dateien unter Linux protokollieren
Ich habe versucht, Jupyter mit allen Amazon-Lichtern zu starten
Erstellen Sie eine Python-Ausführungsumgebung unter IBM i
Erstellen Sie eine Arch Linux-Umgebung auf Raspai
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Einzeiler, der unter Linux eine große Anzahl von Testdateien gleichzeitig erstellt
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
So erstellen Sie eine Umgebung für die Verwendung mehrerer Python-Versionen auf einem Mac
Als ich versuchte, mit Python eine virtuelle Umgebung zu erstellen, funktionierte dies nicht
Ich habe ein Bildklassifizierungsmodell erstellt und versucht, es auf dem Handy zu verschieben
Der Fehler der mit tf.function dekorierten Funktion hat versucht, Variablen beim nicht ersten Aufruf zu erstellen. In tensorflow.keras
Ich habe versucht, die Daten des Laptops durch Booten unter Ubuntu zu retten
Ich habe versucht, den Grad der Koronavirusinfektion auf der Seekarten-Wärmekarte anzuzeigen