Compare commits
52 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
02c184219d | ||
|
|
e1095b763d | ||
|
|
001703ac31 | ||
|
|
65fb01903a | ||
|
|
9c2048fc71 | ||
| 284447dd02 | |||
| 68caf48d8f | |||
|
|
720c70b748 | ||
|
|
2615cbd868 | ||
|
|
3faa5f5d34 | ||
|
|
055e077e95 | ||
|
|
e763bdf64f | ||
|
|
aca949869c | ||
|
|
e2f6f37408 | ||
|
|
842c18ee93 | ||
|
|
d06b480545 | ||
|
|
f1851b4514 | ||
|
|
c32829811e | ||
|
|
b147fbf77e | ||
|
|
22e3b5078a | ||
|
|
b68b993162 | ||
|
|
14143019e1 | ||
|
|
d280e4eabd | ||
|
|
98e8df7c9a | ||
|
|
03e805f501 | ||
|
|
99ad79b8d2 | ||
|
|
a4d0edfa95 | ||
|
|
1049a49804 | ||
|
|
4b5e6baf0b | ||
|
|
dbb6b97f40 | ||
|
|
a196b57ed1 | ||
|
|
0a6e244cb9 | ||
|
|
1136ade99b | ||
|
|
6121c9bb42 | ||
|
|
01521c6add | ||
|
|
6bc397707f | ||
|
|
32b67128e5 | ||
|
|
68201f64d1 | ||
|
|
52290acbf6 | ||
| a38aca0d3d | |||
| 1343062722 | |||
| 5c6f244091 | |||
| 37cd5f6f54 | |||
|
|
e320d15254 | ||
|
|
1fac9819d0 | ||
|
|
5ee40f04c5 | ||
|
|
48c3e8433b | ||
|
|
c88b2dd3f2 | ||
| 7950237e65 | |||
| 7e1bf271a7 | |||
| 5ec756aad1 | |||
| 600fe4db82 |
53 changed files with 996 additions and 86 deletions
BIN
.DS_Store
vendored
Normal file
BIN
.DS_Store
vendored
Normal file
Binary file not shown.
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
|
|
@ -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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,5 +3,5 @@
|
||||||
Befehl zur Ausführung:
|
Befehl zur Ausführung:
|
||||||
|
|
||||||
```bash
|
```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
|
||||||
```
|
```
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
[defaults]
|
[defaults]
|
||||||
|
display_skipped_hosts = no
|
||||||
roles_path = ./roles
|
roles_path = ./roles
|
||||||
14
h.yml
Normal file
14
h.yml
Normal 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'
|
||||||
18
install.yml
18
install.yml
|
|
@ -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
36
local.yml
Normal 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
BIN
roles/.DS_Store
vendored
Normal file
Binary file not shown.
38
roles/bluefin/README.md
Normal file
38
roles/bluefin/README.md
Normal 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).
|
||||||
3
roles/bluefin/defaults/main.yml
Normal file
3
roles/bluefin/defaults/main.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
---
|
||||||
|
# defaults file for bluefin
|
||||||
3
roles/bluefin/handlers/main.yml
Normal file
3
roles/bluefin/handlers/main.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
---
|
||||||
|
# handlers file for bluefin
|
||||||
35
roles/bluefin/meta/main.yml
Normal file
35
roles/bluefin/meta/main.yml
Normal 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.
|
||||||
9
roles/bluefin/tasks/main.yml
Normal file
9
roles/bluefin/tasks/main.yml
Normal 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 }}"
|
||||||
3
roles/bluefin/tests/inventory
Normal file
3
roles/bluefin/tests/inventory
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
localhost
|
||||||
|
|
||||||
6
roles/bluefin/tests/test.yml
Normal file
6
roles/bluefin/tests/test.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
remote_user: root
|
||||||
|
roles:
|
||||||
|
- bluefin
|
||||||
44
roles/bluefin/vars/main.yml
Normal file
44
roles/bluefin/vars/main.yml
Normal 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
38
roles/dotfiles/README.md
Normal 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).
|
||||||
2
roles/dotfiles/defaults/main.yml
Normal file
2
roles/dotfiles/defaults/main.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
# defaults file for dotfiles
|
||||||
53
roles/dotfiles/files/kitty_theme
Normal file
53
roles/dotfiles/files/kitty_theme
Normal 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
|
||||||
|
|
||||||
2
roles/dotfiles/handlers/main.yml
Normal file
2
roles/dotfiles/handlers/main.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
# handlers file for dotfiles
|
||||||
52
roles/dotfiles/meta/main.yml
Normal file
52
roles/dotfiles/meta/main.yml
Normal 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.
|
||||||
14
roles/dotfiles/tasks/main.yml
Normal file
14
roles/dotfiles/tasks/main.yml
Normal 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"
|
||||||
15
roles/dotfiles/templates/kitty_conf
Normal file
15
roles/dotfiles/templates/kitty_conf
Normal 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 %}
|
||||||
2
roles/dotfiles/tests/inventory
Normal file
2
roles/dotfiles/tests/inventory
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
localhost
|
||||||
|
|
||||||
5
roles/dotfiles/tests/test.yml
Normal file
5
roles/dotfiles/tests/test.yml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
remote_user: root
|
||||||
|
roles:
|
||||||
|
- dotfiles
|
||||||
2
roles/dotfiles/vars/main.yml
Normal file
2
roles/dotfiles/vars/main.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
# vars file for dotfiles
|
||||||
|
|
@ -1,46 +1,54 @@
|
||||||
---
|
---
|
||||||
# tasks file for fedora
|
# tasks file for fedora
|
||||||
|
|
||||||
|
- name: "Adding rpmfusion repos"
|
||||||
|
become: true
|
||||||
|
block:
|
||||||
- name: "Add rpmfustion repo gpg keys"
|
- name: "Add rpmfustion repo gpg keys"
|
||||||
ansible.builtin.rpm_key:
|
ansible.builtin.rpm_key:
|
||||||
key: "{{ item }}"
|
key: "{{ fedora_rpmfusion_keys }}"
|
||||||
state: present
|
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
|
- name: "Install the rpmfusion repo packages"
|
||||||
dnf:
|
ansible.builtin.dnf:
|
||||||
name: "{{ item }}"
|
name: "{{ fedora_rpmfusion_repos }}"
|
||||||
state: present
|
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
|
|
||||||
|
|
||||||
|
rescue:
|
||||||
|
- name: "Log errors"
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
dest: "{{ log_path }}"
|
||||||
|
line: >-
|
||||||
|
[ERR] Error while adding rpmfusion repos
|
||||||
|
|
||||||
- name: Remove unnecassary packages
|
- name: "Remove and install dnf software"
|
||||||
dnf:
|
become: true
|
||||||
name: "{{ item }}"
|
block:
|
||||||
|
- name: "Remove unnecassary packages"
|
||||||
|
ansible.builtin.dnf:
|
||||||
|
name: "{{ fedora_rem_packages }}"
|
||||||
state: absent
|
state: absent
|
||||||
with_items: "{{ rem_packages }}"
|
|
||||||
|
|
||||||
|
|
||||||
- name: Install all current updates
|
- name: "Install all current updates"
|
||||||
dnf:
|
ansible.builtin.dnf:
|
||||||
name: "*"
|
name: "*"
|
||||||
state: latest
|
state: latest
|
||||||
|
|
||||||
|
- name: "Install packages"
|
||||||
|
ansible.builtin.dnf:
|
||||||
- name: Install packages
|
name: "{{ fedora_packages }}"
|
||||||
dnf:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: present
|
state: present
|
||||||
with_items: "{{ packages }}"
|
|
||||||
|
rescue:
|
||||||
|
- name: "Log errors"
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
dest: "{{ log_path }}"
|
||||||
|
line: >-
|
||||||
|
[ERR] Error while removing, updating or installing software.
|
||||||
|
|
||||||
|
|
||||||
- name: Install Flatpaks
|
- name: "Install Flatpaks"
|
||||||
flatpak:
|
community.general.flatpak:
|
||||||
name: "{{ item }}"
|
name: "{{ fedora_flatpaks }}"
|
||||||
state: present
|
state: present
|
||||||
with_items: "{{ flatpaks }}"
|
|
||||||
|
|
@ -1,14 +1,22 @@
|
||||||
---
|
---
|
||||||
# vars file for fedora
|
# 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
|
- gnome-tour
|
||||||
- mediawriter
|
- mediawriter
|
||||||
- totem
|
- totem
|
||||||
# - libreoffice*
|
# - libreoffice*
|
||||||
- rhythmbox
|
- rhythmbox
|
||||||
|
|
||||||
packages:
|
fedora_packages:
|
||||||
- vim
|
- vim
|
||||||
- helix
|
- helix
|
||||||
- flatpak
|
- flatpak
|
||||||
|
|
@ -19,8 +27,12 @@ packages:
|
||||||
- kitty
|
- kitty
|
||||||
- flatpak
|
- flatpak
|
||||||
- ptyxis
|
- ptyxis
|
||||||
|
- exa
|
||||||
|
- gnome-shell-extension-caffeine
|
||||||
|
- python-psutil
|
||||||
|
- tldr
|
||||||
|
|
||||||
flatpaks:
|
fedora_flatpaks:
|
||||||
- com.vscodium.codium
|
- com.vscodium.codium
|
||||||
- com.nextcloud.desktopclient.nextcloud
|
- com.nextcloud.desktopclient.nextcloud
|
||||||
- com.logseq.Logseq
|
- com.logseq.Logseq
|
||||||
|
|
@ -31,6 +43,7 @@ flatpaks:
|
||||||
- org.torproject.torbrowser-launcher
|
- org.torproject.torbrowser-launcher
|
||||||
- io.github.ungoogled_software.ungoogled_chromium
|
- io.github.ungoogled_software.ungoogled_chromium
|
||||||
- com.jeffser.Alpaca
|
- com.jeffser.Alpaca
|
||||||
|
- com.jeffser.Alpaca.Plugins.Ollama
|
||||||
- com.github.johnfactotum.Foliate
|
- com.github.johnfactotum.Foliate
|
||||||
- net.nokyan.Resources
|
- net.nokyan.Resources
|
||||||
- io.github.dvlv.boxbuddyrs
|
- io.github.dvlv.boxbuddyrs
|
||||||
|
|
@ -41,5 +54,8 @@ flatpaks:
|
||||||
- org.gnome.Evolution
|
- org.gnome.Evolution
|
||||||
- dev.qwery.AddWater
|
- dev.qwery.AddWater
|
||||||
- dev.deedles.Trayscale
|
- dev.deedles.Trayscale
|
||||||
|
- com.mattjakeman.ExtensionManager
|
||||||
|
- com.github.tchx84.Flatseal
|
||||||
|
- dev.heppen.webapps
|
||||||
|
- com.protonvpn.www
|
||||||
|
|
||||||
|
|
|
||||||
38
roles/gnome/README.md
Normal file
38
roles/gnome/README.md
Normal 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).
|
||||||
2
roles/gnome/defaults/main.yml
Normal file
2
roles/gnome/defaults/main.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
# defaults file for gnome
|
||||||
2
roles/gnome/handlers/main.yml
Normal file
2
roles/gnome/handlers/main.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
# handlers file for gnome
|
||||||
52
roles/gnome/meta/main.yml
Normal file
52
roles/gnome/meta/main.yml
Normal 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.
|
||||||
7
roles/gnome/tasks/main.yml
Normal file
7
roles/gnome/tasks/main.yml
Normal 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 }}"
|
||||||
2
roles/gnome/tests/inventory
Normal file
2
roles/gnome/tests/inventory
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
localhost
|
||||||
|
|
||||||
5
roles/gnome/tests/test.yml
Normal file
5
roles/gnome/tests/test.yml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
remote_user: root
|
||||||
|
roles:
|
||||||
|
- gnome
|
||||||
56
roles/gnome/vars/main.yml
Normal file
56
roles/gnome/vars/main.yml
Normal 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"
|
||||||
38
roles/homebrewinstall/README.md
Normal file
38
roles/homebrewinstall/README.md
Normal 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).
|
||||||
3
roles/homebrewinstall/defaults/main.yml
Normal file
3
roles/homebrewinstall/defaults/main.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
---
|
||||||
|
# defaults file for homebrewInstall
|
||||||
3
roles/homebrewinstall/handlers/main.yml
Normal file
3
roles/homebrewinstall/handlers/main.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
---
|
||||||
|
# handlers file for homebrewInstall
|
||||||
35
roles/homebrewinstall/meta/main.yml
Normal file
35
roles/homebrewinstall/meta/main.yml
Normal 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.
|
||||||
39
roles/homebrewinstall/tasks/main.yml
Normal file
39
roles/homebrewinstall/tasks/main.yml
Normal 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
|
||||||
3
roles/homebrewinstall/tests/inventory
Normal file
3
roles/homebrewinstall/tests/inventory
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
localhost
|
||||||
|
|
||||||
6
roles/homebrewinstall/tests/test.yml
Normal file
6
roles/homebrewinstall/tests/test.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
remote_user: root
|
||||||
|
roles:
|
||||||
|
- homebrewInstall
|
||||||
18
roles/homebrewinstall/vars/main.yml
Normal file
18
roles/homebrewinstall/vars/main.yml
Normal 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
|
||||||
38
roles/silverblue/README.md
Normal file
38
roles/silverblue/README.md
Normal 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).
|
||||||
3
roles/silverblue/defaults/main.yml
Normal file
3
roles/silverblue/defaults/main.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
---
|
||||||
|
# defaults file for fedoraSilverblue
|
||||||
3
roles/silverblue/handlers/main.yml
Normal file
3
roles/silverblue/handlers/main.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
---
|
||||||
|
# handlers file for fedoraSilverblue
|
||||||
35
roles/silverblue/meta/main.yml
Normal file
35
roles/silverblue/meta/main.yml
Normal 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.
|
||||||
59
roles/silverblue/tasks/main.yml
Normal file
59
roles/silverblue/tasks/main.yml
Normal 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"
|
||||||
12
roles/silverblue/tasks/rpmostree_override.yml
Normal file
12
roles/silverblue/tasks/rpmostree_override.yml
Normal 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
|
||||||
3
roles/silverblue/tests/inventory
Normal file
3
roles/silverblue/tests/inventory
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
localhost
|
||||||
|
|
||||||
6
roles/silverblue/tests/test.yml
Normal file
6
roles/silverblue/tests/test.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#SPDX-License-Identifier: MIT-0
|
||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
remote_user: root
|
||||||
|
roles:
|
||||||
|
- fedoraSilverblue
|
||||||
56
roles/silverblue/vars/main.yml
Normal file
56
roles/silverblue/vars/main.yml
Normal 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
|
||||||
Loading…
Reference in a new issue