From 195b9600bb9caf7d5323ef5e2823dacb32a694bb Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Thu, 25 Nov 2021 10:28:20 +0100 Subject: [PATCH 1/5] Remove support for ubuntu/debian --- playbook.yml | 6 +----- vars/main.yml => vars.yml | 11 ++++++++++- vars/archlinux-na.yml | 10 ---------- vars/debian-buster.yml | 11 ----------- vars/ubuntu-focal.yml | 15 --------------- 5 files changed, 11 insertions(+), 42 deletions(-) rename vars/main.yml => vars.yml (87%) delete mode 100644 vars/archlinux-na.yml delete mode 100644 vars/debian-buster.yml delete mode 100644 vars/ubuntu-focal.yml diff --git a/playbook.yml b/playbook.yml index ad33ee1..152eccc 100644 --- a/playbook.yml +++ b/playbook.yml @@ -19,11 +19,7 @@ - npm tasks: - import_tasks: 'tasks/main.yml' - - include_role: - name: common - tasks_from: 'poetry.yml' - import_tasks: 'tasks/dotfiles.yml' - import_tasks: 'tasks/neovim.yml' vars_files: - - 'vars/main.yml' - - 'vars/{{ ansible_distribution|lower }}-{{ ansible_distribution_release|lower }}.yml' + - 'vars.yml' diff --git a/vars/main.yml b/vars.yml similarity index 87% rename from vars/main.yml rename to vars.yml index 73e3f3f..a80b21c 100644 --- a/vars/main.yml +++ b/vars.yml @@ -1,7 +1,16 @@ ansible_connection: local ansible_python_interpreter: '/usr/bin/env python' -packages: [] +packages: + - python + - poetry + - git + - vim + - neovim + - npm + - docker + - docker-compose + - ttf-ibm-plex xdg_config_dir: '{{ ansible_env.HOME }}/.config' xdg_data_dir: '{{ ansible_env.HOME }}/.local/share' diff --git a/vars/archlinux-na.yml b/vars/archlinux-na.yml deleted file mode 100644 index 7e6330f..0000000 --- a/vars/archlinux-na.yml +++ /dev/null @@ -1,10 +0,0 @@ -packages: - - python - - poetry - - git - - vim - - neovim - - npm - - docker - - docker-compose - - ttf-ibm-plex diff --git a/vars/debian-buster.yml b/vars/debian-buster.yml deleted file mode 100644 index 9f4a601..0000000 --- a/vars/debian-buster.yml +++ /dev/null @@ -1,11 +0,0 @@ -packages: - - git - - vim - - neovim - - python3 - - python3-pip - - python3-venv - - python3-setuptools - - exuberant-ctags - - apt-transport-https - - fonts-ibm-plex diff --git a/vars/ubuntu-focal.yml b/vars/ubuntu-focal.yml deleted file mode 100644 index f89c36f..0000000 --- a/vars/ubuntu-focal.yml +++ /dev/null @@ -1,15 +0,0 @@ -dotfiles_repo: 'https://git.fudiggity.nl/sonny/dotfiles.git' -githook_repo: 'https://git.fudiggity.nl/sonny/git-hooks.git' - -packages: - - git - - vim - - neovim - - python2 - - python3 - - python3-pip - - python3-venv - - python3-setuptools - - exuberant-ctags - - apt-transport-https - - fonts-ibm-plex From 4c358753336f708418ec8102fdd94ec62d7d256a Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Thu, 25 Nov 2021 14:13:15 +0100 Subject: [PATCH 2/5] Initial commit --- playbook.yml | 1 + tasks/aur.yml | 23 +++++++++++++++++++++++ tasks/main.yml | 9 +++++++++ vars.yml | 13 +++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 tasks/aur.yml diff --git a/playbook.yml b/playbook.yml index 152eccc..84575bb 100644 --- a/playbook.yml +++ b/playbook.yml @@ -21,5 +21,6 @@ - import_tasks: 'tasks/main.yml' - import_tasks: 'tasks/dotfiles.yml' - import_tasks: 'tasks/neovim.yml' + - import_tasks: 'tasks/aur.yml' vars_files: - 'vars.yml' diff --git a/tasks/aur.yml b/tasks/aur.yml new file mode 100644 index 0000000..6c20b59 --- /dev/null +++ b/tasks/aur.yml @@ -0,0 +1,23 @@ +- name: clone aur packages + become: true + git: + repo: '{{ item.url }}' + dest: '{{ aur_build_dir }}/{{ item.name }}' + update: true + loop: '{{ aur_packages }}' + +- name: change aur package directories owner + become: true + file: + path: '{[ aur_build_dir }}/{{ item.name }}' + state: directory + owner: sonny + group: sonny + recurse: true + loop: '{{ aur_packages }}' + +- name: build packages + command: 'makepkg --syncdeps --rmdeps --clean' + args: + chdir: '{[ aur_build_dir }}/{{ item.name }}' + loop: '{{ aur_packages }}' diff --git a/tasks/main.yml b/tasks/main.yml index 91e686f..df311d8 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -11,6 +11,15 @@ update: true version: master +- name: remove old docker packages + become: true + package: + name: '{{ item }}' + state: absent + loop: + - docker + - docker-compose + - name: copy konsole configuration files template: src: '{{ item.src }}' diff --git a/vars.yml b/vars.yml index a80b21c..fef4076 100644 --- a/vars.yml +++ b/vars.yml @@ -2,6 +2,7 @@ ansible_connection: local ansible_python_interpreter: '/usr/bin/env python' packages: + - base-devel - python - poetry - git @@ -12,6 +13,18 @@ packages: - docker-compose - ttf-ibm-plex +aur_packages: + - { + url: 'https://aur.archlinux.org/rootlesskit.git', + name: 'rootlesskit' + } + - { + url: 'https://aur.archlinux.org/docker-rootless-extras-bin.git', + name: 'docker-rootless' + } + +aur_build_dir: '/usr/local/src' + xdg_config_dir: '{{ ansible_env.HOME }}/.config' xdg_data_dir: '{{ ansible_env.HOME }}/.local/share' From cede4ea3650f9dc4fafb87f69feacfd0e5ce4baa Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Sun, 28 Nov 2021 12:04:41 +0100 Subject: [PATCH 3/5] Add separate file for aur task & add rootless docker tasks --- playbook.yml | 1 + tasks/aur-package.yml | 22 ++++++++++++++++++++++ tasks/aur.yml | 20 +++++++++++++------- tasks/docker.yml | 28 ++++++++++++++++++++++++++++ tasks/main.yml | 9 --------- templates/subgid.j2 | 1 + templates/subuid.j2 | 1 + vars.yml | 1 + 8 files changed, 67 insertions(+), 16 deletions(-) create mode 100644 tasks/aur-package.yml create mode 100644 tasks/docker.yml create mode 100644 templates/subgid.j2 create mode 100644 templates/subuid.j2 diff --git a/playbook.yml b/playbook.yml index 84575bb..220b557 100644 --- a/playbook.yml +++ b/playbook.yml @@ -22,5 +22,6 @@ - import_tasks: 'tasks/dotfiles.yml' - import_tasks: 'tasks/neovim.yml' - import_tasks: 'tasks/aur.yml' + - import_tasks: 'tasks/docker.yml' vars_files: - 'vars.yml' diff --git a/tasks/aur-package.yml b/tasks/aur-package.yml new file mode 100644 index 0000000..3100196 --- /dev/null +++ b/tasks/aur-package.yml @@ -0,0 +1,22 @@ +- name: build package + command: 'makepkg --syncdeps --rmdeps --clean --noconfirm --force' + args: + chdir: '{{ aur_build_dir }}/{{ item.name }}' + +- name: retrieve package name + command: 'grep -oP "(?<=pkgname=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' + register: pkg_name + +- name: retrieve package version + command: 'grep -oP "(?<=pkgver=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' + register: pkg_version + +- name: retrieve package release + command: 'grep -oP "(?<=pkgrel=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' + register: pkg_release + +- name: install package + become: true + pacman: + name: '{{ aur_build_dir }}/{{ item.name }}/{{ pkg_name.stdout }}-{{ pkg_version.stdout }}-{{ pkg_release.stdout }}-x86_64.pkg.tar.zst' + state: present diff --git a/tasks/aur.yml b/tasks/aur.yml index 6c20b59..f2ab39b 100644 --- a/tasks/aur.yml +++ b/tasks/aur.yml @@ -9,15 +9,21 @@ - name: change aur package directories owner become: true file: - path: '{[ aur_build_dir }}/{{ item.name }}' + path: '{{ aur_build_dir }}/{{ item.name }}' state: directory - owner: sonny - group: sonny + owner: '{{ ansible_user_id }}' + group: '{{ ansible_user_id }}' recurse: true loop: '{{ aur_packages }}' -- name: build packages - command: 'makepkg --syncdeps --rmdeps --clean' - args: - chdir: '{[ aur_build_dir }}/{{ item.name }}' +- name: build & install aur packages + include_tasks: 'tasks/aur-package.yml' loop: '{{ aur_packages }}' + +- name: enable docker socket + systemd: + name: docker.socket + state: restarted + enabled: true + scope: user + daemon_reload: true diff --git a/tasks/docker.yml b/tasks/docker.yml new file mode 100644 index 0000000..4443bbe --- /dev/null +++ b/tasks/docker.yml @@ -0,0 +1,28 @@ +- name: copy docker mapping files + become: true + template: + src: '{{ item.src }}' + dest: '{{ item.dest }}' + loop: + - { + src: 'templates/subgid.j2', + dest: '/etc/subgid', + } + - { + src: 'templates/subuid.j2', + dest: '/etc/subuid', + } + +- name: ensure correct DOCKER_HOST is set + lineinfile: + path: '{{ ansible_env.HOME }}/.bashrc' + regexp: '^export DOCKER_HOST=' + line: 'export DOCKER_HOST=unix:///run/user/{{ ansible_user_uid }}/docker.sock' + +- name: enable docker socket + systemd: + name: docker.socket + state: restarted + enabled: true + scope: user + daemon_reload: true diff --git a/tasks/main.yml b/tasks/main.yml index df311d8..91e686f 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -11,15 +11,6 @@ update: true version: master -- name: remove old docker packages - become: true - package: - name: '{{ item }}' - state: absent - loop: - - docker - - docker-compose - - name: copy konsole configuration files template: src: '{{ item.src }}' diff --git a/templates/subgid.j2 b/templates/subgid.j2 new file mode 100644 index 0000000..fb08808 --- /dev/null +++ b/templates/subgid.j2 @@ -0,0 +1 @@ +{{ ansible_user_id }}:231072:65536 diff --git a/templates/subuid.j2 b/templates/subuid.j2 new file mode 100644 index 0000000..fb08808 --- /dev/null +++ b/templates/subuid.j2 @@ -0,0 +1 @@ +{{ ansible_user_id }}:231072:65536 diff --git a/vars.yml b/vars.yml index fef4076..522bd3c 100644 --- a/vars.yml +++ b/vars.yml @@ -11,6 +11,7 @@ packages: - npm - docker - docker-compose + - fuse-overlayfs - ttf-ibm-plex aur_packages: From 3d26eaa10ce04a598234668521566374d14485c7 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Sun, 28 Nov 2021 14:21:27 +0100 Subject: [PATCH 4/5] Add desktop configuration --- files/docker-daemon.json | 3 +++ tasks/docker.yml | 6 ++++++ 2 files changed, 9 insertions(+) create mode 100644 files/docker-daemon.json diff --git a/files/docker-daemon.json b/files/docker-daemon.json new file mode 100644 index 0000000..705c4d0 --- /dev/null +++ b/files/docker-daemon.json @@ -0,0 +1,3 @@ +{ + "data-root": "/mnt/docker" +} diff --git a/tasks/docker.yml b/tasks/docker.yml index 4443bbe..e89f666 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -13,6 +13,12 @@ dest: '/etc/subuid', } +- name: setup desktop configuration + copy: + src: 'files/docker-daemon.json' + dest: '{{ xdg_config_dir }}/docker/daemon.json' + when: ansible_hostname == 'desktop' + - name: ensure correct DOCKER_HOST is set lineinfile: path: '{{ ansible_env.HOME }}/.bashrc' From e1ed19dea5f553d723d9782eb13840025571b567 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Sun, 28 Nov 2021 22:02:00 +0100 Subject: [PATCH 5/5] Display package name when building aur packages --- tasks/aur-package.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tasks/aur-package.yml b/tasks/aur-package.yml index 3100196..0652047 100644 --- a/tasks/aur-package.yml +++ b/tasks/aur-package.yml @@ -1,21 +1,21 @@ -- name: build package +- name: 'build package {{ item.name }}' command: 'makepkg --syncdeps --rmdeps --clean --noconfirm --force' args: chdir: '{{ aur_build_dir }}/{{ item.name }}' -- name: retrieve package name +- name: 'retrieve package name for {{ item.name }}' command: 'grep -oP "(?<=pkgname=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' register: pkg_name -- name: retrieve package version +- name: 'retrieve package version for {{ item.name }}' command: 'grep -oP "(?<=pkgver=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' register: pkg_version -- name: retrieve package release +- name: 'retrieve package release for {{ item.name }}' command: 'grep -oP "(?<=pkgrel=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' register: pkg_release -- name: install package +- name: 'install {{ item.name }}' become: true pacman: name: '{{ aur_build_dir }}/{{ item.name }}/{{ pkg_name.stdout }}-{{ pkg_version.stdout }}-{{ pkg_release.stdout }}-x86_64.pkg.tar.zst'