@installdoc/ansible-gas-station
Version:
An Ansible playbook that provisions your network with software from GitHub Awesome lists, developed with disaster recovery in mind ⛽🔥🤤
79 lines (67 loc) • 2.3 kB
YAML
- name: Ensure install-gnome-extensions dependencies are installed
package:
name: "{{ gnome_extensions_installer_dependencies }}"
state: present
- name: Copy install-gnome-extensions executable
copy:
dest: /usr/local/bin/install-gnome-extensions
mode: 0755
owner: root
src: install-gnome-extensions.sh
- name: Ensure gnome-shell extensions folder exists
become: true
become_user: "{{ user.username }}"
file:
mode: 0700
path: "{{ item }}"
state: directory
loop:
- ~/.local
- ~/.local/share
- ~/.local/share/gnome-shell
- ~/.local/share/gnome-shell/extensions
- name: Determine which GNOME extensions are already installed (user)
become: true
become_user: "{{ user.username }}"
command: ls ~/.local/share/gnome-shell/extensions/
changed_when: false
register: user_gnome_extensions
- name: Configure install list for the GNOME extension installer
include_tasks: GNOME-list.yml
loop: "{{ user.gnome_extensions | default([]) }}"
loop_control:
label: "{{ item.url }}"
- name: Determine whether or not an install file was created
stat:
path: /tmp/install-gnome-extensions.txt
register: install_gnome_extensions
- name: "Give {{ user.username }} passwordless sudo priviledges"
lineinfile:
line: "{{ user.username }} ALL=(ALL) NOPASSWD: ALL"
path: /etc/sudoers
regex: "^{{ user.username }}"
when: install_gnome_extensions.stat.exists
- name: Run the installer
become: true
become_user: "{{ user.username }}"
command: install-gnome-extensions --enable --overwrite --file /tmp/install-gnome-extensions.txt
when: install_gnome_extensions.stat.exists
- name: "Remove {{ user.username }}'s passwordless sudo priviledges"
lineinfile:
line: "{{ user.username }} ALL=(ALL) ALL"
path: /etc/sudoers
regex: "^{{ user.username }}"
when: install_gnome_extensions.stat.exists
- name: Remove the GNOME extensions installer list file
file:
path: /tmp/install-gnome-extensions.txt
state: absent
- name: Apply extension settings
include_tasks: GNOME-settings.yml
loop: "{{ user.gnome_extensions | default([]) }}"
loop_control:
label: "{{ item.url }}"
- name: Restart GNOME
command: killall -SIGQUIT gnome-shell
when: install_gnome_extensions.stat.exists