Firebird (Firefox Browser & Thunderbird Mailclient)
This role was created to install Firefox and Thunderbird to noble_desktop.
General
This role consists of six main steps:
- Uninstalls snap Firefox and Thunderbird
- Only uninstalls snap Firefox and Thunderbird if snap_remove equals false
- Snap_remove checks whether Snap is installed or not. Snap_remove == false → Snap is still installed → therefore remove Snap Firefox and Thunderbird
#snap remove firefox
- name: snap remove firefox
community.general.snap:
name: firefox
state: absent
become: true
when: snap_remove == false
#snap remove thunderbird
- name: snap remove thunderbird
community.general.snap:
name: thunderbird
state: absent
become: true
when: snap_remove == false
- Get apt signing key for Mozilla PPA Repo, use trusted.gpg.d folder as keyring
#if the system is behind a apt proxy the key has to be requested through the proxy aswell
- name: get apt signing key for zabbix Repo over proxy
command: apt-key adv --keyserver-options http-proxy={{proxy_custom}} --keyserver keyserver.ubuntu.com --recv-keys {{Jammy_firebird_mozilla_ppa_key_id}}
become: yes
when: (apt_proxy == true) or (proxy_apt == true)
- name: get apt signing key for Mozilla PPA Repo
apt_key:
url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x{{Jammy_firebird_mozilla_ppa_key_id}}
state: present
keyring: /etc/apt/trusted.gpg.d/mozilla-ppa-repo.gpg
become: true
- Adds Mozilla ppa
#add firefox PPA
- name: add firefox PPA
ansible.builtin.apt_repository:
repo: ppa:mozillateam/ppa #new syntax to also fetch gpgp-sining-key
state: present
update_cache: yes
become: true
- Sets high priority for Firefox and Thunderbird installation to added ppa
- Copies a template file called 99mozillateamppa to /etc/apt/preferences.d
#set higher priority for firefox and thunderbird package from this PPA
- name: Copy 99mozillateamppa to /etc/apt/preferences.d to set priority for firefox package from added PPA
template:
src: 99mozillateamppa
dest: /etc/apt/preferences.d/99mozillateamppa
owner: root
group: root
mode: 0644
force: true
when: firefox_conf == true or thunderbird_conf == true
become: true
- Installs Firefox as deb
#install firefox as deb
- name: Install firefox
ansible.builtin.apt:
name: firefox
state: present
when: firefox_conf == true
become: true
- Adds adblock plus to Firefox (opt-in)
- copies folder (the folder name is the ID of the addon found in the manifest.json file) with extracted addon xpi file to /usr/share/mozilla/extensions/.....
#Copy Adblock Plus Addon into Adblock folder
- name: Copy Adblock Plus Addon into Adblock folder
copy:
src: ./{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
dest: /usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
owner: root
group: root
mode: 0644
force: true
when: adblock_conf == true
become: true
- Installs Thunderbird as deb
#install thunderbird as deb
- name: Install thunderbird
ansible.builtin.apt:
name: thunderbird
state: present
when: thunderbird_conf == true
become: true
Dependencies
Role Dependencies
Package Dependencies
Role Variables
Name | Type | Default value | Purpose | Comment | Role |
---|---|---|---|---|---|
firefox_conf | Boolean | false | If set to true in inventory file, this variable will install firefox as deb | - | noble_firebird |
thunderbird_conf | Boolean | false | If set to true in inventory file, this variable will install firefox as deb | - | noble_firebird |
adblock_conf | Boolean | false | If set to true in inventory file, this variable will add the adblock plus addon to firefox | - | noble_firebird |
snap_remove | Boolean | true | Indicates if snapd is to be removed or installed | This variable is from the noble_snap role and under general in this wiki page it is explained on why this variable is used in this role | noble_snap |
Jammy_firebird_mozilla_ppa_key_id | String | 0AB215679C571D1C8325275B9BDB3D89CE49EC21 | Get apt signing key for Mozilla PPA Repo, use trusted.gpg.d folder as keyring | - | noble_firebird |
Example Playbook
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
- hosts: servers
roles:
- { role: username.rolename, x: 42 }
License
BSD
Author Information
Maintainer: Niels Dill
Support-Contact: s4d-linux-support@id.ethz.ch