diff --git a/README.md b/README.md index 925b40d..233d7ac 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Installation +## Full Arch installation Add the host to `inventory/hosts` and configure a `inventory/host_vars/.yaml` @@ -22,3 +23,6 @@ After logging in as root: ansible-pull -U https://git.klowner.com/mark/ansible-workstation ``` *NOTE: neither root password or host name is needed here* + +## System environment provisioning +*TODO* diff --git a/inventory/group_vars/all.yaml b/inventory/group_vars/all.yaml new file mode 100644 index 0000000..d9e99f8 --- /dev/null +++ b/inventory/group_vars/all.yaml @@ -0,0 +1,4 @@ +--- +dotfiles_url: https://git.klowner.com/mark/dotfiles/raw/branch/main/bin/dotfiles +dotfiles_user: mark +dotfiles_shell: zsh diff --git a/inventory/host_vars/hulder.yaml b/inventory/host_vars/hulder.yaml index ead4b07..d404bc1 100644 --- a/inventory/host_vars/hulder.yaml +++ b/inventory/host_vars/hulder.yaml @@ -1,6 +1,6 @@ --- ansible_user: root -ansible_host: 10.4.0.49 +ansible_host: 10.4.0.55 base_root_swap_mib: "{{ 1024 * 16 }}" base_root_efi_mib: 512 diff --git a/playbooks/install.yaml b/playbooks/install.yaml index 24b6fc0..7c77f29 100644 --- a/playbooks/install.yaml +++ b/playbooks/install.yaml @@ -14,3 +14,4 @@ hosts: base roles: - software + - dotfiles diff --git a/roles/base/tasks/archinstall/install_os.yaml b/roles/base/tasks/archinstall/install_os.yaml index 2f84edb..42408e1 100644 --- a/roles/base/tasks/archinstall/install_os.yaml +++ b/roles/base/tasks/archinstall/install_os.yaml @@ -21,6 +21,7 @@ - linux-lts - linux-lts-headers - openssh + - zsh when: not existing_pacstrap.stat.exists - name: archinstall | install os | copy pacman mirrorlist diff --git a/roles/dotfiles/defaults/main.yaml b/roles/dotfiles/defaults/main.yaml new file mode 100644 index 0000000..6d6ac2d --- /dev/null +++ b/roles/dotfiles/defaults/main.yaml @@ -0,0 +1,4 @@ +--- +dotfiles_user: "{{ user }}" +dotfiles_url: "{{ url }}" +dotfiles_shell: bash diff --git a/roles/dotfiles/tasks/main.yaml b/roles/dotfiles/tasks/main.yaml new file mode 100644 index 0000000..74424f9 --- /dev/null +++ b/roles/dotfiles/tasks/main.yaml @@ -0,0 +1,13 @@ +--- +- name: dotfiles | set user shell + ansible.builtin.user: + name: "{{ dotfiles_user }}" + shell: "/usr/bin/{{ dotfiles_shell }}" + +- name: dotfiles | install from remote source + become: true + become_user: "{{ dotfiles_user }}" + shell: + cmd: "curl -o- -L {{ dotfiles_url }} | {{ dotfiles_shell }}" + creates: "/home/{{ dotfiles_user }}/.dotfiles" + register: dotfiles diff --git a/roles/software/defaults/main.yaml b/roles/software/defaults/main.yaml new file mode 100644 index 0000000..d473ea5 --- /dev/null +++ b/roles/software/defaults/main.yaml @@ -0,0 +1 @@ +desktop_user: mark diff --git a/roles/software/tasks/main.yaml b/roles/software/tasks/main.yaml index 132702d..b1f3156 100644 --- a/roles/software/tasks/main.yaml +++ b/roles/software/tasks/main.yaml @@ -1,2 +1,3 @@ -- import_tasks: software_desktop.yaml -- import_tasks: software_gfx.yaml +# - import_tasks: software/minimal.yaml +- import_tasks: software/desktop.yaml +# - import_tasks: software/graphics.yaml diff --git a/roles/software/tasks/software/desktop.yaml b/roles/software/tasks/software/desktop.yaml new file mode 100644 index 0000000..5c523e0 --- /dev/null +++ b/roles/software/tasks/software/desktop.yaml @@ -0,0 +1,43 @@ +- name: install desktop packages + package: + state: present + name: + - firefox + - greetd-tuigreet + - grim + - kitty + - podman + - python-pywal + - sway + - telegram-desktop + - thunar + - waybar + - wofi + - xdg-user-dirs + +- name: install AUR packages + become: true + become_user: "{{ desktop_user }}" + shell: >- + paru -Sy --noconfirm {{ packages | join(' ') }} + vars: + packages: + - dracula-gtk-theme-full + - ttf-envy-code-r + +- name: greetd | configure | use tuigreet + ansible.builtin.lineinfile: + path: /etc/greetd/config.toml + regexp: '^command =' + line: command = "tuigreet --cmd sway" + +- name: greetd | enable systemd unit + systemd: + name: greetd + enabled: true + +- name: sway | reload if running + become: true + become_user: "{{ desktop_user }}" + shell: pidof sway && SWAYSOCK=$(ls /run/user/*/sway-ipc.*.sock | head -n 1) swaymsg reload + diff --git a/roles/software/tasks/software/graphics.yaml b/roles/software/tasks/software/graphics.yaml new file mode 100644 index 0000000..a2d7964 --- /dev/null +++ b/roles/software/tasks/software/graphics.yaml @@ -0,0 +1,7 @@ +- name: install graphics packages + package: + state: present + name: + - blender + - krita + - inkscape diff --git a/roles/software/tasks/software/minimal.yaml b/roles/software/tasks/software/minimal.yaml new file mode 100644 index 0000000..645e263 --- /dev/null +++ b/roles/software/tasks/software/minimal.yaml @@ -0,0 +1,7 @@ +- name: install minimal packages + package: + state: present + name: + - eza + - fzf + - ripgrep diff --git a/roles/software/tasks/software_desktop.yaml b/roles/software/tasks/software_desktop.yaml deleted file mode 100644 index beaefae..0000000 --- a/roles/software/tasks/software_desktop.yaml +++ /dev/null @@ -1,8 +0,0 @@ -- name: install desktop packages - package: - - bzip2 - - grim - - podman - - sway - - telegram-desktop - diff --git a/roles/software/tasks/software_gfx.yaml b/roles/software/tasks/software_gfx.yaml deleted file mode 100644 index 0830514..0000000 --- a/roles/software/tasks/software_gfx.yaml +++ /dev/null @@ -1,5 +0,0 @@ -- name: install graphics packages - package: - - blender - - krita - - inkscape