vagrantブートストラップシェルスクリプトにmysql-serverをインストールする(セットアップをスキップする方法は?)


16

Vagrant Ubuntu 12.04 LTS仮想マシンにmysql-serverをインストールしようとしました。そうすると、セットアップが自動的に開始されます。Vagrantの出力でこれを確認できます。

必須ではありませんが、MySQL管理「root」ユーザーのパスワード││を設定することを強くお勧めします。││││このフィールドを空白のままにすると、パスワードは変更されません。││││ MySQL「root」ユーザー

その後、出力テキストは大雑把になります— ± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...—かなり長く、緑と赤の色に満ちているため、残りのインストールは完了したと思います。

しかし、インストールの欠如は次の後に確認できます。

sudo apt-get install --just-print mysql-server-5.5 
...
The following NEW packages will be installed:
  mysql-server-5.5

シェルスクリプトを介して適切な信号を送信して、MYSQLサーバーを構成するにはどうすればよいですか?または、できない場合、パッケージのインストール中に構成の自動起動を停止したり、起動後にセットアップを強制終了したりするにはどうすればよいですか?


インストールの残りが完了している場合、再度インストールすることはできません。インストール前にパスワードを設定しようとしましたか?
アントン14

@Anthon申し訳ありませんが、私の投稿でこれをうまく説明しているとは思いません。これはすべて手動で構成できますが、私の目標はセットアップを可能な限り自動化することです。この後、mysqlのインストール(たとえばrvmのインストール)に依存する多くの手順があります。
サム14

問題の原因がクリーンでないシステム(クリーンな仮想マシンのセットアップでインストールしてみてください)でない限り、これはパッケージ自体の問題のように聞こえます。このような場合、インストールファイルにパッチを適用し(完全な再構築ではなく、抽出/変更/結合のみ)、ローカルリポジトリから提供します。
アントン14

@Anthon:/ a)構成ウィザードを自動起動しないMYSQLサーバーパッケージが存在するか、b)これらの種類の起動をトラップするbash-yの方法があります(apt-get install mysql-server | some_trap_cmd >> some.file)のようなソリューションを探していました。多分そのようなものは存在しないように聞こえますか?
サム14

問題は、apt-getがインストーラーファイル内でスクリプトを実行することです。スクリプトにパッチを適用しない限り、これらのトラップをキャッチすることはできません。5.6 mysqlを見て、launchpadからインストールすることもできますが、これにより、すべての依存関係を取り込むのがさらに難しくなる可能性がありますが、インストールの問題はなくなるかもしれません。
アントン14

回答:


29

apt-getインストールを実行する前にdebconf-set-selectionsコマンドを追加することにより、ブートストラップファイルにMySQLルートパスワードを設定できます。

#!/usr/bin/env bash

debconf-set-selections <<< 'mysql-server mysql-server/root_password password MySuperPassword'
debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password MySuperPassword'
apt-get update
apt-get install -y mysql-server

これは、Debianベースのシステムで動作すると考えられます。私は毎日使用していますが、ボックスは完全に自動的に構築されます。


1
驚くばかり!私は、このコマンドを知らなかった
AlvaroAV

1
私はdebconf-set-selections存在しませんでした。これは完全に機能しました。ありがとうございました!
サム

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.