まとめ
- Ansible の expect モジュールを使用する。
- pip – Manages Python library dependencies. — Ansible Documentation
- virtualenv、pip に依存するとあるが、pip のみのインストールで問題なかった。
- pip は epel リポジトリの python-pip でインストールした。
- pip がインストールされれば、ansilbe の pip モジュールが使用できるようになり、楽に pexpect をインストールできるようになった。
- OpenJDK のときは対話処理するための質問文が表示されない。このときは expect は無視されるので Ansible の実行に影響なし。
- expect モジュールの timeout デフォルト値は 30 秒のため、Java のインストールに間に合わずエラーとなった。したがって、1200 (60 秒 × 20 分) を設定した。
- timeout 値を超える前にインストールが完了すれば次の処理へ進んだ。したがって、timeout には大きな値を入れておけば良い。