Maison >développement back-end >tutoriel php >Introduction à la configuration de l'utilisation de Consul pour gérer des projets Laravel
Je travaille dans l'environnement de pré-production depuis plus d'un an, je vais donc l'enregistrer et le partager ici.
Lorsque nous devons déployer plusieurs projets différents sur plusieurs serveurs, nous avons besoin d'outils centralisés de gestion des informations de configuration et de synchronisation. Les solutions qui ont été envisagées sont :
Synchroniser les fichiers avec rsync.env
: La configuration de plusieurs projets est un peu lourde et nécessite ssh au serveur pour modifier puis synchroniser
Utiliser Docker : le déploiement de cluster est plus pratique. Vous pouvez utiliser l'interface graphique pour modifier les variables d'environnement, mais la mise à jour des variables d'environnement nécessite le redémarrage du conteneur. La plupart des projets n'ont pas été migrés vers Docker
.Jetons un coup d'œil à la solution Consul + Consul Template.
Consul et Consul Template fournissent des fichiers exécutables précompilés, il suffit de les télécharger et de les décompresser.
Démarrer Consul :
consul agent -server -bootstrap -ui -bind <ip>
D'autres nœuds de service peuvent rejoindre le cluster via consul agent -join <ip></ip>
.
Après le démarrage, gérez Consul via les commandes consul, l'API RESTful et l'interface utilisateur Web.
Consul fournit un magasin clé-valeur distribué qui peut être utilisé pour stocker les informations de configuration dynamique des applications :
# put 设置一个KV对 consul kv put APP_DEBUG false # get 获取 consul kv get APP_DEBUG # exprot 导出JSON consul kv export > data.json # import 导入JSON consul kv import @data.json # delete 删除 consul kv delete APP_DEBUG
Répertoires de prise en charge de Consul KV. peut être réalisé en séparant les clés par /
Par exemple, nous utilisons des répertoires tels que configs/<app_name>/</app_name>
pour stocker toutes les configurations d'un projet.
La configuration est gérée de manière centralisée Comment la transmettre à Laravel ? Une méthode consiste à utiliser l'API de Consul dans Laravel pour obtenir des informations de configuration. La deuxième méthode consiste à surveiller les modifications KV en externe et à les écrire dans le fichier .env
Consul Template est un tel outil externe.
Le modèle de configuration (.env.tpl
) que nous utilisons :
{{ range ls "configs/crm" }} {{ .Key }}={{ .Value }}{{ end }}
signifie parcourir le répertoire config/crm
KV et générer le format key=value
.
Exécutez :
## 格式: 模板文件:目标文件:更新后执行的命令 consul-template --template \ /path/to/.env.tpl:/path/to/.env:'php /path/to/artisan config:cache'
pour générer le fichier .env et surveiller en permanence les modifications. Une instance consul-template peut avoir plusieurs paramètres --template, qui peuvent être un serveur Générer des fichiers de configuration pour. plusieurs projets.
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Interprétation du conteneur de services Laravel (IocContainer)
Système d'authentification des utilisateurs Laravel (introduction de base)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!