Fermer

janvier 5, 2021

Configuration d'un répartiteur AEM local avec Docker


Le proxy inverse et la mise en cache sont deux des nombreuses fonctionnalités fournies par le module de répartition AEM. C'est le prisme à travers lequel vos internautes verront le contenu sur l'éditeur AEM. Les développeurs diront que l'équipe de développement et d'exploitation (DevOps) s'en charge. DevOps s'appuie sur les développeurs pour fournir des instructions sur la façon de le configurer. Presque personne ne l'installe dans son environnement local. Au lieu de cela, ils dépendent de systèmes distants pour tester et déboguer. Cela peut parfois se transformer en un jeu de whack-a-mole jusqu'à ce que les choses fonctionnent.

Dans cet article, je vais passer en revue comment configurer un répartiteur local à l'aide de docker pour créer un proxy vers votre instance de publication AEM locale. Nous pourrons mettre à jour les fichiers de configuration, les journaux de suivi et le débogage. Lorsque nous enverrons la configuration à DevOps, ce sera avec un cachet d'approbation «cela a fonctionné sur mon ordinateur».

Installer Docker

Nous utilisons Docker pour éviter les difficultés liées à l'installation d'Apache sur votre plate-forme (Windows ou macOS) . Nous obtenons également un environnement assez proche de ce qu'AMS utiliserait. L'installation de Docker sur votre plate-forme devrait être assez simple. Une fois i n bloqué vous pouvez vérifier avec les commandes suivantes

 Version Docker

Créer une arche e ] type Project

Vous pouvez avoir votre propre configuration Apache. Avant de les ajouter, construisons une ligne de base à l'aide du projet d'archétype . Notez que la aemVersion est définie sur 6.5.0, ce qui n'est PAS la même chose si vous utilisiez AEM comme service cloud. Cela signifie qu'ils fonctionneront sur les répartiteurs AMS, pas sur AEM en tant que service cloud.

 mvn -B archetype: generate 
 -D archetypeGroupId = com.adobe.aem 
 -D archetypeArtifactId = aem-project-archetype 
 -D archetypeVersion = 24 
 -D appTitle = "Mon site" 
 -D appId = "monsite" 
 -D groupId = "com.mysite" 
 -D aemVersion = "6.5.0"

Building an Image

Pour construire une image, nous allons exploiter une image CentOS existante. Nous installerons Apache et le module dispatcher. C'est à peu près la même configuration sur AMS. La seule différence est qu'ils utilisent Enterprise RedHat Linux dont CentOS est la version gratuite. Commencez par créer le fichier Dockerfile suivant dans le dossier de projet mysite :

 FROM centos: 7.8.2003
ARG MODULE_URL

RUN yum -y update && 
    miam -y installer httpd && 
    miam nettoyer tout && 
    mv $ (curl --insecure --silent $ {MODULE_URL} | 
    tar xzvf - --wildcards "* .so" | head -1) /etc/httpd/modules/mod_dispatcher.so && 
    chown racine: racine /etc/httpd/modules/mod_dispatcher.so

EXPOSER 80

RUN mkdir -p / mnt / var / www / author && 
    mkdir -p / mnt / var / www / html && 
    mkdir -p / mnt / var / www / default && 
    chown -R apache: apache / mnt / var / www

WORKDIR / etc / httpd
CMD [ "apachectl", "-DFOREGROUND" ]

 Adobe - Du contenu pour tous
Du contenu pour tous

Les entreprises capables de répondre rapidement et systématiquement aux demandes des consommateurs prospèrent à une époque de contenu infini. Découvrez comment créer des expériences fluides pour vos clients omnicanal.

Obtenez le guide

N ow nous créons l'image avec la commande suivante dans le dossier de projet mysite :

 docker build 
    -t mysite / dispatcher: dernier 
    --build-arg MODULE_URL = https: //download.macromedia.com/dispatcher/download/dispatcher-apache2.4-linux-x86_64-4.3.3.tar.gz 
    . 

Création d'un conteneur

Ensuite, vous devrez c créer un conteneur en utilisant l'image en utilisant Docker Compose . Créez un fichier appelé docker-compose.yml dans le dossier mysite .

 version: "3.8"

prestations de service:

  répartiteur:
    image: mysite / dispatcher: dernier
    ports:
        - 80:80
    environnement:
      DISP_ID: dispatcher1docker
      AUTHOR_DEFAULT_HOSTNAME: author.mycompany.local
      AUTHOR_IP: host.docker.internal
      AUTHOR_PORT: 4502
      AUTHOR_DOCROOT: / mnt / var / www / author
      PUBLISH_DEFAULT_HOSTNAME: monsite.monentreprise.local
      PUBLISH_IP: host.docker.internal
      PUBLISH_PORT: 4503
      PUBLISH_DOCROOT: / mnt / var / www / html
      CRX_FILTER: refuser
    volumes:
      - ./dispatcher/src/conf:/etc/httpd/conf:ro
      - ./dispatcher/src/conf.d:/etc/httpd/conf.d:ro
      - ./dispatcher/src/conf.dispatcher.d:/etc/httpd/conf.dispatcher.d:ro
      - ./dispatcher/src/conf.modules.d:/etc/httpd/conf.modules.d:ro
      - ./httpd-docroot:/mnt/var/www/html[19659069子Cequenousmettonsenplaceiciestunserviceappelé dispatcher . Les variables d'environnement représentent l'ensemble minimal utilisé par l'archétype des configurations Apache. La section des volumes mappe chaque dossier de configuration à sa place dans le conteneur. Le dernier volume mappe le dossier HTML dans lequel le répartiteur met les pages en cache avec le répertoire de notre hôte.  C'est ainsi qu'ils persisteront si le conteneur redémarre. Cela nous permet également de parcourir les données mises en cache dans le système de fichiers de notre hôte.  

Les configurations d'archétype créeront 2 hôtes virtuels. Ce sont author.mycompany.local et mysite.mycompany.local . Pour y accéder localement, vous devez vous assurer de mettre à jour votre fichier hosts (c'est-à-dire / etc / hosts sous macOS) afin qu'ils se résolvent en 127.0.0.1 .

Test MySite via le répartiteur par défaut

Démarrez votre éditeur et déployez mysite en utilisant la commande que nous connaissons et aimons tous :

 mvn clean install -P autoInstallPackagePublish -P adobe-public 

Démarre la distribution r

 docker-compose up -d 

Et vérifiez les éléments suivants: thin g s [19659002]

Choses à essayer

Il existe de nombreux sujets liés aux répartiteurs que nous pourrions aborder et que ne rentrerait pas dans ce didacticiel. Voici quelques idées que vous pouvez essayer maintenant que vous disposez d'un répartiteur fonctionnel.

  • Testez le dispatcher flush
  • Supprimez la racine / content / mysite en mettant à jour les règles de réécriture
  • Créez un nouveau vhost pour un nouveau site
  • Accéder à l'auteur via le répartiteur
  • Configurer Sling Server Side comprend
  • Tail the logs generated by Apache
  • Explore les modules sous / etc / httpd / modules

J'espère que vous avez trouvé ce billet de blog utile. Pour toute question supplémentaire, veuillez commenter ci-dessous et n'oubliez pas de consulter nos autres blogs Adobe .

À propos de l'auteur

Juan Ayala est un développeur principal dans la pratique Adobe chez Perficient, Inc., axé sur la plate-forme Adobe Experience et les choses qui tournent autour d'elle.

Plus de cet auteur






Source link