diff --git a/defaults/debian.yml b/defaults/debian.yml index 461afb8..b3064a8 100644 --- a/defaults/debian.yml +++ b/defaults/debian.yml @@ -11,3 +11,8 @@ oracle_java_home: "/usr/lib/jvm/java-{{ oracle_java_version }}-oracle" oracle_java_os_supported: yes oracle_java_state: latest + +# codename hash to convert mint to ubuntu releases +oracle_java_ppa_mint: + sonya: xenial + sylvia: xenial diff --git a/defaults/linuxmint.yml b/defaults/linuxmint.yml new file mode 120000 index 0000000..f1a5a89 --- /dev/null +++ b/defaults/linuxmint.yml @@ -0,0 +1 @@ +debian.yml \ No newline at end of file diff --git a/defaults/main.yml b/defaults/main.yml index b022c43..d1d1877 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -13,3 +13,8 @@ oracle_java_version_string: "1.{{ oracle_java_version }}.0_{{ oracle_java_versio oracle_java_ansible_arch_mappings: x86_64: x64 i386: i586 + +# codename hash to convert mint to ubuntu releases +oracle_java_ppa_mint: + sonya: xenial + sylvia: xenial diff --git a/meta/main.yml b/meta/main.yml index 8241033..23686f9 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -33,6 +33,10 @@ galaxy_info: - vivid - trusty - precise + - name: Linuxmint + versions: + - sonya + - sylvia galaxy_tags: - development - java diff --git a/tasks/check_environment.yml b/tasks/check_environment.yml index 29f8c73..10cd8ad 100644 --- a/tasks/check_environment.yml +++ b/tasks/check_environment.yml @@ -4,6 +4,7 @@ # task to set host facts: # - Java is installed? # - which Java version is installed? +# - is ansible version correct ? # - name: determine if Java is already installed @@ -39,3 +40,15 @@ - oracle_java_task_version - oracle_java_version_installed - oracle_java_version_string + + # prior to 2.4, ansible facts for linux mint are: + # "ansible_os_family": "Linuxmint" + # "ansible_distribution": "Linuxmint" + # after 2.4, the facts change to something more sane + # "ansible_os_family": "Debian" + # "ansible_distribution": "Linux Mint" +- name: check ansible version + when: ansible_distribution == 'Linux Mint' or ansible_distribution == 'Linuxmint' + assert: + that: "ansible_version.full | version_compare('2.4', '>=')" + msg: "You must update Ansible to at least 2.4 to use this role with Linux Mint" diff --git a/tasks/debian/linuxmint.yml b/tasks/debian/linuxmint.yml new file mode 100644 index 0000000..a852816 --- /dev/null +++ b/tasks/debian/linuxmint.yml @@ -0,0 +1,12 @@ +--- +# file: oracle-java/tasks/debian/linuxmint.yml +# +# Task file to install Oracle Java Development Kit ppa for linux mint +# + +- name: debian | mint | add java ppa repo + apt_repository: + repo=ppa:webupd8team/java + state=present + codename='{{ oracle_java_ppa_mint[ansible_lsb.codename] }}' + become: yes diff --git a/tasks/debian/main.yml b/tasks/debian/main.yml index a1bcba3..b06007f 100644 --- a/tasks/debian/main.yml +++ b/tasks/debian/main.yml @@ -4,32 +4,8 @@ # Task file to install Oracle Java Development Kit in a system with a Debian based Linux distribution. # -- name: debian | ubuntu | add java ppa repo - apt_repository: - repo=ppa:webupd8team/java - state=present - become: yes - when: ansible_distribution == 'Ubuntu' - -- block: - - name: debian | ensure the webupd8 launchpad apt repository key is present - apt_key: - id=0xC2518248EEA14886 - keyserver=keyserver.ubuntu.com - state=present - become: yes - - - name: debian | ensure the webupd8 launchpad apt repository is present - apt_repository: - repo="{{ item }} http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" - update_cache=yes - state=present - with_items: - - deb - - deb-src - become: yes - - when: ansible_distribution == 'Debian' +# Linux mint reprts "ansible_distribution" as "Linux Mint", hence the whitespace trimming +- include: debian/{{ansible_distribution|lower|replace(' ', '') }}.yml - name: debian | set license as accepted debconf: name='oracle-java{{ oracle_java_version }}-installer' question='shared/accepted-oracle-license-v1-1' value='true' vtype='select' diff --git a/tasks/debian/ubuntu.yml b/tasks/debian/ubuntu.yml new file mode 100644 index 0000000..960a64a --- /dev/null +++ b/tasks/debian/ubuntu.yml @@ -0,0 +1,11 @@ +--- +# file: oracle-java/tasks/debian/ubuntu.yml +# +# Task file to install Oracle Java Development Kit ppa for ubuntu +# + +- name: debian | ubuntu | add java ppa repo + apt_repository: + repo=ppa:webupd8team/java + state=present + become: yes diff --git a/tasks/linuxmint.yml b/tasks/linuxmint.yml new file mode 100644 index 0000000..60f7fef --- /dev/null +++ b/tasks/linuxmint.yml @@ -0,0 +1,12 @@ +--- +# file: oracle-java/tasks/debian/main.yml +# +# Task file to install Oracle Java Development Kit in a system with a Debian based Linux distribution. +# + +- name: debian | mint | add java ppa repo + apt_repository: + repo=ppa:webupd8team/java + state=present + codename='{{ oracle_java_ppa_mint[ansible_lsb.codename]|default(ansible_lsb.codename) }}' + become: yes diff --git a/tasks/main.yml b/tasks/main.yml index d6b8da1..03803a3 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -33,7 +33,7 @@ - name: if debian, include family specific task file include: "debian/main.yml" - when: ansible_os_family | lower == 'debian' + when: ansible_os_family | lower == 'debian' or ansible_os_family | lower == 'linuxmint' - name: if redhat, include family specific task file include: "redhat/main.yml" diff --git a/tests/boxes.yml b/tests/boxes.yml index 84d0fc6..2a0ae87 100644 --- a/tests/boxes.yml +++ b/tests/boxes.yml @@ -109,3 +109,16 @@ vagrant: memory: 1024 cpus: 1 + # Linux mint + + mint_sylvia64.vagrant.dev: + enabled: true + box: ajxb/mint-18.3 + network: + name: private_network + ip: 192.168.124.14 + + provider: + virtualbox: + memory: 1024 + cpus: 1