Fermer

août 30, 2018

Déployer rapidement WordPress & phpMyAdmin sur Alibaba Cloud avec ROS –


Cet article a été publié à l'origine sur Alibaba Cloud . Merci de soutenir les partenaires qui rendent SitePoint possible.

Pensez-vous avoir un meilleur conseil pour tirer le meilleur parti des services Alibaba Cloud? Parlez-en nous et courez la chance de gagner un Macbook Pro (plus d'autres trucs sympas). Pour en savoir plus, cliquez ici .

Ce document explique comment déployer un site WordPress et une application phpMyAdmin à l'aide du modèle ROS en un seul clic.

Introduction

ne disposent pas de capacités techniques internes pour créer et gérer un site Web. Ils ont des équipes capables de gérer le contenu mais pas l'infrastructure qui l'accompagne. Les solutions actuellement disponibles conviennent pour une période limitée lorsque les exigences sont élémentaires, mais dès qu'elles requièrent une personnalisation, une haute disponibilité et une évolutivité, des solutions supplémentaires prenant en charge la mise à l'échelle sont nécessaires.

Le modèle de pile ROS ( WordPressCluster-phpMyAdmin .ros ) présenté dans ce document permet de répondre aux exigences de haute disponibilité et d'évolutivité de ces utilisateurs. En un seul clic, il crée la pile VPC Equilibreur de charge serveur Auto Scaling ECS RDS et d'autres instances, déploie WordPress et phpMyAdmin, et configure Auto Scaling pour garantir que toute nouvelle instance peut être ajoutée et configurée sans intervention manuelle.

Prérequis

  • Disponibilité d'un compartiment OSS.
  • Utilisateur de RAM avec accès en lecture et en écriture au compartiment OSS.
  • Compréhension de ROS et possibilité de créer des modèles de pile ROS et des piles à partir de la console.

Présentation de l'architecture

 Architecture

aperçu de l'architecture de déploiement générée sur la base du modèle WordPressCluster-phpMyAdmin.ros .

Trois types d'utilisateurs accèdent à l'infrastructure:

Utilisateurs finaux qui accèdent à la site hébergé sur WordPress via une URL at est résolue en une instance de l'équilibreur de charge Public Server.

WordPress est hébergé sur les serveurs Web Apache. La racine du document des serveurs est définie sur / wwwroot qui se trouve sur un compartiment OSS partagé sur les serveurs Web à l'aide de OSSFS (système de fichiers FUSE officiellement fourni par Alibaba Cloud).

l'autorisation d'accès du compartiment OSS peut monter le compartiment OSS sur l'instance ECS.

La base de données RDS pour MySQL contient le contenu WordPress et est accessible à partir du serveur Web via sa chaîne de connexion intranet.

qui peut accéder à l'environnement VPC via une connexion SSH à la JumpBox (hôte bastion).

La JumpBox possède une adresse IP élastique et est accessible via Internet.

L'accès via JumpBox consiste à gérer le

phpMyAdmin est installé sur la JumpBox et est accessible sur Internet.

De cette façon, les administrateurs peuvent administrer la base de données RDS.

Gestionnaires de contenu qui peut accéder à la console de gestion WordPress

L'accès à tous ces services peut être contrôlé par des groupes de sécurité et peut être configuré selon l'environnement.

Présentation du modèle

Cliquez sur WordPressCluster-phpMyAdmin.ros pour téléchargez le modèle de pile ROS pour l'utiliser.

Remarque: Dans le modèle, ZoneId est défini sur eu-central-1a et l'imageId est m-gw8efmfk0y184zs0m0aj. . Vous pouvez modifier le ZoneId et le ImageId en fonction des zones et des images prises en charge dans la console ROS. Connectez-vous à la console ROS cliquez sur Informations sur l'instance ECS sélectionnez une région et cliquez sur ECS Zone ou ECS Image les zones ou les images prises en charge dans cette région.

Basé sur le modèle de pile WordPressCluster-phpMyAdmin.ros, le système crée le VPC, l'équilibreur de charge serveur, VSwitch, passerelle NAT, groupes de sécurité et instances ECS pour JumpBox, Elastic IP for JumpBox, Auto Scaling pour les instances ECS et l'instance RDS.

Il faut les paramètres d'entrée suivants pour que la pile de ressources soit suffisamment générique pour pouvoir être déployée pour n'importe quel utilisateur dans n'importe quelle région.

 paramètres1 [19659006]  parameter2

Selon le modèle, le système installe httpd, mysql-client, PHP, OSSFS, phpMyAdmin et WordPress sur la JumpBox et les configure également dans la section UserData de l'ALIYUN :: ECS. :: Ressource d'instance.

Ce qui suit est un extrait du sec de UserData de la JumpBox.

  "ossbucketendpoint =",
   {
   "Ref": "OSSBucketEndPoint"
   },
   " n"
   "DatabaseUser =",
   {
   "Ref": "MasterUserName"
   },
   " n"
   "DatabasePwd =",
   {
   "Ref": "MasterDBPassword"
   },
   " n"
   "DatabaseName =",
   {
   "Ref": "DBName"
   },
   " n"
   "DatabaseHost =",
   {
   "Fn :: GetAtt": ["Database", "InnerConnectionString"]
   },
   " n"
   "yum install -y curl httpd mysql-server php-commun php-mysql  n",
   "yum install -y php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc  n",
   "yum install -y phpmyadmin  n",
   "sed -i " s% localhost% $ DatabaseHost%  "/etc/phpMyAdmin/config.inc.phpn",
   "sed -i " s% Deny, Allow% Allow, Refuser%  "/etc/httpd/conf.d/phpMyAdmin.confn",
   "sed -i " s% Refuser à tous% Autoriser à partir de tous%  "/etc/httpd/conf.d/phpMyAdmin.confn",
   "sed -i " / & lt; RequireAny & gt; / a Requiert all Accordé  "/etc/httpd/conf.d/phpMyAdmin.confn",
   "chkconfig httpd on  n",
   "service httpd stop  n",
   "wget
   https://github.com/aliyun/ossfs/releases/download/v1.80.3/ossfs_1.80.3_centos6.5_x86_64.rpmn ",
   "yum install -y ossfs_1.80.3_centos6.5_x86_64.rpm  n",
   "echo $ ossbucket: $ ossbucketaccesskey: $ ossbucketsecret & gt; & gt; / etc / passwd-ossfs  n",
   "chmod 600 / etc / passwd-ossfs  n",
   "mkdir $ ossbucketmountpoint  n",
   "chmod -R 755 $ ossbucketmountpoint  n",
   "echo #Ce script montera automatiquement le fichier ossbucket  n",
   "echo umount $ ossbucketmountpoint & gt; & gt; /usr/local/bin/ossfs-automount.shn",
   "echo #Mounting OSS Bucket  n",
              "echo ossfs $ ossbucket $ ossbucketmountpoint -ourl = http: // $ ossbucketendpoint -o allow_other -o mp_umask = 0022 -ouid = 48 -ogid = 48 & gt; & gt; /usr/local/bin/ossfs-automount.shn ",
"chmod 755 /usr/local/bin/ossfs-automount.shn",
"echo /usr/local/bin/ossfs-automount.sh & gt; & gt; /etc/rc.d/rc.localn",
"chmod + x /etc/rc.d/rc.localn",
"/usr/local/bin/./ossfs-automount.shn",
"wget ​​http://WordPress.org/latest.tar.gzn",
"tar -xzvf latest.tar.gz  n",
"sed -i " s% nom_base_de_données_here% $ DatabaseName%  "WordPress / wp-config-sample.php  n",
"sed -i " s% username_here% $ DatabaseUser%  "WordPress / wp-config-sample.php  n",
"sed -i " s% password_here% $ {DatabasePwd: - $ DatabasePwdDef}%  "WordPress / wp-config-sample.php  n",
"sed -i " s% localhost% $ DatabaseHost%  "WordPress / wp-config-sample.php  n",
"mv WordPress / wp-config-sample.php WordPress / wp-config.php  n",
"cp -a WordPress / * $ ossbucketmountpoint  n",
"chmod -R 755 / wwwroot / *  n",
"rm -rf WordPress *  n",
"service httpd start  n",
"fait  n"

La section UserData déploie WordPress sur le compartiment OSS qui peut être monté sur les serveurs Web créés à l'aide d'Auto Scaling. Cela garantit que les serveurs Web ont le contenu mis à jour à partir de la racine du document.

Les serveurs Web sont démarrés via Auto Scaling. L'installation et la configuration de httpd, PHP et ossutil, le montage de DocumentRoo et le démarrage des services sont effectués dans la section UserData de la configuration Auto Scaling.

Voici un extrait de la section UserData du serveur Web Auto Scaling. configuration.

  "DatabaseHost =",
              {
                "Fn :: GetAtt": ["Database", "InnerConnectionString"]
              },
              " n"
              "yum install -y curl httpd mysql-server php-commun php-mysql  n",
              "yum install -y php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc  n",
              "chkconfig httpd on  n",
              "service httpd stop  n",
              "DocumentRoot = '/ var / www / html'  n",
              "sed -i " s% $ DocumentRoot% $ ossbucketmountpoint%  "/etc/httpd/conf/httpd.confn",
              "Directory = '/ var / www'  n",
              "sed -i " s% $ Directory% $ ossbucketmountpoint%  "/etc/httpd/conf/httpd.confn",
"wget ​​https://github.com/aliyun/ossfs/releases/download/v1.80.3/ossfs_1.80.3_centos6.5_x86_64.rpmn",
              "yum install -y ossfs_1.80.3_centos6.5_x86_64.rpm  n",
              "echo $ ossbucket: $ ossbucketaccesskey: $ ossbucketsecret & gt; & gt; / etc / passwd-ossfs  n",
              "chmod 600 / etc / passwd-ossfs  n",
              "mkdir $ ossbucketmountpoint  n",
              "chmod -R 755 $ ossbucketmountpoint  n",
              "echo #Ce script montera automatiquement le fichier ossbucket  n",
              "echo umount $ ossbucketmountpoint & gt; & gt; /usr/local/bin/ossfs-automount.shn",
              "echo #Mounting OSS Bucket  n",
              "echo ossfs $ ossbucket $ ossbucketmountpoint -ourl = http: // $ ossbucketendpoint -o allow_other -o mp_umask = 0022 -ouid = 48 -ogid = 48 & gt; & gt; /usr/local/bin/ossfs-automount.shn ",
              "chmod 755 /usr/local/bin/ossfs-automount.shn",
              "echo /usr/local/bin/ossfs-automount.sh & gt; & gt; /etc/rc.d/rc.localn",
              "chmod + x /etc/rc.d/rc.localn",
              "/usr/local/bin/./ossfs-automount.shn",
              "chmod -R 755 / wwwroot / *  n",
              "service httpd start  n",
              "fait  n"
            ]

C'est une bonne solution pour les utilisateurs qui recherchent un environnement de bout en bout et pour les architectes de solutions qui prennent en charge leurs clients dans POC.

En savoir plus




Source link