diff --git a/group_vars/all.yml b/group_vars/all.yml new file mode 100644 index 0000000..bfcd9b7 --- /dev/null +++ b/group_vars/all.yml @@ -0,0 +1,14 @@ +user: + name: ariejan + full_name: "Ariejan de Vroom" + primary_group: users + additional_groups: docker,wheel + shell: /bin/zsh + country: "Netherlands" + +host_name: archie + +pacman: + parallel_downloads: 10 + +aur_helper: yay diff --git a/main.yml b/main.yml index e4c733c..aa7b0f2 100644 --- a/main.yml +++ b/main.yml @@ -2,4 +2,5 @@ - name: Ariejan's Arch Linux hosts: all roles: - - { role: 01_host_info } \ No newline at end of file + - { role: 01_host_info } + - { role: 02_basics } \ No newline at end of file diff --git a/roles/02_basics/tasks/main.yml b/roles/02_basics/tasks/main.yml new file mode 100644 index 0000000..aacb469 --- /dev/null +++ b/roles/02_basics/tasks/main.yml @@ -0,0 +1,32 @@ +--- +- name: Install packages + community.general.pacman: + name: + - reflector + - pacman-contrib + state: present + become: true + +- name: Update reflector configuration file + ansible.builtin.template: + src: reflector.conf.j2 + dest: /etc/xdg/reflector/reflector.conf + backup: no + owner: root + group: root + mode: 0644 + become: true + +- name: Update pacman configuration file + ansible.builtin.template: + src: pacman.conf.j2 + dest: /etc/pacman.conf + backup: no + owner: root + group: root + mode: 0644 + become: true + +- name: Update mirrorlist + ansible.buildtin.shell: + cmd: reflector \ No newline at end of file diff --git a/roles/02_basics/templates/pacman.conf.j2 b/roles/02_basics/templates/pacman.conf.j2 new file mode 100644 index 0000000..ea8f262 --- /dev/null +++ b/roles/02_basics/templates/pacman.conf.j2 @@ -0,0 +1,97 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +Architecture = auto + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +#NoProgressBar +CheckSpace +VerbosePkgLists +ParallelDownloads = {{ pacman.parallel_downloads }} + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[core-testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +#[extra-testing] +#Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +#[multilib] +#Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs \ No newline at end of file diff --git a/roles/02_basics/templates/reflector.conf.j2 b/roles/02_basics/templates/reflector.conf.j2 new file mode 100644 index 0000000..e813795 --- /dev/null +++ b/roles/02_basics/templates/reflector.conf.j2 @@ -0,0 +1,6 @@ +--save /etc/pacman.d/mirrorlist +--country "{{ user.country }}" +--protocol https +--sort rate +--age 24 +--latest 10 \ No newline at end of file