--- title: Chefで事前応答ファイルを準備してパッケージをインストールする author: kazu634 date: 2013-05-06 url: /2013/05/06/chef_package_installation_with_preseedings/ has_been_twittered: - yes tmac_last_id: - 368535674695479296 wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";s:1:"1";s:5:"delay";s:1:"0";s:7:"enabled";s:1:"1";s:10:"separation";i:60;s:7:"version";s:3:"3.0";s:14:"tweet_template";b:0;s:6:"status";i:3;s:6:"result";a:0:{}s:13:"tweet_counter";i:1;s:13:"tweet_log_ids";a:0:{}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - chef - インフラ --- 普段手動でパッケージをインストールする際に対話的にパスワードなどを聞かれることがあります。例えばmysql-serverをインストールする場合には、次のような画面が表示されます: 1. Default (ssh) こうした対話的な問い合わせに対して、事前に応答する内容を記述したファイルを用意することで対話的なインターフェースをバイパスできます。今回は Debian/Ubuntu 系の場合に事前応答ファイルを準備してインストールする方法をまとめます。 ## 検証した環境 Ubuntu 12.04で検証しています。 ## レシピの書き方 Chefのマニュアルには次のように記載されています: > Use of a response\_file is only supported on Debian and Ubuntu at this time. Providers need to be written to support the use of a response\_file, which contains debconf answers to questions normally asked by the package manager on installation. Put the file in files/default of the cookbook where the package is specified and Chef will use the cookbook_file resource to retrieve it. > > To install a package with a response_file: > >
package "sun-java6-jdk" do
  response_file "java.seed"
end
現時点では Debian/Ubuntu 系の preseeding しかサポートしておらず、また、response_file で指定すればよさそうです。 ## response_fileの内容 response_fileの内容はここを参考にすると幸せになれます: * B.3. 事前設定ファイルの作成 * Debian/Ubuntu 系 OS でパッケージを全自動インストールする方法 mysql-serverのインストール時に root のパスワードを指定しますが、その際に「123qweASD」を指定した場合のresponse_fileの内容は次のようになります:
mysql-server-5.5 mysql-server/root_password_again password 123qweASD
mysql-server-5.5 mysql-server/root_password password 123qweASD
Ubuntuデフォルトでインストールされるmysqlのバージョンが5.6になったら修正する必要が出てきそうですが、とりあえず上記の内容で mysql.seed という名前で保存をし、 files/default/ 配下に格納します。 ## 実際にレシピを書いてみる 結果的に次のようになります:
package "mysql-server" do
  action :install

  response_file "mysql.seed"
end
* * *
入門Chef Solo - Infrastructure as Code
伊藤直也 (2013-03-11)
売り上げランキング: 252