Installs Mozilla Firefox Developer Edition for a specified user on Ubuntu systems.
This role performs the following actions:
- Installs necessary APT dependencies.
- Downloads the latest Firefox Developer Edition tarball directly from Mozilla.
- Installs Firefox into the user's
~/.local/share/firefoxdirectory. - Creates a symlink in
~/.local/binand adds this to the user's~/.bashrcPATH. - Creates
.desktopentries for the application menu and the user's Desktop. - Runs Firefox headlessly once to force profile creation (
*.dev-edition-default). - Injects a predefined
logins.jsonfile containing hardcoded credentials (currently for LinkedIn) into the newly created profile. - Optionally configures proxy settings (HTTP, HTTPS, SOCKS) via
user.js. - Optionally configures Firefox to allow unsigned extensions via
user.js.
Note: This role installs Firefox for a single user, not system-wide, and specifically targets the Developer Edition. The injection of credentials is a specific feature of this role and should be used with caution.
- Target OS: Ubuntu (uses
apt). Tested implicitly on distributions supporting the listed dependencies. - User Account: An existing user account must be specified via the
install_uservariable. - Root Access: Requires
become: yesas the role installs system packages and creates directories/files owned by the target user. - Dependencies: Installs
tar,wget,xvfb, and various X11/graphics libraries needed for Firefox and its potential headless operation. - Ansible Version: 2.9 or higher recommended.
Available variables are listed below, along with default values (see defaults/main.yml):
| Variable | Required | Default | Type | Description |
|---|---|---|---|---|
install_user |
Yes | "judy" |
String | The username for whom Firefox Developer Edition will be installed and configured. |
firefox_proxy_address |
No | "192.168.50.254" |
String | The IP address or hostname of the proxy server. Used only if firefox_proxy_port is also set. |
firefox_proxy_port |
No | 3128 |
Integer | The port number of the proxy server. Used only if firefox_proxy_address is also set. |
allow_unsigned_extensions |
No | true |
Boolean | If true, configures Firefox (user.js) to allow installation of unsigned extensions. |
None. (Installs its own dependencies via apt).
---
- hosts: workstations
become: yes
vars:
# REQUIRED: Specify the target user
install_user: alice
# --- Optional Overrides ---
# firefox_proxy_address: "10.0.0.1"
# firefox_proxy_port: 8080
# allow_unsigned_extensions: false
roles:
# Assuming the role is named 'ansible-role-firefox-user'
# and located in the standard roles path
- ansible-role-firefox-user