Skip to content

Instantly share code, notes, and snippets.

@AlexGluck
Created March 15, 2019 14:04
Show Gist options
  • Save AlexGluck/e2d24d4a9486b3ece8c89d4b4232f7e9 to your computer and use it in GitHub Desktop.
Save AlexGluck/e2d24d4a9486b3ece8c89d4b4232f7e9 to your computer and use it in GitHub Desktop.
Test playbook for install oracle java
---
- name: Install OracleJava
hosts: "localhost"
vars:
arch: ''
orajdk:
type: 'jdk'
version: 8
upd: ''
dlfolder: /tmp
platform: "{{ arch }}"
state: "present"
#tar_gz: 'tar.gz'
os_type: 'linux'
### Oracle site, var for concatenate url http://www.oracle.com
oracle_site: "http://www.oracle.com"
### Url for get list current versions and link to archive
oracle_download_link: "http://www.oracle.com/technetwork/java/javase/downloads/index.html"
### Regexp for get url to download page for current versions
java_latest_release: "/technetwork/java/javase/downloads/{{ orajdk.type|default('jdk') }}{{ orajdk.version }}-downloads-.*\.html"
### Regexp for get url to page with list archive versions
java_archives: "/technetwork/java/javase/archive-.*\.html"
### Regexp for get url to download page with list archive version
java_archive_versions: "/technetwork/java/javase/downloads/java-archive-(downloads-)?javase{{ java_version}}.*\.html"
### Regexp for get download url
search_package: "http://download.oracle.com/otn-pub/java/.*{{ orajdk.type|default('jdk') }}.*u{{ orajdk.upd }}.*{{ os_type|default('linux') }}.*{{ orajdk.arch | default('(x|amd)64') }}.*{{ tar_gz | default('\.rpm') }}(\.bin)?"
tasks:
- name: Get list current versions and link to archive
get_url:
url: "{{ oracle_download_link }}"
headers: 'Cookie:oraclelicense=accept-securebackup-cookie'
register: oracle_download_link_data
- name: Search url for latest release
set_fact:
java_latest_download_link: "{{ oracle_download_link_data.content|regex_search(java_latest_release) }}"
when: (orajdk.version|int) >= 8
- name: Search url for archives
set_fact:
java_archives_link: "{{ oracle_download_link_data.content|regex_search(java_archives) }}"
when: java_latest_download_link == ''
- name: Get list archive versions
get_url:
url: "{{ oracle_site }}{{ java_archives_link }}"
headers: 'Cookie:oraclelicense=accept-securebackup-cookie'
register: java_archives_link_data
when: java_latest_download_link == ''
- name: Search url for archive releases for our version
set_fact:
java_archive_version_link: "{{ java_archives_link_data.content|regex_search(java_archive_versions) }}"
when: java_latest_download_link == ''
- name: Get list archive versions
get_url:
url: "{{ oracle_site }}{{ java_archives_link }}"
headers: 'Cookie:oraclelicense=accept-securebackup-cookie'
register: java_archives_link_data
when: java_latest_download_link == ''
- name: Get finish page
get_url:
url: "{{ oracle_site }}{% if java_latest_download_link != '' %}{{ java_archive_download_link }}{% else %}{{ java_latest_download_link }}{% endif %}"
headers: 'Cookie:oraclelicense=accept-securebackup-cookie'
register: java_download_link_data
- name: Search package
set_fact:
package_name: "{{ java_download_link_data.content|regex_search(search_package) }}"
when: java_latest_download_link == ''
- name: Download java
get_url:
url: "{{ package_name }}"
dest: "{{ orajdk.dlfolder }}/{{ orajdk.type|default('jdk') }}-{{ orajdk.version }}u{{ orajdk.upd }}-{{os_type|default('linux')}}-{{ arch | default('(x|amd)64') }}{{ tar_gz | default('.rpm') }}"
headers: 'Cookie:oraclelicense=accept-securebackup-cookie'
- name: Manage java package
package:
name: "{{ orajdk.dlfolder }}/{{ orajdk.type|default('jdk') }}-{{ orajdk.version }}u{{ orajdk.upd }}-{{os_type|default('linux')}}-{{ arch | default('(x|amd)64') }}{{ tar_gz | default('.rpm') }}"
state: "{{ state }}"
- name: Creates /etc/profile.d/java.sh
copy:
dest: /etc/profile.d/java.sh
content: "export JAVA_HOME=$(readlink -f /usr/bin/java | sed 's:/bin/java::')\n"
owner: root
group: root
mode: '0755'
- name: Find /var/log files equal or greater than 10 megabytes ending with .old or .log.gz
find:
paths: /usr/java
patterns: "{{ orajdk.type|default('jdk') }}.*{{ orajdk.version }}.*{{ orajdk.upd }}.*{{ orajdk.platform }}"
file_type: directory
use_regex: yes
register: java_paths
- name: Manage java in alternatives
alternatives:
link: /usr/bin/java
name: java
path: "{{ java_paths }}/bin/java"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment