From 02c70010bd72d9cf9d238c4d39b0c23603448883 Mon Sep 17 00:00:00 2001 From: Menno van Leeuwen Date: Mon, 20 Jan 2025 11:02:00 +0100 Subject: [PATCH] adds docker ce adds pano extension alpha --- bin/actions/update.sh | 2 +- config/ansible/main.yml | 26 ++++++++---- config/ansible/tasks/docker.yml | 40 +++++++++++++++++++ config/ansible/tasks/gnome-extensions.yml | 2 + .../ansible/tasks/gnome-extensions/pano.yml | 36 +++++++++++++++++ 5 files changed, 98 insertions(+), 8 deletions(-) create mode 100644 config/ansible/tasks/docker.yml create mode 100644 config/ansible/tasks/gnome-extensions.yml create mode 100644 config/ansible/tasks/gnome-extensions/pano.yml diff --git a/bin/actions/update.sh b/bin/actions/update.sh index 3d4e19c..325e090 100755 --- a/bin/actions/update.sh +++ b/bin/actions/update.sh @@ -67,7 +67,7 @@ fi if [[ "$RUN_ANSIBLE" == true ]]; then if command -v ansible-playbook &> /dev/null; then printfe "%s\n" "cyan" "Upgrading Ansible packages..." - cd $HOME/dotfiles/config/ansible && ansible-playbook -i $HOME/dotfiles/config/ansible/inventory.ini $HOME/dotfiles/config/ansible/main.yml --extra-vars "hostname=$DOTF_HOSTNAME" --limit $DOTF_HOSTNAME + cd $HOME/dotfiles/config/ansible && ansible-playbook -i $HOME/dotfiles/config/ansible/inventory.ini $HOME/dotfiles/config/ansible/main.yml --extra-vars "hostname=$DOTF_HOSTNAME" --limit $DOTF_HOSTNAME --ask-become-pass if [[ $? -ne 0 ]]; then printfe "%s\n" "red" "Failed to upgrade Ansible packages." diff --git a/config/ansible/main.yml b/config/ansible/main.yml index 35f8dcc..399d1d4 100644 --- a/config/ansible/main.yml +++ b/config/ansible/main.yml @@ -2,6 +2,9 @@ gather_facts: true tasks: + - name: Include symlinks tasks + ansible.builtin.import_tasks: tasks/symlinks.yml + - name: Include VSCode tasks ansible.builtin.import_tasks: tasks/vscode.yml when: hostname in ['mennos-laptop', 'mennos-desktop'] @@ -21,17 +24,17 @@ when: hostname in ['mennos-laptop', 'mennos-desktop'] become: true - - name: Include symlinks tasks - ansible.builtin.import_tasks: tasks/symlinks.yml - - - name: Include flatpaks tasks - ansible.builtin.import_tasks: tasks/flatpaks.yml - when: hostname in ['mennos-laptop', 'mennos-desktop'] + - name: Include Docker tasks + ansible.builtin.import_tasks: tasks/docker.yml + become: true - name: Gather package facts ansible.builtin.package_facts: manager: auto become: true + + - name: Include GNOME Extensions tasks + ansible.builtin.import_tasks: tasks/gnome-extensions.yml - name: Ensure common packages are installed ansible.builtin.package: @@ -42,5 +45,14 @@ - trash-cli - curl - wget + - flatpak + # Required by Pano - Clipboard Manager (GNOME Extension) + - libgda + - libgda-sqlite state: present - become: true \ No newline at end of file + become: true + + - name: Include flatpaks tasks + ansible.builtin.import_tasks: tasks/flatpaks.yml + when: hostname in ['mennos-laptop', 'mennos-desktop'] + \ No newline at end of file diff --git a/config/ansible/tasks/docker.yml b/config/ansible/tasks/docker.yml new file mode 100644 index 0000000..fd852a1 --- /dev/null +++ b/config/ansible/tasks/docker.yml @@ -0,0 +1,40 @@ +- name: Check if Docker CE is installed + ansible.builtin.command: docker --version + register: docker_check + changed_when: false + failed_when: false + +- name: Install Docker CE + ansible.builtin.shell: curl -fsSL https://get.docker.com | sh + when: docker_check.rc != 0 + +- name: Add user to docker group + ansible.builtin.user: + name: "{{ ansible_user }}" + groups: docker + append: yes + become: true + when: docker_check.rc != 0 + +- name: Check if docker is running + ansible.builtin.systemd: + name: docker + state: started + enabled: yes + become: true + register: docker_service + +- name: Reload systemd + ansible.builtin.systemd: + daemon_reload: yes + become: true + when: docker_service.changed + +- name: Enable and start docker service + ansible.builtin.systemd: + name: docker + state: started + enabled: yes + become: true + when: docker_service.changed + \ No newline at end of file diff --git a/config/ansible/tasks/gnome-extensions.yml b/config/ansible/tasks/gnome-extensions.yml new file mode 100644 index 0000000..248737a --- /dev/null +++ b/config/ansible/tasks/gnome-extensions.yml @@ -0,0 +1,2 @@ +- name: Install Pano - Clipboard Manager + import_tasks: tasks/gnome-extensions/pano.yml \ No newline at end of file diff --git a/config/ansible/tasks/gnome-extensions/pano.yml b/config/ansible/tasks/gnome-extensions/pano.yml new file mode 100644 index 0000000..7f1bc71 --- /dev/null +++ b/config/ansible/tasks/gnome-extensions/pano.yml @@ -0,0 +1,36 @@ +- name: Check if Pano - Clipboard Manager is installed + ansible.builtin.stat: + path: "{{ ansible_user_dir }}/.local/share/gnome-shell/extensions/pano@elhan.io" + register: pano_check + +- name: Create Pano - Clipboard Manager directory + ansible.builtin.file: + path: "{{ ansible_user_dir }}/.local/share/gnome-shell/extensions/pano@elhan.io" + state: directory + mode: '0755' + when: pano_check.stat.exists == False + +# To update Pano, delete the existing directory and re-download the latest release +# Replace the URL with the latest release URL and rerun the playbook/dotf update +- name: Download Pano - Clipboard Manager + ansible.builtin.get_url: + url: https://github.com/oae/gnome-shell-pano/releases/download/v23-alpha3/pano@elhan.io.zip + dest: "{{ ansible_user_dir }}/.local/share/gnome-shell/extensions/pano@elhan.io/release.zip" + when: pano_check.stat.exists == False + +- name: Extract Pano - Clipboard Manager + ansible.builtin.unarchive: + src: "{{ ansible_user_dir }}/.local/share/gnome-shell/extensions/pano@elhan.io/release.zip" + dest: "{{ ansible_user_dir }}/.local/share/gnome-shell/extensions/pano@elhan.io/" + when: pano_check.stat.exists == False + +- name: Cleanup post Pan - Clipboard Manager installation + ansible.builtin.file: + path: "{{ ansible_user_dir }}/.local/share/gnome-shell/extensions/pano@elhan.io/release.zip" + state: absent + when: pano_check.stat.exists == False + +- name: Enable Pano - Clipboard Manager + ansible.builtin.command: gnome-extensions enable pano@elhan.io + when: pano_check.stat.exists == False +