/ansible-role-install-firefox

Ansible Role: Install Firefox

Primary LanguagePowerShellApache License 2.0Apache-2.0

Ansible Role: Install Firefox

Install Firefox for Linux and Windows.

Work on

Ansible Galaxy style:

  platforms:
    - name: Fedora
      versions:
        - 31
        - 30
    - name: Ubuntu
      versions:
        - focal
        - eoan
        - disco
        - cosmic
        - bionic
        - xenial
        - trusty
    - name: Debian
      version:
        - jessie
        - stretch
        - buster
        - stable
        - testing
    - name: EL (CentOS)
      versions:
        - 8
        - 7
    - name: opensuse
      vesrion:
        - tumbleweed
    - name: windows
      version:
        - 2008x64 (7 64bit)
        - 2008x86 (7 32bit)
        - 2019 (10 64bit)

Table style:

  • ✔️ - work, tested, ok.
  • 🚧 - TODO. Work in progress.
  • ❌ - not work. Don't try.
. Firefox stable Firefox beta Firefox nightly Firefox developer Firefox esr . Flatpak Snap msi exe tar 32 bit 64 bit
OS
Windows
7 ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ ✔️ ✔️
10 ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ ✔️ ✔️
Ubuntu
focal ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
eoan ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
disco ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
cosmic ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
bionic ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
xenial ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
trusty ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
Debian
jessie ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
stretch ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
buster ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
stable ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
testing ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
EL (CentOS)
8 ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
7 ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
opensuse
tumbleweed ✔️ 🚧 🚧 🚧 🚧 ✔️ ✔️ 🚧 ✔️ ✔️
Package manager
Flatpak ✔️
Snap ✔️ 🚧 🚧 🚧 🚧
msi ✔️ 🚧 🚧 🚧 🚧
exe ✔️ 🚧 🚧 🚧 🚧
tar 🚧 🚧 🚧 🚧 🚧
Architecture
32 ✔️ 🚧 🚧 🚧 🚧
64 ✔️ 🚧 🚧 🚧 🚧

Requirements

min_ansible_version: 2.8

Role Variables

#--- Firefox Edition ---#

firefox_edition: stable
# firefox_edition: beta
# firefox_edition: nightly
# firefox_edition: developer
# firefox_edition: esr

#--- Firefox method install ---#

firefox_method_install: package-manager
# firefox_method_install: flatpak
# firefox_method_install: snap
# firefox_method_install: tar

#--- Firefox language ---#

# !!! Default value 4 Windows !!!:
firefox_lang: ru
# firefox_lang: en-US

#--- Firefox api urls ---#

firefox_versions_url: 'https://product-details.mozilla.org/1.0/firefox_versions.json'
firefox_available_languages_url: 'https://product-details.mozilla.org/1.0/languages.json'

#--- Firefox installer type. Windows only!!! ---#

firefox_win_installer_type: exe
# firefox_win_installer_type: msi

#--- Firefox install path. Windows only!!! ---#

firefox_win_install_path: '{{ ansible_env.ProgramFiles }}\Mozilla Firefox'

#--- Firefox path to firefox.exe. Windows only!!! ---#

firefox_win_path_to_exe: '{{ firefox_win_install_path }}\firefox.exe'

#--- Firefox local download path. ---#

firefox_windows_local_download_path: '{{ ansible_env.TMP }}\firefox'
firefox_linux_local_download_path: '/tmp/firefox'

Dependencies

If you want install over Flatpak:

Version one:

cd /path/to/you/ansible/roles
git clone https://github.com/don-rumata/ansible-role-install-flatpak

Version two:

ansible-galaxy install don_rumata.ansible_role_install_flatpak

If you want install over Snap:

Version one:

cd /path/to/you/ansible/roles
git clone https://github.com/don-rumata/ansible-role-install-snap

Version two:

ansible-galaxy install don_rumata.ansible_role_install_snap

If you want deploy to Windows 7 - download and install "Windows Management Framework 5.1":

https://www.microsoft.com/en-us/download/details.aspx?id=54616

HowTo

Quick config WinRM for Windows: https://ru.stackoverflow.com/a/949971/191416

Example Playbooks

Install latest stable Firefox on Windows or Linux with en-US locale (for Windows) over package manager of you distro:

install-firefox.yml:

- name: Install FireFox
  hosts: all
  strategy: free
  serial:
    - "100%"
  roles:
    - ansible-role-install-firefox
  vars:
    firefox_lang: en-US
  tasks:

install-firefox-over-flatpak-v1.yml:

- name: Install FireFox
  hosts: all
  strategy: free
  serial:
    - "100%"
  roles:
    - ansible-role-install-flatpak
    - ansible-role-install-firefox
  vars:
    firefox_method_install: flatpak
  tasks:

install-firefox-over-snap-v2.yml:

- name: Install FireFox
  hosts: all
  strategy: free
  serial:
    - "100%"
  roles:
    - don_rumata.ansible_role_install_snap
    - ansible-role-install-firefox
  vars:
    firefox_method_install: snap
  tasks:

License

Apache License, Version 2.0

Author Information

don Rumata

TODO

  • Add tests.

Thanks