diff --git a/inventory/group_vars/fedora_workstations/main.yml b/inventory/group_vars/fedora_workstations/main.yml new file mode 100644 index 0000000..af0332b --- /dev/null +++ b/inventory/group_vars/fedora_workstations/main.yml @@ -0,0 +1,13 @@ +--- +# Variables for fedora_workstations group + +# Ansible connection settings +ansible_python_interpreter: /usr/bin/python3 + +# Add group-specific variables here +# Example: +# timezone: Europe/Berlin +# locale: en_US.UTF-8 +timezone: Europe/Berlin +locale: de_DE.UTF-8 + diff --git a/inventory/hosts b/inventory/hosts new file mode 100644 index 0000000..1b755d6 --- /dev/null +++ b/inventory/hosts @@ -0,0 +1,25 @@ +[fedora_workstation] +localhost ansible_connection=local + +# Add additional workstations here: +# workstation1.example.com ansible_host=192.168.1.10 ansible_user=username +# workstation2.example.com ansible_host=192.168.1.11 ansible_user=username + +[fedora_gnome_workstation] +localhost ansible_connection=local + +[fedora_development_workstation] +localhost ansible_connection=local + +[fedora_node_development_workstation] +localhost ansible_connection=local + +[fedora_dotnet_development_workstation] +localhost ansible_connection=local + +[fedora_corrector_workstation] +localhost ansible_connection=local + +[fedora_doctor_workstation] +localhost ansible_connection=local + diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..87c6986 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,16 @@ +--- +- name: Configure Fedora Workstation + hosts: fedora_workstation + gather_facts: true + + roles: + - fedora_workstation + +#- name: Configure Fedora Development Workstation +# hosts: fedora_development_workstation +# gather_facts: true + +# roles: +# - fedora_development_workstation + + diff --git a/roles/fedora_gnome_workstation/README.md b/roles/fedora_gnome_workstation/README.md new file mode 100644 index 0000000..a3dc9ea --- /dev/null +++ b/roles/fedora_gnome_workstation/README.md @@ -0,0 +1,38 @@ +# Fedora GNOME Workstation Role + +Ansible role for configuring Fedora GNOME workstation with custom extensions and settings. + +## Requirements + +- Fedora with GNOME desktop environment +- Ansible 2.9 or higher +- `community.general` collection (for flatpak modules) + +## Role Variables + +No variables currently defined. + +## Dependencies + +None. + +## Example Playbook + +```yaml +- hosts: workstations + roles: + - fedora_gnome_workstation +``` + +## License + +MIT + +## Installed Packages + +### DNF Packages +- gnome-shell-extension-pop-shell - Tiling window management for GNOME +- flatpak - Flatpak application framework + +### Flatpak Applications (from Flathub) +- com.mattjakeman.ExtensionManager - Manage GNOME Shell extensions diff --git a/roles/fedora_gnome_workstation/defaults/main.yml b/roles/fedora_gnome_workstation/defaults/main.yml new file mode 100644 index 0000000..62923a6 --- /dev/null +++ b/roles/fedora_gnome_workstation/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for fedora_gnome_workstation diff --git a/roles/fedora_gnome_workstation/handlers/main.yml b/roles/fedora_gnome_workstation/handlers/main.yml new file mode 100644 index 0000000..1c7b76f --- /dev/null +++ b/roles/fedora_gnome_workstation/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for fedora_gnome_workstation diff --git a/roles/fedora_gnome_workstation/meta/main.yml b/roles/fedora_gnome_workstation/meta/main.yml new file mode 100644 index 0000000..a7a9879 --- /dev/null +++ b/roles/fedora_gnome_workstation/meta/main.yml @@ -0,0 +1,19 @@ +--- +galaxy_info: + author: your_name + description: Fedora GNOME Workstation configuration + license: MIT + min_ansible_version: '2.9' + + platforms: + - name: Fedora + versions: + - all + + galaxy_tags: + - fedora + - gnome + - workstation + - desktop + +dependencies: [] diff --git a/roles/fedora_gnome_workstation/tasks/main.yml b/roles/fedora_gnome_workstation/tasks/main.yml new file mode 100644 index 0000000..ef501ea --- /dev/null +++ b/roles/fedora_gnome_workstation/tasks/main.yml @@ -0,0 +1,31 @@ +--- +# tasks file for fedora_gnome_workstation + +- name: Ensure GNOME shell extensions are installed + ansible.builtin.dnf: + name: + - gnome-shell-extension-pop-shell + state: present + become: true + +- name: Ensure flatpak is installed + ansible.builtin.dnf: + name: + - flatpak + state: present + become: true + +- name: Add flathub repository + community.general.flatpak_remote: + name: flathub + state: present + flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo + become: true + +- name: Install flatpak applications from flathub + community.general.flatpak: + name: + - com.mattjakeman.ExtensionManager + state: present + remote: flathub + become: true diff --git a/roles/fedora_gnome_workstation/vars/main.yml b/roles/fedora_gnome_workstation/vars/main.yml new file mode 100644 index 0000000..c37164d --- /dev/null +++ b/roles/fedora_gnome_workstation/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for fedora_gnome_workstation diff --git a/roles/fedora_workstation/README.md b/roles/fedora_workstation/README.md new file mode 100644 index 0000000..643fdd8 --- /dev/null +++ b/roles/fedora_workstation/README.md @@ -0,0 +1,37 @@ +# Fedora Workstation Role + +Ansible role for configuring and managing Fedora Workstation installations. + +## Requirements + +- Fedora Workstation (tested on latest stable release) +- Ansible 2.9 or higher + +## Role Variables + +Available variables are listed below, along with default values (see `defaults/main.yml`): + +```yaml +# Add variables here as they are implemented +``` + +## Dependencies + +None. + +## Example Playbook + +```yaml +- hosts: workstations + become: true + roles: + - fedora_workstation +``` + +## License + +See repository LICENSE file. + +## Author Information + +This role was created for managing Fedora Workstation laptops. diff --git a/roles/fedora_workstation/defaults/main.yml b/roles/fedora_workstation/defaults/main.yml new file mode 100644 index 0000000..b63c93d --- /dev/null +++ b/roles/fedora_workstation/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for fedora_workstation diff --git a/roles/fedora_workstation/handlers/main.yml b/roles/fedora_workstation/handlers/main.yml new file mode 100644 index 0000000..6be9b5c --- /dev/null +++ b/roles/fedora_workstation/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for fedora_workstation diff --git a/roles/fedora_workstation/meta/main.yml b/roles/fedora_workstation/meta/main.yml new file mode 100644 index 0000000..f24ca30 --- /dev/null +++ b/roles/fedora_workstation/meta/main.yml @@ -0,0 +1,22 @@ +--- +galaxy_info: + author: your_name + description: Fedora Workstation configuration and management + company: your_company (optional) + + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: "2.9" + + platforms: + - name: Fedora + versions: + - all + + galaxy_tags: + - fedora + - workstation + - desktop + - laptop + +dependencies: [] diff --git a/roles/fedora_workstation/tasks/main.yml b/roles/fedora_workstation/tasks/main.yml new file mode 100644 index 0000000..18904ec --- /dev/null +++ b/roles/fedora_workstation/tasks/main.yml @@ -0,0 +1,11 @@ +--- +# tasks file for fedora_workstation + +- name: Ensure essential packages are installed + ansible.builtin.dnf: + name: + - zsh + - curl + - wget + state: present + become: true diff --git a/roles/fedora_workstation/vars/main.yml b/roles/fedora_workstation/vars/main.yml new file mode 100644 index 0000000..50dfcf0 --- /dev/null +++ b/roles/fedora_workstation/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for fedora_workstation