Skip to content

Instantly share code, notes, and snippets.

@Vaarlion
Created March 21, 2022 18:04
Show Gist options
  • Save Vaarlion/1a71f11238ae06bc95565251204b1304 to your computer and use it in GitHub Desktop.
Save Vaarlion/1a71f11238ae06bc95565251204b1304 to your computer and use it in GitHub Desktop.
A simple playbook to setup my mom framework
---
- name: Base computer settup
hosts: localhost
become_user: root
tasks:
- name: "enable Alsa Mic/Audio jack combo"
become: yes
ansible.builtin.copy:
content: 'options snd-hda-intel model=dell-headset-multi'
dest: /etc/modprobe.d/alsa-framework-port.conf
owner: root
group: root
mode: '0644'
- name: "enable partial scalling on gnome"
community.general.dconf:
key: "/org/gnome/mutter/experimental-features"
state: present
value: "['scale-monitor-framebuffer']"
- name: "enable partial scalling on gnome lockscreen"
become_user: gdm
become_method: machinectl
community.general.dconf:
key: "/org/gnome/mutter/experimental-features"
state: present
value: "['scale-monitor-framebuffer']"
- name: "copy user screen setting to gdm"
become: yes
ansible.builtin.copy:
src: "{{ ansible_user_dir }}/.config/monitors.xml"
dest: ~gdm/.config/monitors.xml
owner: gdm
group: gdm
mode: '0644'
- name: copy certificate authority to trusted ca path of the os
become: yes
ansible.builtin.copy:
src: '{{ item }}'
dest: '/etc/pki/ca-trust/source/anchors/'
owner: root
group: root
mode: 0644
with_fileglob:
- files/cert/*
register: update_certificate_authority
- name: update trusted ca
become: yes
ansible.builtin.command: /bin/update-ca-trust
when: (update_certificate_authority|d({})).get('changed', false)
### Pkgs and repo
- name: install extra repository
become: yes
ansible.builtin.package:
name: fedora-workstation-repositories
state: present
- name: install system pkgs
become: yes
ansible.builtin.package:
name:
- gnome-extensions-app
- gnome-tweaks
- gnome-shell
- deja-dup
state: present
- name: install manual rpm pkgs
become: yes
ansible.builtin.yum:
name: "{{ item }}"
state: present
with_fileglob:
- files/rpm/*.rpm
- name: install python libs
become: yes
ansible.builtin.package:
name:
- python3-gobject
state: present
### Gnome extension
- name: install gnome-extensions-cli in venv
ansible.builtin.pip:
name: gnome-extensions-cli
virtualenv: ~/Documents/Computer_setup/.env
- name: register installed extension
check_mode: no
ansible.builtin.command:
cmd: "gnome-extensions list"
register: gnome_extensions_installed
changed_when: false
- name: install gnome extension
ansible.builtin.command:
cmd: gnome-extensions-cli install {{ item }}
when: item not in gnome_extensions_installed.stdout_lines
loop:
- user-theme@gnome-shell-extensions.gcampax.github.com
- trayIconsReloaded@selfmade.pl
- name: register enabled extension
ansible.builtin.command:
cmd: "gnome-extensions list --enabled"
register: gnome_extensions_enabled
changed_when: false
check_mode: no
- name: disable gnome extension
ansible.builtin.command:
cmd: "gnome-extensions disable {{ item }}"
when: item in gnome_extensions_enabled.stdout_lines
loop:
- background-logo@fedorahosted.org
- apps-menu@gnome-shell-extensions.gcampax.github.com
- places-menu@gnome-shell-extensions.gcampax.github.com
- window-list@gnome-shell-extensions.gcampax.github.com
- clipboard-indicator@tudmotu.com
- name: enable gnome extension
ansible.builtin.command:
cmd: "gnome-extensions enable {{ item }}"
when: item not in gnome_extensions_enabled.stdout_lines
loop:
- user-theme@gnome-shell-extensions.gcampax.github.com
- trayIconsReloaded@selfmade.pl
### Mount Nas and Media folder
- name: "Create mount point"
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: User
group: User
mode: "0000"
loop:
- "{{ ansible_user_dir }}/Nas"
- "{{ ansible_user_dir }}/Media"
- name: "Copy unit file for media and nas mount"
become: yes
ansible.builtin.copy:
src: '{{ item }}'
dest: '/etc/systemd/system/'
owner: root
group: root
mode: 0644
with_fileglob:
- files/mount-units/*
register: update_mount_units
- name: "reload systemd daemon"
become: yes
ansible.builtin.systemd:
daemon_reload: yes
when: (update_mount_units|d({})).get('changed', false)
- name: "enable media and nas automount"
become: yes
ansible.builtin.systemd:
name: '{{ item }}'
state: started
enabled: yes
loop:
- home-User-Nas.automount
- home-User-Media.automount
- name: "Link media mount in multimedia folder"
ansible.builtin.file:
path: "{{ item.key }}"
src: "{{ item.value }}"
state: link
owner: User
group: User
force: yes
loop:
- { key: "{{ ansible_user_dir }}/Vidéos/Films Nas", value: "{{ ansible_user_dir }}/Media/Films"}
- { key: "{{ ansible_user_dir }}/Musique/Musique Nas", value: "{{ ansible_user_dir }}/Media/Musique"}
- { key: "{{ ansible_user_dir }}/Vidéos/Series Nas", value: "{{ ansible_user_dir }}/Media/Series"}
- name: install media pkgs
become: yes
ansible.builtin.package:
name:
- gstreamer1-libav-1
- gstreamer1-plugins-ugly-1
- gstreamer1-plugins-bad-freeworld-1
state: present
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment