chefで対話形式のインストーラなどに対する応答を自動化するには、expectコマンドを用います。
まずexpectコマンドをインストールします。
yum install expect
expectコマンドによる自動応答スクリプトを作成します。以下はその一例です。
#!/bin/bash expect -c ' spawn /path/to/script set timeout 1800 expect { -regexp "Which is your operating system.*" { exp_send "1\r" exp_continue } } '
spawnで実行したい対話形式のスクリプトのパスを指定します。
set timeoutはexpectの実行を許す時間の設定です。
-regexpで指定した正規表現にマッチする文字列が出力された時、
exp_sendで指定した文字列を応答として入力します。文末に\rをつけるようにします。
exp_continueで自動応答を終了します。複数回の応答を自動化したい場合はexpectを複数個記述し最後のみexp_continueを記述してください。
作成したスクリプトをchefから実行することで、対話形式のスクリプトへの応答を自動化することができます。