Compare commits

..

52 commits

Author SHA1 Message Date
Raphael Werner
02c184219d Skip skipped tasks 2025-05-14 12:17:47 +02:00
Raphael Werner
e1095b763d Skip skipped tasks 2025-05-14 12:14:35 +02:00
Raphael Werner
001703ac31 Merge branch 'develop' of https://forgejo.wern3r.de/raphael/post_install into develop
Fix role problems
2025-05-10 17:45:40 +02:00
Raphael Werner
65fb01903a Fix role problem 2025-05-10 17:44:06 +02:00
Raphael Werner
9c2048fc71 Removed brew role 2025-05-10 17:41:18 +02:00
284447dd02 revert 68caf48d8f
revert roles/homebrewinstall/README.md aktualisiert

Renamed folder
2025-05-10 15:38:50 +00:00
68caf48d8f roles/homebrewinstall/README.md aktualisiert
Renamed folder
2025-05-10 15:36:01 +00:00
Raphael Werner
720c70b748 Added few brew packages 2025-05-08 21:48:09 +02:00
Raphael Werner
2615cbd868 First brew package 2025-05-03 20:17:05 +02:00
Raphael Werner
3faa5f5d34 Added check if homebrew exists and path as variable 2025-05-03 20:10:14 +02:00
Raphael Werner
055e077e95 Initial Homebrew install 2025-05-03 19:39:29 +02:00
Raphael Werner
e763bdf64f Initial Homebrew install 2025-05-03 18:37:46 +02:00
Raphael Werner
aca949869c Added view more packages to delete 2025-05-03 17:13:02 +02:00
Raphael Werner
e2f6f37408 Created sub-task for default rpm uninstall with loop 2025-05-03 17:00:20 +02:00
Raphael Werner
842c18ee93 Created sub-task for default rpm uninstall 2025-05-03 16:32:13 +02:00
Raphael Werner
d06b480545 Fix password request 2025-05-03 15:49:14 +02:00
Raphael Werner
f1851b4514 Added gnome-software remove 2025-05-03 15:41:45 +02:00
Raphael Werner
c32829811e Added gnome-software remove 2025-05-03 11:19:38 +02:00
Raphael Werner
b147fbf77e Added flatpak remove and update task 2025-05-03 10:36:21 +02:00
Raphael Werner
22e3b5078a Added initial Silverblue role 2025-05-02 19:37:45 +02:00
Raphael Werner
b68b993162 Added initial Silverblue role 2025-05-02 19:30:48 +02:00
Raphael Werner
14143019e1 Cleaned the logging and added test for Fedora Silverblue 2025-05-02 19:18:30 +02:00
Raphael Werner
d280e4eabd Logging 2025-04-29 16:09:15 +02:00
Raphael Werner
98e8df7c9a Logging 2025-04-29 16:02:24 +02:00
Raphael Werner
03e805f501 Logging 2025-04-29 15:53:18 +02:00
Raphael Werner
99ad79b8d2 Logfile creation 2025-04-28 22:39:37 +02:00
Raphael Werner
a4d0edfa95 Logfile creation 2025-04-28 22:37:20 +02:00
Raphael Werner
1049a49804 Logfile creation 2025-04-28 22:27:54 +02:00
Raphael Werner
4b5e6baf0b Logfile creation 2025-04-28 22:24:23 +02:00
Raphael Werner
dbb6b97f40 Testing debugging logging 2025-04-28 21:43:26 +02:00
Raphael Werner
a196b57ed1 Testing debugging logging 2025-04-28 16:15:24 +02:00
Raphael Werner
0a6e244cb9 Testing debugging logging 2025-04-28 16:06:09 +02:00
Raphael Werner
1136ade99b Testing debugging logging 2025-04-28 16:04:37 +02:00
Raphael Werner
6121c9bb42 Testing debugging logging 2025-04-28 16:03:40 +02:00
Raphael Werner
01521c6add Testing debugging logging 2025-04-28 16:01:12 +02:00
Raphael Werner
6bc397707f Removing loops because they are not needed and slower 2025-04-28 15:42:25 +02:00
Raphael Werner
32b67128e5 Ignoring errors in Softwareinstall 2025-04-28 15:15:41 +02:00
Raphael Werner
68201f64d1 Fixing error handling bug 2025-04-28 11:56:36 +02:00
Raphael Werner
52290acbf6 Cleaning Fedora Tasks and adding error handling 2025-04-28 11:52:41 +02:00
a38aca0d3d Added initial tasks to bluefin role 2025-04-20 16:47:44 +02:00
1343062722 Added initial tasks to bluefin role 2025-04-20 15:58:19 +02:00
5c6f244091 Added initial tasks to bluefin role 2025-04-20 15:52:26 +02:00
37cd5f6f54 Initial Bluefin role 2025-04-20 15:44:14 +02:00
Raphael Werner
e320d15254 Template Test 2025-04-09 16:07:06 +02:00
Raphael Werner
1fac9819d0 Template Test 2025-04-09 16:01:29 +02:00
Raphael Werner
5ee40f04c5 Template Test 2025-04-09 15:58:12 +02:00
Raphael Werner
48c3e8433b Added dotfiles role in main playbook 2025-04-09 15:52:47 +02:00
Raphael Werner
c88b2dd3f2 Kitty config 2025-04-09 15:49:43 +02:00
7950237e65 Added initial config role 2025-04-09 15:00:47 +02:00
7e1bf271a7 finished gnome settings 2025-04-09 10:20:16 +02:00
5ec756aad1 Finished Fedora role (Package installation) and initial Gnome Settings 2025-04-08 17:29:32 +02:00
600fe4db82 More Packages 2025-03-03 22:20:45 +01:00
53 changed files with 996 additions and 86 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

View file

@ -1,3 +1,6 @@
{
"ansible.python.interpreterPath": "/bin/python"
"ansible.python.interpreterPath": "/usr/bin/python3",
"yaml.schemas": {
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/tasks": "file:///Users/insider.owner/Projekte/post_install/roles/silverblue/tasks/rpmostree_override.yml"
}
}

View file

@ -3,5 +3,5 @@
Befehl zur Ausführung:
```bash
sudo dnf install ansible && sudo ansible-pull -U https://forgejo.wern3r.de/raphael/post_install.git install.yml
sudo dnf install ansible && sudo ansible-pull -U https://forgejo.wern3r.de/raphael/post_install.git -K
```

View file

@ -1,2 +1,3 @@
[defaults]
display_skipped_hosts = no
roles_path = ./roles

14
h.yml Normal file
View file

@ -0,0 +1,14 @@
---
- hosts: localhost
connection: local
force_handlers: true
roles:
- name: fedora
when: ansible_distribution == 'Fedora'
and
ansible_nodename != 'bluefin.fritz.box'
- name: bluefin
when: ansible_distribution == 'Fedora'
and
ansible_nodename == 'bluefin.fritz.box'

View file

@ -1,18 +0,0 @@
---
- hosts: localhost
connection: local
force_handlers: true
pre_tasks:
- set_fact:
eff_uid_number: "{{ lookup('pipe', 'id -u') }}"
- block:
- debug:
msg: "This program requires root privileges"
- meta: end_play
when: eff_uid_number|int != 0
roles:
- name: fedora
when: ansible_distribution == 'Fedora'

36
local.yml Normal file
View file

@ -0,0 +1,36 @@
---
- name: "Playbook for my various machines"
hosts: localhost
connection: local
force_handlers: true
vars:
log_path: "{{ ansible_user_dir }}/.local/state/post_install/{{ ansible_date_time.iso8601_basic_short }}.log"
pre_tasks:
- name: "Create Logfile"
block:
- name: "Create Folder"
ansible.builtin.file:
path: "{{ ansible_user_dir }}/.local/state/post_install"
state: directory
mode: '0700'
- name: "Create File"
ansible.builtin.file:
path: "{{ log_path }}"
state: touch
mode: '0700'
roles:
- name: fedora
when:
- ansible_distribution == 'Fedora'
- ansible_pkg_mgr == 'dnf5'
- name: silverblue
when:
- ansible_distribution == 'Fedora'
- ansible_pkg_mgr == 'atomic_container'
- name: gnome
when: ansible_env.DESKTOP_SESSION == 'gnome'
- name: dotfiles

BIN
roles/.DS_Store vendored Normal file

Binary file not shown.

38
roles/bluefin/README.md Normal file
View file

@ -0,0 +1,38 @@
Role Name
=========
A brief description of the role goes here.
Requirements
------------
Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
Role Variables
--------------
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.
Dependencies
------------
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
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
------------------
An optional section for the role authors to include contact information, or a website (HTML is not allowed).

View file

@ -0,0 +1,3 @@
#SPDX-License-Identifier: MIT-0
---
# defaults file for bluefin

View file

@ -0,0 +1,3 @@
#SPDX-License-Identifier: MIT-0
---
# handlers file for bluefin

View file

@ -0,0 +1,35 @@
#SPDX-License-Identifier: MIT-0
galaxy_info:
author: your name
description: your role description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
min_ansible_version: 2.1
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

View file

@ -0,0 +1,9 @@
#SPDX-License-Identifier: MIT-0
---
# tasks file for bluefin
- name: Install Flatpaks
flatpak:
name: "{{ item }}"
state: present
with_items: "{{ flatpaks_h }}"

View file

@ -0,0 +1,3 @@
#SPDX-License-Identifier: MIT-0
localhost

View file

@ -0,0 +1,6 @@
#SPDX-License-Identifier: MIT-0
---
- hosts: localhost
remote_user: root
roles:
- bluefin

View file

@ -0,0 +1,44 @@
#SPDX-License-Identifier: MIT-0
---
# vars file for bluefin
flatpaks:
- com.vscodium.codium
- com.nextcloud.desktopclient.nextcloud
- com.logseq.Logseq
- org.keepassxc.KeePassXC
- re.sonny.Eloquent
- org.gnome.gitlab.somas.Apostrophe
- io.github.flattool.Ignition
- org.torproject.torbrowser-launcher
- io.github.ungoogled_software.ungoogled_chromium
- com.jeffser.Alpaca
- com.jeffser.Alpaca.Plugins.Ollama
- com.github.johnfactotum.Foliate
- net.nokyan.Resources
- io.github.dvlv.boxbuddyrs
- org.gnome.World.PikaBackup
- net.mullvad.MullvadBrowser
- io.github.celluloid_player.Celluloid
- io.bassi.Amberol
- org.gnome.Evolution
- dev.qwery.AddWater
- dev.deedles.Trayscale
- com.mattjakeman.ExtensionManager
- com.github.tchx84.Flatseal
- dev.heppen.webapps
- com.protonvpn.www
flatpaks_h:
- com.nextcloud.desktopclient.nextcloud
- org.keepassxc.KeePassXC
- org.torproject.torbrowser-launcher
- io.github.ungoogled_software.ungoogled_chromium
- com.jeffser.Alpaca
- com.jeffser.Alpaca.Plugins.Ollama
- com.mattjakeman.ExtensionManager
- com.github.tchx84.Flatseal
- dev.heppen.webapps
- com.usebottles.bottles
- net.cozic.joplin_desktop
- org.signal.Signal

38
roles/dotfiles/README.md Normal file
View file

@ -0,0 +1,38 @@
Role Name
=========
A brief description of the role goes here.
Requirements
------------
Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
Role Variables
--------------
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.
Dependencies
------------
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
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
------------------
An optional section for the role authors to include contact information, or a website (HTML is not allowed).

View file

@ -0,0 +1,2 @@
---
# defaults file for dotfiles

View file

@ -0,0 +1,53 @@
## name: Rosé Pine Moon
## author: mvllow
## license: MIT
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-moon.conf
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
foreground #e0def4
background #232136
selection_foreground #e0def4
selection_background #44415a
cursor #56526e
cursor_text_color #e0def4
url_color #c4a7e7
active_tab_foreground #e0def4
active_tab_background #393552
inactive_tab_foreground #6e6a86
inactive_tab_background #232136
# black
color0 #393552
color8 #6e6a86
# red
color1 #eb6f92
color9 #eb6f92
# green
color2 #3e8fb0
color10 #3e8fb0
# yellow
color3 #f6c177
color11 #f6c177
# blue
color4 #9ccfd8
color12 #9ccfd8
# magenta
color5 #c4a7e7
color13 #c4a7e7
# cyan
color6 #ea9a97
color14 #ea9a97
# white
color7 #e0def4
color15 #e0def4

View file

@ -0,0 +1,2 @@
---
# handlers file for dotfiles

View file

@ -0,0 +1,52 @@
galaxy_info:
author: your name
description: your role description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
min_ansible_version: 2.1
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
#
# Provide a list of supported platforms, and for each platform a list of versions.
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
# To view available platforms and versions (or releases), visit:
# https://galaxy.ansible.com/api/v1/platforms/
#
# platforms:
# - name: Fedora
# versions:
# - all
# - 25
# - name: SomePlatform
# versions:
# - all
# - 1.0
# - 7
# - 99.99
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

View file

@ -0,0 +1,14 @@
---
# tasks file for dotfiles
# kitty
- block:
- name: Copy kitty conf template
ansible.builtin.template:
src: kitty_conf
dest: "{{ ansible_env.HOME }}/.config/kitty/kitty.conf"
- name: Copy kitty theme
ansible.builtin.copy:
src: kitty_theme
dest: "{{ ansible_env.HOME }}/.config/kitty/current-theme.conf"

View file

@ -0,0 +1,15 @@
# Theme
# Rosé Pine Moon
include current-theme.conf
#: Fonts {{{
font_size 16.0
#: }}}
window_padding_width 10
{% if ansible_distribution == 'MacOS' %}
macos_titlebar_color #232135
{% else %}
# macos_titlebar_color #232135
{% endif %}

View file

@ -0,0 +1,2 @@
localhost

View file

@ -0,0 +1,5 @@
---
- hosts: localhost
remote_user: root
roles:
- dotfiles

View file

@ -0,0 +1,2 @@
---
# vars file for dotfiles

View file

@ -1,46 +1,54 @@
---
# tasks file for fedora
- name: "Add rpmfustion repo gpg keys"
ansible.builtin.rpm_key:
key: "{{ item }}"
- name: "Adding rpmfusion repos"
become: true
block:
- name: "Add rpmfustion repo gpg keys"
ansible.builtin.rpm_key:
key: "{{ fedora_rpmfusion_keys }}"
state: present
- name: "Install the rpmfusion repo packages"
ansible.builtin.dnf:
name: "{{ fedora_rpmfusion_repos }}"
state: present
rescue:
- name: "Log errors"
ansible.builtin.lineinfile:
dest: "{{ log_path }}"
line: >-
[ERR] Error while adding rpmfusion repos
- name: "Remove and install dnf software"
become: true
block:
- name: "Remove unnecassary packages"
ansible.builtin.dnf:
name: "{{ fedora_rem_packages }}"
state: absent
- name: "Install all current updates"
ansible.builtin.dnf:
name: "*"
state: latest
- name: "Install packages"
ansible.builtin.dnf:
name: "{{ fedora_packages }}"
state: present
rescue:
- name: "Log errors"
ansible.builtin.lineinfile:
dest: "{{ log_path }}"
line: >-
[ERR] Error while removing, updating or installing software.
- name: "Install Flatpaks"
community.general.flatpak:
name: "{{ fedora_flatpaks }}"
state: present
with_items:
- "https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-free-fedora-2020"
- "https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-nonfree-fedora-2020"
- name: install the rpmfusion repo packages
dnf:
name: "{{ item }}"
state: present
with_items:
- http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-{{ ansible_distribution_major_version }}.noarch.rpm
- http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-{{ ansible_distribution_major_version }}.noarch.rpm
- name: Remove unnecassary packages
dnf:
name: "{{ item }}"
state: absent
with_items: "{{ rem_packages }}"
- name: Install all current updates
dnf:
name: "*"
state: latest
- name: Install packages
dnf:
name: "{{ item }}"
state: present
with_items: "{{ packages }}"
- name: Install Flatpaks
flatpak:
name: "{{ item }}"
state: present
with_items: "{{ flatpaks }}"

View file

@ -1,14 +1,22 @@
---
# vars file for fedora
rem_packages:
fedora_rpmfusion_keys:
- "https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-free-fedora-2020"
- "https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-nonfree-fedora-2020"
fedora_rpmfusion_repos:
- http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-{{ ansible_distribution_major_version }}.noarch.rpm
- http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-{{ ansible_distribution_major_version }}.noarch.rpm
fedora_rem_packages:
- gnome-tour
- mediawriter
- totem
# - libreoffice*
- rhythmbox
packages:
fedora_packages:
- vim
- helix
- flatpak
@ -19,27 +27,35 @@ packages:
- kitty
- flatpak
- ptyxis
- exa
- gnome-shell-extension-caffeine
- python-psutil
- tldr
flatpaks:
- com.vscodium.codium
- com.nextcloud.desktopclient.nextcloud
- com.logseq.Logseq
- org.keepassxc.KeePassXC
- re.sonny.Eloquent
- org.gnome.gitlab.somas.Apostrophe
- io.github.flattool.Ignition
- org.torproject.torbrowser-launcher
- io.github.ungoogled_software.ungoogled_chromium
- com.jeffser.Alpaca
- com.github.johnfactotum.Foliate
- net.nokyan.Resources
- io.github.dvlv.boxbuddyrs
- org.gnome.World.PikaBackup
- net.mullvad.MullvadBrowser
- io.github.celluloid_player.Celluloid
- io.bassi.Amberol
- org.gnome.Evolution
- dev.qwery.AddWater
- dev.deedles.Trayscale
fedora_flatpaks:
- com.vscodium.codium
- com.nextcloud.desktopclient.nextcloud
- com.logseq.Logseq
- org.keepassxc.KeePassXC
- re.sonny.Eloquent
- org.gnome.gitlab.somas.Apostrophe
- io.github.flattool.Ignition
- org.torproject.torbrowser-launcher
- io.github.ungoogled_software.ungoogled_chromium
- com.jeffser.Alpaca
- com.jeffser.Alpaca.Plugins.Ollama
- com.github.johnfactotum.Foliate
- net.nokyan.Resources
- io.github.dvlv.boxbuddyrs
- org.gnome.World.PikaBackup
- net.mullvad.MullvadBrowser
- io.github.celluloid_player.Celluloid
- io.bassi.Amberol
- org.gnome.Evolution
- dev.qwery.AddWater
- dev.deedles.Trayscale
- com.mattjakeman.ExtensionManager
- com.github.tchx84.Flatseal
- dev.heppen.webapps
- com.protonvpn.www

38
roles/gnome/README.md Normal file
View file

@ -0,0 +1,38 @@
Role Name
=========
A brief description of the role goes here.
Requirements
------------
Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
Role Variables
--------------
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.
Dependencies
------------
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
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
------------------
An optional section for the role authors to include contact information, or a website (HTML is not allowed).

View file

@ -0,0 +1,2 @@
---
# defaults file for gnome

View file

@ -0,0 +1,2 @@
---
# handlers file for gnome

52
roles/gnome/meta/main.yml Normal file
View file

@ -0,0 +1,52 @@
galaxy_info:
author: your name
description: your role description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
min_ansible_version: 2.1
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
#
# Provide a list of supported platforms, and for each platform a list of versions.
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
# To view available platforms and versions (or releases), visit:
# https://galaxy.ansible.com/api/v1/platforms/
#
# platforms:
# - name: Fedora
# versions:
# - all
# - 25
# - name: SomePlatform
# versions:
# - all
# - 1.0
# - 7
# - 99.99
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

View file

@ -0,0 +1,7 @@
---
# tasks file for gnome
- name: Set Gnome Settings
dconf:
key: "{{ item.keys() | first }}"
value: "{{ item.values() | first }}"
with_items: "{{ gnome_settings }}"

View file

@ -0,0 +1,2 @@
localhost

View file

@ -0,0 +1,5 @@
---
- hosts: localhost
remote_user: root
roles:
- gnome

56
roles/gnome/vars/main.yml Normal file
View file

@ -0,0 +1,56 @@
---
# vars file for gnome
gnome_settings:
# Privacy
- "/org/gnome/desktop/privacy/report-technical-problems": "false"
- "/org/gnome/desktop/privacy/send-software-usage-stats": "false"
# Feautures
- "/org/gnome/desktop/interface/enable-hot-corners": "false"
- "/org/gnome/desktop/sound/allow-volume-above-100-percent": "true"
- "/org/gnome/settings-daemon/plugins/color/night-light-enabled": "true"
- "/org/gnome/settings-daemon/plugins/color/night-light-schedule-automatic": "false"
- "/org/gnome/settings-daemon/plugins/color/night-light-schedule-from": "18.0"
- "/org/gnome/settings-daemon/plugins/color/night-light-schedule-to": "6.0"
- "/org/gnome/settings-daemon/plugins/color/night-light-temperature": "2700"
- "/org/gnome/desktop/peripherals/touchpad/tap-to-click": "true"
- "/org/gnome/clocks/world-clocks": "[{'location': <(uint32 2, <('Accra', 'DGAA', true, [(0.097738438111682452, -0.0029088879044213891)], [(0.096865773485685286, -0.0037815525304185538)])>)>}]"
# Keybindings
- "/org/gnome/desktop/wm/keybindings/close": "['<Super>q']"
- "/org/gnome/settings-daemon/plugins/media-keys/email": "['<Super>e']"
- "/org/gnome/settings-daemon/plugins/media-keys/home": "['<Super>f']"
- "/org/gnome/settings-daemon/plugins/media-keys/control-center": "['<Super>i']"
- "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/name": "'Terminal'"
- "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/command": "'kitty'"
- "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/binding": "'<Super>t'"
- "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/name": "'Tor-Browser'"
- "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/command": "'flatpak run org/torproject/torbrowser-launcher'"
- "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/binding": "'<Super>b'"
- "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/name": "'KeePassXC'"
- "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/command": "'flatpak run org/keepassxc/KeePassXC'"
- "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/binding": "'<Super>k'"
- "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings": "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/']"
# Weitere Settings
#- "/org/gnome/desktop/wm/preferences/button-layout": "'appmenu:close'"
#- "/org/gnome/desktop/interface/clock-show-weekday": "true"
#- "/org/gnome/desktop/interface/show-battery-percentage": "true"
#- "/org/gnome/desktop/privacy/hide-identity": "true"
#- "/org/gnome/desktop/privacy/recent-files-max-age": "30"
#- "/org/gnome/desktop/privacy/remove-old-trash-files": "true"
#- "/org/gnome/desktop/privacy/remove-old-temp-files": "true"
#- "/org/gnome/desktop/privacy/old-files-age": "30"
#- "/org/gnome/desktop/screensaver/idle-activation-enabled": "true"
#- "/org/gnome/desktop/screensaver/lock-enabled": "true"
#- "/org/gnome/desktop/screensaver/lock-delay": "0"
#- "/org/gnome/desktop/session/idle-delay": "60"
#- "/org/gnome/settings-daemon/plugins/power/power-saver-profile-on-low-battery": "true"
#- "/org/gnome/settings-daemon/plugins/power/sleep-inactive-ac-type": "'nothing'"
#- "/org/gnome/desktop/screensaver/status-message-enabled": "false"
#- "/org/gnome/desktop/screensaver/user-switch-enabled": "false"
#- "/org/gnome/desktop/notifications/show-in-lock-screen": "false"
#- "/org/gnome/mutter/attach-modal-dialogs": "true"
#- "/org/gnome/desktop/sound/event-sounds": "false"

View file

@ -0,0 +1,38 @@
Role Name
=========
A brief description of the role goes here.
Requirements
------------
Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
Role Variables
--------------
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.
Dependencies
------------
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
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
------------------
An optional section for the role authors to include contact information, or a website (HTML is not allowed).

View file

@ -0,0 +1,3 @@
#SPDX-License-Identifier: MIT-0
---
# defaults file for homebrewInstall

View file

@ -0,0 +1,3 @@
#SPDX-License-Identifier: MIT-0
---
# handlers file for homebrewInstall

View file

@ -0,0 +1,35 @@
#SPDX-License-Identifier: MIT-0
galaxy_info:
author: your name
description: your role description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
min_ansible_version: 2.1
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

View file

@ -0,0 +1,39 @@
---
# tasks file for homebrewInstall
- name: "Check if homebrew is installed"
ansible.builtin.stat:
path: "{{ homebrewinstall_path }}"
register: path_check
- name: "Install Homebrew"
when: not path_check.stat.exists
ignore_errors: true
block:
- name: "Create Folder linuxbrew"
become: true
ansible.builtin.file:
path: "{{ homebrewinstall_home }}/linuxbrew"
state: directory
mode: '0755'
- name: "Create Folder .linuxbrew"
become: true
ansible.builtin.file:
path: "{{ homebrewinstall_home }}/linuxbrew/.linuxbrew"
state: directory
mode: '0755'
owner: "{{ ansible_env.USER }}"
group: "{{ ansible_env.USER }}"
- name: "Install Homebrew"
ansible.builtin.shell:
cmd: 'set -o pipefail && yes | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"'
executable: /bin/bash
register: homebrew_install
changed_when: homebrew_install.rc != 0
- name: "Install Homebrew packages"
community.general.homebrew:
name: "{{ homebrewinstall_packages }}"
state: present

View file

@ -0,0 +1,3 @@
#SPDX-License-Identifier: MIT-0
localhost

View file

@ -0,0 +1,6 @@
#SPDX-License-Identifier: MIT-0
---
- hosts: localhost
remote_user: root
roles:
- homebrewInstall

View file

@ -0,0 +1,18 @@
---
# vars file for homebrewInstall
homebrewinstall_packages:
- vim
- helix
- bash-language-server
- yaml-language-server
- task
- tasksh
- eza
- tldr
- newsboat
- pass
- shellcheck
- starship
- tmux
- yazi
- yt-dlp

View file

@ -0,0 +1,38 @@
Role Name
=========
A brief description of the role goes here.
Requirements
------------
Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
Role Variables
--------------
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.
Dependencies
------------
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
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
------------------
An optional section for the role authors to include contact information, or a website (HTML is not allowed).

View file

@ -0,0 +1,3 @@
#SPDX-License-Identifier: MIT-0
---
# defaults file for fedoraSilverblue

View file

@ -0,0 +1,3 @@
#SPDX-License-Identifier: MIT-0
---
# handlers file for fedoraSilverblue

View file

@ -0,0 +1,35 @@
#SPDX-License-Identifier: MIT-0
galaxy_info:
author: your name
description: your role description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
min_ansible_version: 2.1
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

View file

@ -0,0 +1,59 @@
---
# tasks file for fedoraSilverblue
- name: "Remove and install rpm-ostree software"
block:
- name: "Uninstall Default rpm software"
ansible.builtin.include_tasks: rpmostree_override.yml
vars:
pkg_path: "{{ item.pkg_path }}"
package: "{{ item.name }}"
with_items: "{{ silverblue_rem_packages }}"
- name: "Upgrade the rpm-ostree image"
ansible.posix.rpm_ostree_upgrade:
- name: "Install packages"
community.general.rpm_ostree_pkg:
name: "{{ silverblue_packages }}"
state: present
apply_live: true
rescue:
- name: "Log errors"
ansible.builtin.lineinfile:
dest: "{{ log_path }}"
line: >-
[ERR] Error while removing, updating or installing software.
- name: "Remove and install Flathub software"
block:
- name: "Remove preinstalled Flatpaks"
community.general.flatpak:
name: "{{ silverblue_rem_flatpaks }}"
state: absent
- name: "Add the flathub flatpak repository remote"
community.general.flatpak_remote:
name: flathub
state: present
flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo
- name: "Install Flatpaks"
community.general.flatpak:
name: "{{ silverblue_flatpaks }}"
state: present
rescue:
- name: "Log errors"
ansible.builtin.lineinfile:
dest: "{{ log_path }}"
line: >-
[ERR] Error while removing, updating or installing flatpaks.
- name: "Install Homebrew"
ansible.builtin.include_role:
name: homebrewinstall
vars:
homebrewinstall_home: "/var/home"
homebrewinstall_path: "/home/linuxbrew/.linuxbrew/bin/brew"

View file

@ -0,0 +1,12 @@
---
- name: "Check if software is installed"
ansible.builtin.stat:
path: "{{ pkg_path }}"
register: path_check
- name: "Uninstall software if it is installed"
become: true
ansible.builtin.command: "rpm-ostree override remove {{ package }}"
when: path_check.stat.exists
register: software_uninstall
changed_when: software_uninstall.rc != 0

View file

@ -0,0 +1,3 @@
#SPDX-License-Identifier: MIT-0
localhost

View file

@ -0,0 +1,6 @@
#SPDX-License-Identifier: MIT-0
---
- hosts: localhost
remote_user: root
roles:
- fedoraSilverblue

View file

@ -0,0 +1,56 @@
---
# vars file for fedoraSilverblue
silverblue_rem_packages:
- name: "gnome-software-rpm-ostree"
pkg_path: "/usr/lib64/gnome-software/plugins-22/libgs_plugin_rpm-ostree.so"
- name: "gnome-software"
pkg_path: "/usr/sbin/gnome-software"
- name: "gnome-tour"
pkg_path: "/usr/sbin/gnome-tour"
- name: "yelp"
pkg_path: "/usr/sbin/yelp"
- name: "gnome-system-monitor"
pkg_path: "/usr/sbin/gnome-system-monitor"
silverblue_packages:
- python-psutil
silverblue_rem_flatpaks:
- org.fedoraproject.MediaWriter
- org.gnome.Evince
- org.gnome.Extensions
- org.gnome.Weather
- org.gnome.baobab
silverblue_flatpaks:
- com.vscodium.codium
- com.nextcloud.desktopclient.nextcloud
- com.logseq.Logseq
- org.keepassxc.KeePassXC
- re.sonny.Eloquent
- org.gnome.gitlab.somas.Apostrophe
- io.github.flattool.Ignition
- org.torproject.torbrowser-launcher
- io.github.ungoogled_software.ungoogled_chromium
- com.jeffser.Alpaca
- com.jeffser.Alpaca.Plugins.Ollama
- com.github.johnfactotum.Foliate
- net.nokyan.Resources
- io.github.dvlv.boxbuddyrs
- org.gnome.World.PikaBackup
- net.mullvad.MullvadBrowser
- io.github.celluloid_player.Celluloid
- io.bassi.Amberol
- org.gnome.Evolution
- dev.qwery.AddWater
- dev.deedles.Trayscale
- com.mattjakeman.ExtensionManager
- com.github.tchx84.Flatseal
- dev.heppen.webapps
- com.protonvpn.www
- org.gnome.Papers
- com.mattjakeman.ExtensionManager
silverblue_brew:
- dua-cli