J'ai besoin d'écrire un script qui construira mon serveur à partir d'une nouvelle installation de serveur Ubuntu. Entre autres choses comme Apache et PHP, il doit installer MySQL. Le seul problème ici est que lorsque j'installe MySQL avec apt-get, à un moment donné, l'installation fera apparaître une boîte de dialogue qui me permet de taper mon mot de passe root. C'est-à-dire qu'une interaction humaine est requise.
Comment puis-je contourner cet écran pendant l'installation et éviter toute interaction humaine tout en utilisant apt-get pour installer MySQL?
Réponses:
Vous devez préconfigurer la base de données debconf. debconf doit d'abord être installé avant d'essayer.
La version de mysql et ubuntu pourrait changer la ligne:
Par exemple, vous avez plutôt eu besoin de ceci:
la source
mysql -u root -p
Bien que FAI et les systèmes similaires soient utiles dans un environnement d'entreprise (et il devrait les connaître), ils ne sont malheureusement pas une panacée.
Par exemple, que faire s'il travaille sur des machines distantes, peut-être des serveurs hébergés, loués, des serveurs colocalisés sans réseau de confiance ou dédié, ou un environnement cloud comme EC2? Aucune sorte de netboot PXE ne fonctionnera là-bas. Puppet and Chef semblent être des outils à usage plus général qui pourraient toutefois l'aider.
Vous pouvez obtenir les valeurs correctes de la base de données debconf sur un système qui a déjà été configuré. Cette technique vous permet de coller le tout dans un seul script shell. Par exemple, depuis /var/cache/debconf/passwords.dat (notez la possibilité de travailler avec 5.0 sur Debian et 5.1 et Ubuntu, les entrées supplémentaires ne font rien de mal):
Une autre méthode, peut-être plus simple: (rassemblez les réponses de debconf-get-selections ou debconf-show du paquet debconf-utils):
Après avoir exécuté debconf-set-selections, vérifiez vos réponses: cat /var/cache/debconf/passwords.dat
Et, pendant les tests, assurez-vous de supprimer et de purger toutes les bases de données (en particulier la base de données mysql, où elles sont stockées) et de corriger votre base de données de configuration au cas où elles seraient corrompues:
Quelques conseils avec ceci: 1) Vous DEVEZ avoir le drapeau vu et le mot de passe _à nouveau. 2) Vous NE DEVEZ PAS mettre de guillemets autour du mot de passe. Il ira dans une requête MySQL sans guillemets, vous devez donc le citer vous-même si nécessaire. Cela signifie également qu'il n'y a pas d'espace (je pense) 3) Si vous avez des problèmes, faites la préconfiguration à la main, puis exécutez directement l'installation MySQL (dans un terminal / tty normal) et voyez ce que debconf vous dit. Il vous indiquera des avertissements et des erreurs.
la source
Si vous avez plusieurs serveurs que vous devez reconstruire, je vous recommande fortement de regarder quelque chose comme Puppet au lieu d'écrire un script shell. Puppet a un langage descriptif, vous définissez donc à quoi vous voulez que le système ressemble, pas comment y arriver. Le type de package a une option de fichier de réponses qui vous permet de définir les réponses debconf dans la réponse de Steven.
la source
Puis-je également vous suggérer d'automatiser le processus de transfert du serveur à partir du fer brut?
FAI a de nos jours des profils pour installer la plupart des principaux systèmes basés sur Debian, y compris Ubuntu, à partir du réseau. Bien sûr, ce n'est qu'une extension de la réponse fantoche, qui est une extension de la réponse debconf.
La combinaison de la mise en scène à partir de FAI, puis de la personnalisation avec marionnette en rôles de serveur (où la marionnette utilisera les outils appropriés pour votre système, comme debconf pour Debian (-likes) plutôt automatiquement), est plutôt populaire de nos jours et cela ne devrait pas être trop difficile de trouver des exemples qui correspondent à ce que vous voulez faire de près.
Un avantage supplémentaire majeur d'avoir un serveur de transfert / configuration est qu'il est également un endroit logique pour garder votre configuration contrôlée par la version, par exemple avec git (qui a l'avantage de nommer les états du référentiel par somme de contrôle, de sorte que vous êtes à l'abri de la corruption comme tant que vous notez les bons sommes de contrôle), pour un processus vraiment propre et reproductible.
la source
Voir également:
/programming/1202347/simple-bash-script-to-install-mysql-need-some-help
la source