décembre, 2018
18
Voici le troisième article de cette série consacrée à notre nouvelle applithèque. Nous vous en avons parlé il y a quelques semaines, et nous avons depuis ajouté de nombreux frameworks pour simplifier la prise en main et le prototypage rapide.
Pour ce dernier item, voici…
… les scripts personnalisés pour les éditeurs, les DevOps, et le reste du monde !
Nous souhaitions améliorer la façon de créer et distribuer des scripts d’installation, c’était l’une des raisons qui nous ont poussés à repenser notre applithèque de zéro. Nous avions en tête le cas d’usage où vous, développeur·euse·s d’applications ou de services Web, avez besoin de déployer régulièrement un socle technique1), ou souhaitez distribuer votre app facilement en 1‑click2).
Pour vous y aider, nous avons conçu cette nouvelle plateforme qui propulse notre applithèque. Comme nous vous l’expliquions précédemment, nous nous appuyons sur de simples scripts pour provisionner les nouvelles instances. Vous pouvez utiliser le langage de votre choix3), et nous l’exécutons indifféremment.
Configurez votre environnement
Chaque script crée une nouvelle instance de type Sites pour héberger votre app. Vous aurez souvent besoin de la configurer un peu plus finement, notamment pour tout ce qui concerne la réécriture d’URL. Pour indiquer les configurations habituelles, vous devez déclarer un YFM4) avec les jeux d’options et de valeurs.
1 2 3 4 5 6 7 8 9 | #!/bin/bash # site: # type: php # path: '{INSTALL_PATH_RELATIVE}' # php_version: '7.2' # database: # type: mysql |
Ici, nous déclarons un nouveau site PHP, en version 7.25), avec une base MySQL. Si vous exécutez ce script, il ne fera rien de plus que de créer un nouveau Site et une base MySQL.
Ensuite, partez d’un environnement d’exécution propre6), et exécutez votre processus d’installation, comme de télécharger la dernière release, installer et configurer l’app, etc.
1 2 3 4 5 6 7 | set -e # https://wp-cli.org # Tools collection wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar |
Demander des informations utilisateur
Vous aurez parfois besoin de récupérer quelques informations utilisateur, comme la langue principale, le mot de passe et le login administrateur, pour préconfigurer correctement l’instance de votre application.
Vous pouvez déclarer une liste de champs de formulaire à remplir par l’utilisateur·trice avant d’exécuter le provisionnement. Utilisez le YFM pour spécifier vos définitions de champs et leurs règles de validation :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # form: # language: # type: choices # label: Language # initial: en_US # choices: # de_DE: German # en_US: English # es_ES: Spanish # fr_FR: French # it_IT: Italian # email: # type: email # label: Email # admin_username: # label: Administrator username # regex: ^[ a-zA-Z0-9.@_-]+$ # max_length: 255 # admin_password: # type: password # label: Administrator password # max_length: 255 |
C’est tout ! Vous pouvez maintenant utiliser ces valeurs dans votre script, les variables étant sourcées par la plateforme au moment de lancer le script :
1 2 3 4 5 6 7 8 9 10 | php wp-cli.phar core download \ --locale="$FORM_LANGUAGE" \ --path="$INSTALL_PATH" php wp-cli.phar core install \ --url="$INSTALL_URL" --admin_user="$FORM_ADMIN_USERNAME" \ --admin_password="$FORM_ADMIN_PASSWORD" \ --admin_email="$FORM_EMAIL" \ --path="$INSTALL_PATH" |
Distribuez vos sources
Que vous développiez un script pour déployer une solution open source, ou votre propre application, pourquoi ne pas le distribuer sur notre plateforme, et le rendre accessible à tou·te·s ? C’est exactement l’objectif de notre applithèque : enrichir la communauté !
Rendez-vous simplement dans la vue ajouter un script d’application de votre interface d’administration, remplissez le formulaire, et cochez la case Application publique. Votre script sera alors marqué pour relecture, et nous le publierons rapidement sur l’applithèque.
Voilà un nouveau moyen d’enrichir un peu plus la communauté d’alwaysdata, et nous espérons que vous y contribuerez en fournissant les scripts pour vos propres applications.
Jetez un œil à la documentation officielle (vous y retrouverez le script présenté ici au complet), et faites-nous connaitre les scripts que vous aimeriez ajouter !
Notes
↑1 | parce que vous êtes une agence et qu’il s’agit de votre plateforme maison |
---|---|
↑2 | parce que vous distribuez une solution open source et souhaitez la rendre facilement accessible au plus grand nombre |
↑3 | de Bash à Python ou Ruby |
↑4 | qui se compose d’un simple dataset YAML en commentaire en entête |
↑5 | le script choisira automatiquement la dernière version mineure de la branche 7.2 |
↑6 | toujours mieux pour éviter les collisions de variables |
no comments