Existe-t-il un outil DevOps similaire pour fabriquer avec JavaScript comme langage de script? Je m'intéresse spécifiquement au côté de l'exécution à distance.
La plupart des outils que j'ai trouvés s'appuient sur python (par exemple tissu ) ou Ruby (par exemple Capistrano, Chef). Cependant, dans mon équipe, nous n'utilisons ces langues pour rien d'autre. Bien que ces langages soient excellents, ils ne sont pas aussi universels que JavaScript dans l'industrie du développement Web.
Je mentionne le tissu parce qu'il est idéal pour ce que je veux, sauf que j'ai des compétences minimales en python (malheureusement).
deployment
Henri
la source
la source
Réponses:
Shipit est ce que vous recherchez.
la source
Fabric (et Capistrano, probablement l'outil Ruby sans nom que vous avez rencontré) sont un peu inhabituels en ce qu'ils sont des exécuteurs de tâches avec des fonctionnalités supplémentaires pour exécuter facilement des tâches sur des hôtes distants. Je ne connais pas d'autres outils populaires qui font exactement la même chose, mais selon vos besoins, il existe quelques autres options qui peuvent fonctionner pour vous.
Grunt et Gulp sont les principaux exécuteurs de tâches de l'écosystème Javascript. Bien qu'ils ne soient pas conçus spécifiquement pour déployer des logiciels, ils ont tous deux des systèmes basés sur des plugins qui vous permettent de le faire, et vous trouverez de nombreux articles de personnes utilisant l' un ou l' autre pour le faire. Par exemple, ce tutoriel utilise le
grunt-ssh
plugin pour intégrer ssh avec grunt, tandis que celui-ci repose surgulp-rsync
.L'utilisation de runners de tâche pour déployer du code a tendance à être une approche privilégiée par les développeurs qui portent un chapeau d'opérations. Lorsque vous demandez à un ingénieur d'exploitation, il est plus susceptible de suggérer de pirater ce comportement dans un outil de configuration. Cela peut prendre de nombreuses formes (par exemple, empaqueter votre application dans un rpm ou deb, puis l'installer comme n'importe quel autre logiciel), mais je vais me concentrer sur ce que je pense être la méthode la plus simple et la plus directe pour vous.
Ansible est apparemment un outil de gestion de configuration, mais il brille vraiment à l' orchestration des tâches , que je définirais comme "l'exécution d'un ensemble d'actions sur un ensemble de serveurs". La documentation officielle est un bon endroit pour commencer, mais pour vous donner une idée de ce à quoi cela pourrait ressembler, vous pourriez avoir un playbook (un fichier YAML qui définit un ensemble de tâches) comme ceci:
Lorsque vous exécutez ce fichier avec
ansible-playbook
, il recherchera votre liste d'hôtes (aussi simple qu'un fichier ini, mais peut également être une liste dynamique écrite dans n'importe quel langage de programmation) pour déterminer quels serveurs existent et dans quels groupes ils se trouvent, puis exécutez les tâches définies sur les serveurs auxquels vous le demandez.Maintenant, vous avez spécifié que vous vouliez rester dans l'écosystème Javascript. Cependant, bien qu'Ansible soit une nouveauté pour vous, il n'a pas toutes les complexités d'un autre langage de programmation, car les configurations sont écrites en YAML. Il vous permettra également de faire beaucoup plus tard, et contrairement à plusieurs de ses concurrents, utilise ssh pour communiquer, donc il y a très peu de configuration impliquée (rien à installer sur les machines distantes).
la source