Je cherche chef pour automatiser les déploiements Magento - à la fois dans les options d'hébergement Magento standard ainsi que dans des environnements comme EC2. J'ai fait des recherches sur Google et je vois de nombreuses recettes, mais aucune ne me semble vraiment canonique. Y a-t-il un script de chef particulier qui est meilleur / meilleur? De plus, si vous avez déjà fait des déploiements de chef avec PHP, quelle est la chose que vous souhaiteriez savoir au début?
10
Réponses:
Il est presque impossible d'avoir un ensemble unique de routines. J'ai réussi à écrire un script Bash qui exécute des
chef-client
exécutions sur des listes d'hôtes fournies parknife search
. Les procédures ressemblent à ceci…Open Source Chef Server 10.18.2 sur Ubuntu 12.04 LTS
$branch
n98-magerun.phar
n98-magerun.phar
$revision
comme une nouvelle versionSource: https://gist.github.com/parhamr/6177160#file-2-deployment
la source
C'est ainsi que j'ai abordé ce domaine en portant le rôle wys be admin / devops. La plupart des éléments suivants ne seront que des principes généraux que j'essaie de suivre et non spécifiques au chef.
J'ai fini par aller avec Puppet parce que j'ai trouvé qu'il y avait plus de ressources à l'époque et que je me sentais plus facile à ramasser pour moi.
J'ai regardé les différents modules pré-construits disponibles pour des choses comme apache, php5, etc. Beaucoup d'entre eux semblaient faire bien plus que ce dont j'avais besoin et étant si peu familier avec la plate-forme, je ne faisais pas confiance à ce qui se passait. J'ai décidé qu'il allait être plus simple pour moi d'identifier simplement ce que je devais faire sur chaque type de nœud.
J'ai démarré le processus en provisionnant l'environnement de développement local de l'équipe (vargrant + virtual box). Pour chaque service / composant j'ai créé un module: php5, apache2, redis, mysql, etc.
Une fois l'environnement de développement stable / fonctionnel, j'ai commencé à créer l'environnement QA. J'ai défini des types de nœuds génériques pour les serveurs Web, redis, vernis, etc. qui réutilisaient les mêmes modules que dev. Une fois cela fait, la mise en scène et la production avaient besoin de modifications minimes pour être opérationnel.
Au fur et à mesure que vous parcourez et écrivez vos recettes / modèles, vous devez réfléchir à la manière de les réutiliser / les généraliser. Ne codez pas des choses comme des chemins ou des utilisateurs / groupes qui pourraient changer entre les distributions / projets / environnements. Étant donné que vous envisagez une approche généralisée, je suppose qu'un grand obstacle résoudra les différences entre les distributions * nix.
Plus important encore, garder est simple. Automatisez / standardisez les parties les plus importantes / chronophages de l'environnement. Itérer, évoluer.
la source