Construire une image d'application pour revendre à Digital Ocean

Ce que vous allez créer

Dans ce tutoriel, je vais vous guider dans la création d'une instance de serveur préconfigurée exécutant WordPress (ou d'autres applications basées sur LAMP) que vous pouvez cloner et transférer à plusieurs reprises vers des clients. J'utilise la capacité d'image de Digital Ocean pour vendre mon WordPress Quickstart et certaines de mes applications basées sur LAMP telles que Simplify Email et Simple Monitor. En partie à cause de cette fonctionnalité, Digital Ocean est devenu mon hébergeur de choix cette année..

Avec Digital Ocean, un instantané est une copie à un moment donné d'une instance de serveur en nuage spécifique. Il vous permet de dupliquer des instances et de les transférer aux clients par courrier électronique. Cela permet à quelqu'un de démarrer rapidement et facilement avec une image de serveur préconfigurée et une pile d'applications.

Par exemple, je propose une version pré-optimisée et pré-optimisée de WordPress, que j'appelle Quickstart. C'est une version de WordPress préinstallée avec un ensemble de plugins super utiles et pré-optimisée avec W3TC et Varnish Cache, comme décrit dans mon tutoriel Optimisation de WordPress avec Varnish et W3 Total Cache. Lorsque je transfère une copie de cette image sur des clients, c'est la version de WordPress la plus rapide, la plus simple et la mieux configurée que je puisse offrir. Ce processus facilite le démarrage de nouveaux sites WordPress. Dans ce tutoriel, je vais vous montrer comment créer vos propres images chez Digital Ocean et les partager avec vos clients..

Commencer

Si vous souhaitez essayer ceci avec une application LAMP, vous trouverez ici mon guide pour la connexion et la configuration d'instances génériques chez Digital Ocean. Si vous souhaitez utiliser WordPress, vous pouvez suivre. Je vais vous guider dans la création d'un droplet, l'installation de WordPress, l'ajout d'un thème et de plug-ins, la prise d'un instantané, le clonage de l'instantané et son transfert aux clients. J'ai publié un guide plus détaillé sur l'installation de WordPress à Digital Ocean ici.

Créer votre gouttelette

Tout d'abord, créons un droplet. Clique le Créer bouton:

Je vais appeler le mien image.publishingwordpress.com mais vous pouvez nommer votre générique. Je vais utiliser la taille d'image de 512 Mo:

Notez la région que vous choisissez, car votre client ne pourra instancier votre image que dans la même région. Toutefois, vous pouvez également transférer la région de votre instantané avant de l'envoyer à votre client, si nécessaire..

Clique le Applications onglet et choisissez LAMP sur Ubuntu 14.xx:

Digital Ocean commencera à créer votre gouttelette:

Quand c'est fait, vous verrez cette page:

Vous recevrez également un email comme celui ci-dessous:

Vous pouvez maintenant visiter votre registraire de domaine et modifier vos enregistrements DNS pour que votre domaine ou sous-domaine soit dirigé vers la nouvelle adresse IP. Dans mon cas, je pointe le record A pour image.publishingwithwordpress.com à 198.199.117.46. Le vôtre différera évidemment.

Vous n'avez pas besoin d'attendre la propagation du DNS pour commencer à configurer l'instance. Connectez-vous avec votre adresse IP via SSH. Il vous sera demandé de changer le mot de passe de ce que vous avez reçu dans l'e-mail:

Mettons à jour l'image:

sudo apt-get update sudo apt-get dist-upgrade sudo reboot

Je suggère également d'installer les composants suivants, que nous utiliserons dans WordPress et divers plugins:

sudo apt-get installer zip php5-curl sudo a2enmod rewrite

Allumer l'Apache mod_rewrite permettra des adresses de permalien dans WordPress, qui sont plus conviviales et améliorent l'optimisation des moteurs de recherche.

Je recommande de courir mysql_secure_installation ainsi que:

mysql_secure_installation

Pour exécuter ce script, vous devez noter votre mot de passe racine MySQL, qui apparaît lorsque vous vous connectez à l'instance..

Si vous utilisez le droplet de mémoire vive de 512 Mo à 5 $ par mois, vous souhaiterez créer un fichier d'échange permettant à WordPress de fonctionner correctement. Sinon, le système manquera de mémoire et plantera à plusieurs reprises:

dd if = / dev / zero of = / swapfile bs = 1M count = 1024 mkswap / swapfile swapon / swapfile

Ensuite, nous ajouterons à la fstab fichier pour informer le système du fichier d'échange:

sudo nano / etc / fstab

Ajouter cette ligne:

/ swapfile swap swap default 0 0

L’instance de 1 Go à 10 dollars par mois exécutera WordPress sans problèmes.

Maintenant, nous sommes prêts à installer WordPress:

Installer WordPress

Créez un répertoire www avec des autorisations pour le serveur Web Apache:

sudo mkdir / var / www sudo chown www-data: www-data / var / www cd / var / www

Téléchargez la dernière version de WordPress, développez l'archive et définissez les autorisations:

cd / var / www sudo wget http://wordpress.org/latest.tar.gz sudo tar -xzvf latest.tar.gz sudo chown -R www-data: www-data wordpress

Créons maintenant la base de données WordPress dans MySQL. Notez votre nom d'utilisateur et votre mot de passe:

mysql -u root -p crée une base de données wordpress; accorde tous les privilèges sur wordpress. * TO "ton-nom-mysql" @ "localhost" identifié par "ton-mot-mysql"; privilèges de chasse; sortie;

Créons le fichier de configuration Apache pour WordPress:

cd / etc / apache2 / sites-available sudo nano 000-wordpress.conf

Collez et personnalisez la configuration d'hôte virtuel suivante:

 Nom du serveur votrenomdedomaine.com DocumentRoot / var / www / wordpress DirectoryIndex index.php  AllowOverride All Ordre Nier, Autoriser Autoriser de tous  

Activez le site Apache pour WordPress et désactivez le site Ubuntu par défaut:

sudo a2dissite 000-default.conf sudo a2ensite 000-wordpress.conf sudo service apache2 reload

Visitez votre site Web pour configurer WordPress via l’interface utilisateur Web à l’aide des paramètres de votre base de données, décrits ci-dessus. Lors du choix des titres et des identifiants, choisissez les génériques et notez les identifiants..

Connectez-vous avec vos identifiants génériques et vous devriez voir le tableau de bord:

Comme il s'agit d'une image générique que vous allez dupliquer et transférer, l'utilisateur aura besoin de WordPress pour mettre à jour l'URL du site. Modifions le fichier de configuration WordPress pour inclure un indicateur de relocalisation. Vous voudrez que votre client le désactive après avoir modifié l'URL de son site dans les paramètres généraux du tableau de bord..

sudo nano /var/www/wordpress/wp-config.php

Maintenant, ajoutez la ligne suivante:

define ('RELOCATE', true);

Lorsque l'utilisateur met à jour l'URL de son site dans le tableau de bord, WordPress met à jour l'ensemble de la base de données. Une fois cette opération effectuée, le client peut commenter ou supprimer cette ligne..

Je suggère également d'ajouter le FS_DIRECT drapeau pour une installation plus simple du plugin:

define ('FS_METHOD', 'direct'); // pour l'installation automatique du plugin

Installer un thème

À des fins de démonstration, je vais installer le nouveau thème simpliste de Minnow. Vous pouvez l'installer en cherchant:

Voici à quoi ça ressemble:

Ensuite, nous installerons les plugins que nous voulons que nos clients aient.

Installer des plugins

C'est à vous de choisir les plugins que vous souhaitez installer. Je garde une liste des plugins recommandés ici. Allons-y et installons le plugin Yoast SEO, qui est un pilier pour moi. Je l'utilise car il aide à l'optimisation des moteurs de recherche et à la génération de sitemaps.

Vous pouvez visiter le Ajouter un nouveau plugin page et recherchez-la pour l'installer et l'activer:

À ce stade, vous pouvez créer toutes les configurations WordPress courantes que vous souhaitez partager avec tous vos clients en aval. Par exemple, vous pouvez installer plus de thèmes et de plugins. Vous pouvez activer les permaliens. Vous pouvez configurer certains paramètres de base du thème. C'est entièrement à vous.

Tout ce que vous personnaliserez sera répliqué lorsque vous clonerez le prochain instantané et le transférerez à vos clients. Vos clients devront personnaliser et configurer tout ce que vous choisissez de ne pas mettre à jour..

Prendre un instantané

Une fois que vous avez effectué toutes vos installations et configurations courantes, nous pouvons continuer et prendre un instantané de votre gouttelette. Digital Ocean nécessite la mise hors tension de l'instance. Il est préférable de le faire depuis la console de ligne de commande..

sudo poweroff

Visitez la page Droplet à Digital Ocean et cliquez sur l'onglet Instantané. Je choisis habituellement un nom pour l'instantané qui indique un nombre séquentiel de clones, par exemple. wp-image-000. Puis clique Prendre un instantané.

Digital Ocean peut prendre quelques minutes pour créer votre instantané..

Une fois l'image terminée, Digital Ocean redémarre automatiquement votre gouttelette..

Dupliquer une image

Pour créer plus de copies de l'image, il vous suffit de répéter les étapes ci-dessus. Mettez le droplet hors tension à partir de la ligne de commande. Prenez un autre instantané. C'est un peu long mais assez simple.

Dans le prochain tutoriel, je vais vous montrer comment utiliser l'API Digital Ocean pour automatiser ce processus..

Digital Ocean ne facture pas le stockage des instantanés (sauf de très petites quantités). Vous pouvez choisir de détruire ou non votre gouttelette d'origine pour éviter des frais mensuels. Si vous faites cela, vous pouvez toujours le recréer à partir d'un instantané quand c'est nécessaire.

Transfert aux clients

Pour transférer un instantané sur un client, visitez le Images page:

Cliquez sur l'icône la plus à gauche avec le profil d'une personne pour spécifier l'adresse e-mail du titulaire du compte Digital Ocean à transférer à:

En quelques minutes, l’instantané apparaîtra dans le compte de votre client, sur la page Images. Ils devront approuver l'image pour l'accepter sur leur compte..

N'oubliez pas qu'il est important que vos clients n'acceptent que les instantanés d'utilisateurs de confiance, car il est facile d'installer un logiciel malveillant sur une image avant de créer un instantané et de le transférer. Digital Ocean pourrait offrir un système instantané de confiance.

Créer une droplet à partir d'un instantané

La création d'un droplet à partir d'un instantané est assez simple. Il suffit de visiter le Créer une gouttelette page, choisissez la région dans laquelle l'image a été créée, puis cliquez sur le bouton Mes instantanés languette. Ensuite, vous pouvez sélectionner l'image à utiliser pour instancier la gouttelette.

Le client peut personnaliser le nom d’hôte comme il le souhaite, mais tous les autres paramètres resteront les mêmes..

En d'autres termes, ils se connecteront à l'instance avec le même nom d'utilisateur et le même mot de passe administratifs que votre instantané d'origine.-ne pas le nouveau que Digital Ocean leur enverra. Ils utiliseront également initialement votre identifiant et votre mot de passe pour le tableau de bord WordPress client-admin. C'est une bonne idée de changer tous les mots de passe de leurs serveurs, MySQL et WP après la configuration de leur droplet..

Une fois qu'ils ont créé leur droplet à partir de l'instantané, ils devront configurer leur DNS pour qu'il mette l'URL du site choisi sur l'adresse IP de leur droplet. Et ils devront modifier l'hôte virtuel WordPress Apache pour leur nom de domaine et redémarrer Apache..

J'ai trouvé que ce type de WordPress Quickstart était le moyen le plus rapide d'aider les clients à démarrer sur de nouveaux sites. Vous pouvez également utiliser cette approche pour n’importe quelle application LAMP, par exemple. Simplifier le courrier électronique.

Ce que vous avez appris

Vous savez maintenant comment créer une instance basée sur le cloud d'une application telle que WordPress, que vous pouvez cloner et transférer à plusieurs reprises vers des clients. Dans un prochain tutoriel, je vais vous montrer comment utiliser l'API Digital Ocean pour automatiser le processus de clonage d'instantanés..

J'espère que vous avez trouvé cela intéressant et utile. N'hésitez pas à poster vos questions et commentaires ci-dessous. Vous pouvez également me joindre sur Twitter @reifman ou m'envoyer un courriel directement. Suivez la page de mon instructeur Tuts + pour voir les prochains articles de cette série..

Liens connexes

  • API Digital Ocean
  • WordPress Quickstart
  • Plugins WordPress recommandés
  • WordPress Codex