[PYTHON] J'ai essayé de créer un environnement de MkDocs sur Amazon Linux

En fait, il y avait une histoire de pensées et d'erreurs dans cet article, mais je l'ai postée ici parce que j'ai fini par réessayer.

supposition

Préparation environnementale

Il a été réalisé en référence à Créer automatiquement des sites de documents à l'aide de MkDocs.

installation de pip

Installez Python Package Management pip. J'ai lancé python get-pip.py au début, mais cela n'a pas fonctionné du tout. .. .. Par conséquent, j'ai décidé d'installer python-pip sur le site officiel.

$ 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!

Je suis entré en douceur! !!

Installez mkdocs

$ sudo pip install mkdocs

~~ Omis ~~

  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

Est entré! !! En fait, je l'ai exécuté sans sudo au début, mais j'étais en colère contre ʻerror: could not create '/ usr / local / lib / python2.7 / site-packages / markdown': Permission refusée`, donc je l'ai exécuté avec sudo. .. Vérifions immédiatement la version de mkdocs.

$  mkdocs --version
mkdocs, version 0.15.3

Bonne chance! !!

Créer un exemple de document

Création de modèle de document

$ 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

Autoriser l'accès au port EC2 8000

Normalement, le groupe de sécurité par défaut EC2 autorise uniquement l'accès au port SSH 22. Ajoutez donc une règle TCP personnalisée comme ci-dessous pour accéder au port standard 8000 de mkdocs. Security_Group_8000.png

Démarrer le serveur Web mkdocs

$ 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

Faites-en l'adresse IP globale attribuée à votre EC2 et vérifiez-la depuis le navigateur. http://{Your Global Public IP}:8000/ MkDocs_SamplePage.png

Vous pouvez désormais parcourir le contenu du projet Exemple en tant que site Web! !!

HTML de sortie

Ce qui précède dépend d'EC2 car mkdocs sur EC2 agit comme un serveur Web. mkdocs a une fonction de création de contenu statique, alors essayons-le.

$ 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

Comme mentionné ci-dessus, non seulement le fichier html, mais également le site Web complet a été produit.

Affichage du site avec contenu statique uniquement sur AWS S3

Comme c'est une bonne idée, je vais télécharger la sortie définie ci-dessus sur S3 et parcourir le site avec uniquement du contenu statique. Pour les paramètres de base, S3 a été défini en référence au site Web officiel AWS.

Définissez ʻindex.htmlcomme nom de document d'index sur S3. Téléchargez le fichier ci-dessus sur S3. En fait, il est plus intelligent de synchroniser EC2 et S3 aveclsyncd` etc., mais cette fois je l'ai téléchargé manuellement. Si vous voulez le faire, [cette zone](http://dev.classmethod.jp/cloud/aws/file-upload-to-s3-from-ec2-using-sftp/#install-lsyncd-on-ec2-and-setting- Veuillez vous référer à l'environnement).

De plus, si vous venez de télécharger sur S3, vous serez béni avec ** 403 Forbidden **, alors définissez l'autorité sur S3 en vous référant à l'article suivant. Hébergez un petit site statique avec Amazon S3!

Cette fois, la stratégie créée et définie par AWS Policy Generator est la suivante.

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

Le nom du bucket est «mkdocstest». Et lorsque vous accédez au point de terminaison S3 ... http://mkdocstest.s3-website-ap-northeast-1.amazonaws.com/ MkDocs_SamplePage_byS3.png

C'est sorti! !!

Résumé

Image d'utilisation future

Pour être honnête, même si vous ne naviguez pas avec S3, il semble que la fonction de serveur Web de mkdocs soit suffisante, mais je pense que je devrais la juger en fonction des conditions de fonctionnement. Malgré tout, j'ai eu l'impression d'être troublé par l'installation sur Amazon Linux plutôt que par les mkdocs eux-mêmes. De plus, dans le système AWS, il est important de disposer d'autorités telles que les groupes de sécurité, il y a donc de nombreuses parties qui sont faciles si vous le connaissez.

c'est tout! !! (Ah, c'était rafraîchissant)

Recommended Posts

J'ai essayé de créer un environnement de MkDocs sur Amazon Linux
Créer un environnement pour MkDocs sur Amazon Linux (tentative)
J'ai essayé de créer un environnement Ubuntu 20.04 LTS + ROS2 avec Raspberry Pi 4
[Azure] J'ai essayé de créer une machine virtuelle Linux avec Azure de Microsoft Learn
J'ai essayé de réintroduire Linux
[Je suis un débutant en informatique] J'ai fait de mon mieux pour implémenter Linux sur Windows
J'ai essayé de créer un environnement à vérifier régulièrement en utilisant Selenium avec AWS Fargate
Comment créer un environnement Python sur Amazon Linux 2
J'ai essayé de créer un modèle avec l'exemple d'Amazon SageMaker Autopilot
Comment mettre Pyenv sur Amazon Linux et Ubuntu pour créer un environnement Python 3.6.0
Comment créer un fichier ISO (image CD) sous Linux
[Django] Mémo pour créer un environnement de Django + MySQL + Vue.js [Python]
J'ai essayé de créer un article dans Wiki.js avec SQL Alchemy
J'ai essayé de créer l'API Quip
Créer un environnement Linux sur Windows 10
Présentation de l'environnement Python 3.5.2 sur Amazon Linux
[Linux] J'ai essayé de résumer les commandes de confirmation des ressources
Créer un environnement de développement AWS Cloud9 sur une instance Amazon EC2
J'ai essayé de créer une liste de nombres premiers avec python
J'ai essayé de faire 5 modèles de base d'analyse en 3 ans
J'ai essayé de créer un linebot (implémentation)
J'ai créé un utilisateur uniquement SFTP sous Linux.
J'ai essayé de créer un linebot (préparation)
Comment créer un environnement NVIDIA Docker
Je veux utiliser Linux sur mac
Comment mettre à jour PHP sur Amazon Linux 2
Créer un environnement OpenCV3 + python3 sur OSX
J'ai essayé de créer un environnement où vous pouvez avoir une réunion Zoom amusante avec Linux (Ubuntu) + Zoom + OBS Studio + effets sonores
J'ai essayé de transcrire les actualités de l'exemple d'intégration commerciale sur Amazon Transcribe
Une histoire à laquelle j'étais accro à essayer d'installer LightFM sur Amazon Linux
J'ai essayé différentes versions de l'environnement Python + OpenCV + FFmpeg sur Mac
[Linux] J'ai essayé de vérifier la méthode de confirmation sécurisée du FQDN (CentOS7)
[Lambda] J'ai essayé d'incorporer un module externe de python via S3
J'ai essayé d'informer Slack de la mise à jour de Redmine
J'ai essayé d'obtenir une image en grattant
J'ai essayé de trouver le rapport de circonférence par 100 millions de chiffres
Créer un environnement de 64 bits Windows + python 2.7 + MeCab 0.996
J'ai essayé de corriger la forme trapézoïdale de l'image
J'ai essayé de détecter un objet avec M2Det!
Essayez de créer une nouvelle commande sous Linux
Configurer un environnement de développement Objective-C 2.0 sur Linux
J'ai essayé d'utiliser Linux avec Discord Bot
Je veux enregistrer les entrées / sorties de fichiers sous Linux
J'ai essayé de démarrer Jupyter avec toutes les lumières d'Amazon
Créer un environnement d'exécution Python sur IBM i
Créer un environnement Arch Linux sur Raspai
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
One-liner qui crée un grand nombre de fichiers de test à la fois sous Linux
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Comment créer un environnement pour utiliser plusieurs versions de Python sur un Mac
Quand j'ai essayé de créer un environnement virtuel avec Python, cela n'a pas fonctionné
J'ai fait un modèle de classification d'images et essayé de le déplacer sur mobile
Erreur de la fonction décorée par tf.function lors de la tentative de création de variables lors d'un autre appel. Dans tensorflow.keras
J'ai essayé de récupérer les données de l'ordinateur portable en le démarrant sur Ubuntu
J'ai essayé d'afficher le degré d'infection par le virus corona sur la carte thermique Seaborn