はじめに
サーバ構築を自動化するのに便利な Ansible ですが、JDK をインストールしようと思うといくつかしんどいポイントがあります。解消方法について、日本語の情報が少なかったので簡単にまとめてみます。
ライセンスへの同意ができない
ダウンロード画面からお判りいただける通り、 JDK のダウンロードにはライセンスへの同意が必要です。
Ansible では、 yum
モジュールや get_url
モジュールを利用してミドルウェアのダウンロードが簡単に行えますが、 JDK の場合は素直にダウンロードすることができません。この問題は、ライセンス認証済みであることを Cookie に付与することで回避できます。
Cookie は get_url
モジュールの headers
オプションに設定できます。
headers: "Cookie:' gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie'"
証明書チェックに引っかかる
加えて、 Java のダウンロードは SSL を介して行われるため、証明書の問題も潜り抜ける必要があります。
get_url
モジュールには validate_certs
というオプションがあるため、ここに no
を設定することで回避できます(文字通り認証をすっ飛ばすオプションなので、信頼できるサイトに対してのみ使用するようにしてください)。
validate_certs: no
まとめると
以下のスクリプトでジャバダウンロードできます。
- name: download JDK
get_url:
url: "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm"
dest: "/opt/jdk-8u144-linux-x64.rpm"
headers: "Cookie:' gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie'"
validate_certs: no
owner: root
group: root
mode: 744
- name: install JDK from a local file
yum:
name: "/opt/jdk-8u144-linux-x64.rpm"
state: present