Keyboard Ansible Role¶
Manage keyboard layout on Debian-based and Red Hat-based systems by configuring keyboard settings and applying changes.
What this role does:
- Installs required packages (console-setup, keyboard-configuration on Debian/Ubuntu; kbd, systemd on Fedora)
- Renders
/etc/default/keyboardwith desired XKB settings - Applies the configuration (restart keyboard-setup, trigger udev, apply console keymap)
This role does not manage system locales.
Role Variables¶
| Variable | Default | Type | Description |
|---|---|---|---|
keyboard_layout |
ch |
string | Keyboard layout (e.g., ch, us, gb, de) |
keyboard_variant |
de |
string | Keyboard variant (e.g., de, fr, nodeadkeys, leave empty for none) |
keyboard_model |
pc105 |
string | Keyboard model (e.g., pc105) |
keyboard_options |
[] |
list | Extra keyboard options (e.g., ["ctrl:nocaps", "lv3:ralt_switch"]) |
keyboard_apply |
true |
bool | Whether to apply changes immediately (reload service, trigger udev, etc.) |
Example Playbook¶
Custom layout:
- hosts: servers
become: true
roles:
- role: keyboard
vars:
keyboard_layout: "gb"
keyboard_variant: "intl"
keyboard_model: "pc105"
keyboard_options:
- "ctrl:nocaps"
Note: X keyboard configuration affects both console and X11 on Debian/Ubuntu via /etc/default/keyboard. On Fedora systems, keyboard configuration is handled through systemd and localectl.