Group vars refactor
This commit is contained in:
parent
f7eb8dc56d
commit
755493d155
31 changed files with 355 additions and 398 deletions
53
tasks/arch/aur-package.yml
Normal file
53
tasks/arch/aur-package.yml
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
- name: Set package directory
|
||||
ansible.builtin.set_fact:
|
||||
build_dir: '{{ aur_build_dir }}/{{ item.name }}'
|
||||
|
||||
- name: 'Retrieve package name for {{ item.name }}'
|
||||
command:
|
||||
argv:
|
||||
- grep
|
||||
- --only-matching
|
||||
- --perl-regexp
|
||||
- "(?<=pkgname=).*"
|
||||
- "{{ build_dir }}/PKGBUILD"
|
||||
register: pkg_name
|
||||
|
||||
- name: 'Retrieve package version for {{ item.name }}'
|
||||
command:
|
||||
argv:
|
||||
- grep
|
||||
- --only-matching
|
||||
- --perl-regexp
|
||||
- "(?<=pkgver=).*"
|
||||
- "{{ build_dir }}/PKGBUILD"
|
||||
register: pkg_version
|
||||
|
||||
- name: 'Retrieve package release for {{ item.name }}'
|
||||
command:
|
||||
argv:
|
||||
- grep
|
||||
- --only-matching
|
||||
- --perl-regexp
|
||||
- "(?<=pkgrel=).*"
|
||||
- "{{ build_dir }}/PKGBUILD"
|
||||
register: pkg_release
|
||||
|
||||
- name: Set package filename & version
|
||||
ansible.builtin.set_fact:
|
||||
package_filename: '{{ pkg_name.stdout }}-{{ pkg_version.stdout }}-{{ pkg_release.stdout }}-{{ item.arch }}.pkg.tar.zst'
|
||||
installed_version: ansible_facts.packages[item.package_name].version|default('')
|
||||
|
||||
- name: 'Build package {{ item.name }}'
|
||||
ansible.builtin.command: 'makepkg --syncdeps --rmdeps --clean --noconfirm --force'
|
||||
args:
|
||||
chdir: '{{ build_dir }}'
|
||||
creates: '{{ build_dir }}/{{ package_filename }}'
|
||||
register: package_build
|
||||
when: item.version != installed_version
|
||||
|
||||
- name: 'Install {{ item.name }}'
|
||||
become: true
|
||||
community.general.pacman:
|
||||
name: '{{ build_dir }}/{{ package_filename }}'
|
||||
state: present
|
||||
when: item.version != installed_version
|
||||
26
tasks/arch/aur.yml
Normal file
26
tasks/arch/aur.yml
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
- name: Retrieve directory stats
|
||||
ansible.builtin.stat:
|
||||
path: '{{ aur_build_dir }}/{{ item.name }}'
|
||||
loop: '{{ aur_packages }}'
|
||||
|
||||
- name: Clone aur packages
|
||||
become: true
|
||||
ansible.builtin.git:
|
||||
repo: '{{ item.url }}'
|
||||
dest: '{{ aur_build_dir }}/{{ item.name }}'
|
||||
update: true
|
||||
loop: '{{ aur_packages }}'
|
||||
|
||||
- name: Change aur package directories owner
|
||||
become: true
|
||||
ansible.builtin.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
|
||||
ansible.builtin.include_tasks: 'tasks/arch/aur-package.yml'
|
||||
loop: '{{ aur_packages }}'
|
||||
66
tasks/arch/docker.yml
Normal file
66
tasks/arch/docker.yml
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
- name: Remove docker mapping files
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
path: '{{ item }}'
|
||||
state: absent
|
||||
loop:
|
||||
- /etc/subgid
|
||||
- /etc/subuid
|
||||
|
||||
- name: Setup desktop configuration
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
path: 'files/desktop/docker-daemon.json'
|
||||
dest: '/etc/docker/daemon.json'
|
||||
mode: '0755'
|
||||
when: ansible_hostname == 'desktop'
|
||||
|
||||
- name: Remove user setup desktop configuration
|
||||
ansible.builtin.file:
|
||||
path: '{{ xdg_config_dir }}/docker/daemon.json'
|
||||
state: absent
|
||||
when: ansible_hostname == 'desktop'
|
||||
|
||||
- name: Check for .bashrc.override
|
||||
ansible.builtin.stat:
|
||||
path: '{{ ansible_env.HOME }}/.bashrc.override'
|
||||
register: bashrc_override
|
||||
|
||||
- name: Create .bashrc.override
|
||||
ansible.builtin.file:
|
||||
path: '{{ ansible_env.HOME }}/.bashrc.override'
|
||||
state: touch
|
||||
mode: '0755'
|
||||
when: not bashrc_override.stat.exists
|
||||
|
||||
- name: Remove rootless DOCKER_HOST variable assignment
|
||||
ansible.builtin.lineinfile:
|
||||
path: '{{ ansible_env.HOME }}/.bashrc.override'
|
||||
regexp: '^export DOCKER_HOST='
|
||||
line: ''
|
||||
|
||||
- name: Disable user docker socket
|
||||
ansible.builtin.systemd:
|
||||
name: '{{ item }}'
|
||||
state: stopped
|
||||
enabled: false
|
||||
scope: user
|
||||
daemon_reload: true
|
||||
register: disable_stats
|
||||
ignore_errors: true # TODO: add better error handling
|
||||
loop:
|
||||
- docker.socket
|
||||
- docker.service
|
||||
|
||||
- name: Remove docker rootless package
|
||||
become: true
|
||||
ansible.builtin.package:
|
||||
name: docker-rootless-extras
|
||||
state: absent
|
||||
|
||||
- name: Enable system docker socket
|
||||
become: true
|
||||
ansible.builtin.systemd:
|
||||
name: docker.socket
|
||||
state: started
|
||||
enabled: true
|
||||
6
tasks/arch/neovim.yml
Normal file
6
tasks/arch/neovim.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
- name: Install language servers
|
||||
become: true
|
||||
community.general.pacman:
|
||||
name: '{{ item }}'
|
||||
state: present
|
||||
loop: '{{ language_servers | map(attribute="package") | list }}'
|
||||
15
tasks/arch/nvm.yml
Normal file
15
tasks/arch/nvm.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
- name: Set NVM install directory
|
||||
ansible.builtin.set_fact:
|
||||
install_dir: '{{ xdg_config_dir }}/nvm'
|
||||
|
||||
- name: Remove manually installed nvm install directory
|
||||
ansible.builtin.file:
|
||||
path: '{{ install_dir }}'
|
||||
state: absent
|
||||
|
||||
- name: Remove nvm entry from bashrc
|
||||
ansible.builtin.lineinfile:
|
||||
path: '{{ ansible_env.HOME }}/.bashrc.override'
|
||||
line: >
|
||||
[ -s "{{ install_dir }}/nvm.sh" ] && \. "{{ install_dir }}/nvm.sh" # This loads nvm
|
||||
state: absent
|
||||
65
tasks/arch/python.yml
Normal file
65
tasks/arch/python.yml
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
- name: 'check for {{ item.binary }} binary'
|
||||
command: 'which {{ item.binary }}'
|
||||
changed_when: false
|
||||
failed_when: python_installed.rc not in [ 0, 1 ]
|
||||
register: python_installed
|
||||
|
||||
- name: 'check for {{ item.binary }} download'
|
||||
stat:
|
||||
path: '{{ python_build_dir }}/python-{{ item.version }}.tgz'
|
||||
register: python_download
|
||||
|
||||
- block:
|
||||
# TODO: verify for checksum
|
||||
- name: 'retrieve python {{ item.version }} source'
|
||||
become: true
|
||||
get_url:
|
||||
url: '{{ python_download_url }}/{{ item.version }}/Python-{{ item.version }}.tgz'
|
||||
dest: '{{ python_build_dir }}/python-{{ item.version }}.tgz'
|
||||
owner: '{{ ansible_user_id }}'
|
||||
group: '{{ ansible_user_id }}'
|
||||
when: not python_download.stat.exists
|
||||
|
||||
- name: 'extract python {{ item.version }} sources'
|
||||
become: true
|
||||
unarchive:
|
||||
src: '{{ python_build_dir }}/python-{{ item.version }}.tgz'
|
||||
dest: '{{ python_build_dir }}'
|
||||
include: 'Python-{{ item.version }}'
|
||||
|
||||
- name: rename source directory
|
||||
become: true
|
||||
ansible.builtin.command: 'mv {{ python_build_dir}}/Python-{{ item.version }} {{ python_build_dir }}/{{ item.path }}'
|
||||
|
||||
- name: set correct permissions
|
||||
become: true
|
||||
file:
|
||||
path: '{{ python_build_dir }}/{{ item.path }}'
|
||||
recurse: true
|
||||
owner: '{{ ansible_user_id }}'
|
||||
group: '{{ ansible_user_id }}'
|
||||
state: directory
|
||||
|
||||
- name: configure build
|
||||
ansible.builtin.command: 'sh ./configure --prefix={{ python_install_dir }}/{{ item.path }}'
|
||||
args:
|
||||
chdir: '{{ python_build_dir }}/{{ item.path }}/'
|
||||
|
||||
- name: make build
|
||||
ansible.builtin.command: 'make'
|
||||
args:
|
||||
chdir: '{{ python_build_dir }}/{{ item.path }}/'
|
||||
|
||||
- name: install build
|
||||
become: true
|
||||
ansible.builtin.command: 'make install'
|
||||
args:
|
||||
chdir: '{{ python_build_dir }}/{{ item.path }}/'
|
||||
|
||||
- name: 'create symlink for python {{ item.version }}'
|
||||
become: true
|
||||
file:
|
||||
src: '{{ python_install_dir }}/{{ item.path }}/bin/{{ item.binary }}'
|
||||
dest: '/usr/bin/{{ item.binary }}'
|
||||
state: link
|
||||
when: python_installed.rc not in [ 0 ]
|
||||
Loading…
Add table
Add a link
Reference in a new issue