{"id":5379,"date":"2011-12-19T10:38:55","date_gmt":"2011-12-19T08:38:55","guid":{"rendered":"https:\/\/www.ideematic.com\/actualites\/?p=455"},"modified":"2011-12-19T10:38:55","modified_gmt":"2011-12-19T08:38:55","slug":"automatiser-linstallation-de-serveurs-distants","status":"publish","type":"post","link":"https:\/\/www.ideematic.com\/actualites\/2011\/12\/automatiser-linstallation-de-serveurs-distants\/","title":{"rendered":"Automatiser l'installation de serveurs distants"},"content":{"rendered":"
[vc_row][vc_column][vc_column_text]Installer et configurer un serveur distant prend du temps, de l’\u00e9nergie et n\u00e9cessite une feuille de route pr\u00e9cise pour ne rien oublier d’important. Cela en prend encore plus lorsque l’on doit enchainer en peu de temps l’installation de plusieurs serveurs pour monter une petite architecture web. Heureusement, il existe des solutions logicielles qui permettent d’industrialiser ces t\u00e2ches qui peuvent para\u00eetre ingrates et r\u00e9p\u00e9titives. Nous allons voir dans la suite de cet article un bref aper\u00e7u des solutions propos\u00e9es et celle que nous avons s\u00e9lectionn\u00e9e.<\/p>\n
Provisionner un serveur distant peut se faire automatiquement via des outils logiciels. Il existe actuellement deux grandes solutions open-source qui permettent de g\u00e9rer finement les probl\u00e9matiques d’installation et de configuration de services sur une ou plusieurs machines distantes : Puppet<\/a> et Chef<\/a>. Ces deux solutions sont des outils tr\u00e8s performants et flexibles, bien document\u00e9s et dont les communaut\u00e9s sont tr\u00e8s actives. Il sont parfaitement adapt\u00e9s pour des structures g\u00e9rant un nombre significatif de serveurs. De plus, les \u00e9diteurs de ces solutions, certes open-source de base, proposent des versions payantes : Cependant, utiliser ces deux solutions et \u00e9crire des recettes de configuration n’est pas trivial. Cela n\u00e9cessite un investissement en temps qui peut para\u00eetre excessif pour des petites structures m\u00eame si les communaut\u00e9s respectives partagent facilement leurs recettes.<\/p>\n Il existe une autre solution logicielle, Sprinkle<\/a>. Sprinkle<\/a> est un outil \u00e9crit en Ruby<\/em>. Il apporte la m\u00eame souplesse d’utilisation que Capistrano<\/em> pour le d\u00e9ploiement des applications Ruby On Rails<\/em>. Il s’utilise directement en ligne de commande depuis un poste local et m\u00eame s’il est \u00e9crit en Ruby<\/em>, il ne n\u00e9cessite pas l’installation de ce langage sur la machine cible car Sprinkle<\/em>\u00a0ne communique avec elle que via le protocole SSH.<\/p>\n L’apprentissage de Sprinkle<\/em> repose sur la compr\u00e9hension de 4 concepts :<\/p>\n Ce bout de code d\u00e9finit un package :imagemagick qui sera install\u00e9 via l’installer apt, et dont les verifiers has_executable confirment que le package est bien install\u00e9 en testant l’existence des ex\u00e9cutables convert et identify.<\/p>\n Ensuite, nous cr\u00e9ons la politique d’installation dans un fichier install.rb :<\/p>\n Enfin, nous param\u00e9trons le fichier deploy.rb qui contient les informations de connexion au serveur distant :<\/p>\n Au final, le lancement de l’installation se fait via la commande sprinkle :<\/p>\n Bien \u00e9videmment, il serait plus pertinent de ne pas avoir \u00e0 enregistrer son mot de passe dans le fichier deploy.rb et d’utiliser une authentification par cl\u00e9 publique.<\/p>\n Au final, Sprinkle<\/em> se r\u00e9v\u00e8le \u00eatre une bonne solution pour provisionner des serveurs distants et ceci pour une structure n’ayant \u00e0 configurer qu’un nombre limit\u00e9 de serveurs car Sprinkle<\/em> est \u00e0 la fois facile \u00e0 prendre en main et facile \u00e0 configurer.[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":" [vc_row][vc_column][vc_column_text]Installer et configurer un serveur distant prend du temps, de l’\u00e9nergie et n\u00e9cessite une feuille de route pr\u00e9cise pour ne rien oublier d’important. Cela en prend encore plus lorsque l’on doit enchainer en peu de temps l’installation de plusieurs serveurs pour monter une petite architecture web. Heureusement, il existe des solutions logicielles qui permettent d’industrialiser […]<\/p>\n","protected":false},"author":11,"featured_media":1653,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[29],"tags":[51,82,83],"class_list":["post-5379","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developpement-web","tag-ruby","tag-provisioning","tag-sprinkle"],"acf":[],"yoast_head":"\n
\n– Puppet Enterprise<\/em> fourni des outils graphiques suppl\u00e9mentaires pour g\u00e9rer ses installations et supporte les architectures Amazon EC2 et VMware
\n– Opscode<\/em> propose de l’h\u00e9bergement de Chef serveurs.<\/p>\n\n
\npackage :imagemagick do\n description 'Image Magick'\n apt 'imagemagick'\n\n verify do\n has_executable 'convert'\n has_executable 'identify'\n end\nend\n<\/pre>\n
\npolicy :stack, :roles => :app do\n requires :imagemagick\nend\n\ndeployment do\n delivery :capistrano\n\n source do\n prefix '\/usr\/local'\n end\nend\n<\/pre>\n
\nset :user, 'some_user'\nset :password, 'user_password'\n\nset :host_ip, '123.123.123.123'\n\nrole :app, host_ip\n\nset :use_sudo, true\n\ndefault_run_options[:pty] = true\n<\/pre>\n
\nsprinkle -c -s install.rb\n<\/pre>\n