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/playbook.yml b/playbook.yml index ad33ee1..220b557 100644 --- a/playbook.yml +++ b/playbook.yml @@ -19,11 +19,9 @@ - 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' + - import_tasks: 'tasks/aur.yml' + - import_tasks: 'tasks/docker.yml' vars_files: - - 'vars/main.yml' - - 'vars/{{ ansible_distribution|lower }}-{{ ansible_distribution_release|lower }}.yml' + - 'vars.yml' diff --git a/tasks/aur-package.yml b/tasks/aur-package.yml new file mode 100644 index 0000000..0652047 --- /dev/null +++ b/tasks/aur-package.yml @@ -0,0 +1,22 @@ +- name: 'build package {{ item.name }}' + command: 'makepkg --syncdeps --rmdeps --clean --noconfirm --force' + args: + chdir: '{{ aur_build_dir }}/{{ item.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 for {{ item.name }}' + command: 'grep -oP "(?<=pkgver=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' + register: pkg_version + +- name: 'retrieve package release for {{ item.name }}' + command: 'grep -oP "(?<=pkgrel=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' + register: pkg_release + +- 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' + state: present diff --git a/tasks/aur.yml b/tasks/aur.yml new file mode 100644 index 0000000..f2ab39b --- /dev/null +++ b/tasks/aur.yml @@ -0,0 +1,29 @@ +- 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: '{{ ansible_user_id }}' + group: '{{ ansible_user_id }}' + recurse: true + loop: '{{ aur_packages }}' + +- 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..e89f666 --- /dev/null +++ b/tasks/docker.yml @@ -0,0 +1,34 @@ +- 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: 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' + 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/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/main.yml b/vars.yml similarity index 67% rename from vars/main.yml rename to vars.yml index 73e3f3f..522bd3c 100644 --- a/vars/main.yml +++ b/vars.yml @@ -1,7 +1,30 @@ ansible_connection: local ansible_python_interpreter: '/usr/bin/env python' -packages: [] +packages: + - base-devel + - python + - poetry + - git + - vim + - neovim + - npm + - docker + - docker-compose + - fuse-overlayfs + - 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' 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