Compare commits

...

3 Commits

Author SHA1 Message Date
Rasmus Rosengren 6d9c924764
Add CI 3 years ago
Rasmus Rosengren bdef040c31
Set static ip address during installation 3 years ago
Rasmus Rosengren cbddc81277
Moved everything too root 3 years ago
  1. 3
      .ansible-lint
  2. 21
      .drone.yml
  3. 0
      .yamllint
  4. 9
      README.md
  5. 0
      ansible.cfg
  6. 13
      ansible/install.yml
  7. 0
      group_vars/all/00-defaults.yml
  8. 0
      inventory/hosts.yml
  9. 0
      library/modules/mkinitcpio/mkinitcpio.py
  10. 13
      main.yml
  11. 2
      requirements.yml
  12. 1
      roles/audio/tasks/main.yml
  13. 0
      roles/base_packages/defaults/main.yml
  14. 0
      roles/base_packages/tasks/main.yml
  15. 1
      roles/bluetooth/tasks/main.yml
  16. 0
      roles/common_software/tasks/main.yml
  17. 0
      roles/configure/defaults/main.yml
  18. 13
      roles/configure/files/static.nmconnection
  19. 24
      roles/configure/tasks/main.yml
  20. 1
      roles/create_user/tasks/main.yml
  21. 0
      roles/disksetup/defaults/main.yml
  22. 0
      roles/disksetup/efi_gpt_btrfs/bootloader/files/grub
  23. 0
      roles/disksetup/efi_gpt_btrfs/bootloader/tasks/main.yml
  24. 1
      roles/disksetup/efi_gpt_btrfs/partitioning/defaults/main.yml
  25. 0
      roles/disksetup/efi_gpt_btrfs/partitioning/tasks/format-disk.yml
  26. 0
      roles/disksetup/efi_gpt_btrfs/partitioning/tasks/format-parts.yml
  27. 0
      roles/disksetup/efi_gpt_btrfs/partitioning/tasks/main.yml
  28. 0
      roles/disksetup/efi_gpt_btrfs/partitioning/tasks/mount.yml
  29. 0
      roles/disksetup/efi_gpt_btrfs/partitioning/tasks/mount_btrfs-subvolume.yml
  30. 0
      roles/disksetup/efi_gpt_btrfs/postpartitioning/tasks/main.yml
  31. 0
      roles/disksetup/efi_gpt_luks_btrfs/bootloader/files/grub
  32. 0
      roles/disksetup/efi_gpt_luks_btrfs/bootloader/tasks/main.yml
  33. 1
      roles/disksetup/efi_gpt_luks_btrfs/partitioning/defaults/main.yml
  34. 0
      roles/disksetup/efi_gpt_luks_btrfs/partitioning/tasks/format-disk.yml
  35. 0
      roles/disksetup/efi_gpt_luks_btrfs/partitioning/tasks/format-parts.yml
  36. 0
      roles/disksetup/efi_gpt_luks_btrfs/partitioning/tasks/luks.yml
  37. 0
      roles/disksetup/efi_gpt_luks_btrfs/partitioning/tasks/main.yml
  38. 0
      roles/disksetup/efi_gpt_luks_btrfs/partitioning/tasks/mount.yml
  39. 0
      roles/disksetup/efi_gpt_luks_btrfs/partitioning/tasks/mount_btrfs-subvolume.yml
  40. 0
      roles/disksetup/efi_gpt_luks_btrfs/postpartitioning/tasks/main.yml
  41. 0
      roles/disksetup/tasks/main.yml
  42. 1
      roles/display_manager/lightdm/tasks/main.yml
  43. 1
      roles/display_manager/tasks/main.yml
  44. 1
      roles/display_server/tasks/main.yml
  45. 1
      roles/display_server/xorg/tasks/main.yml
  46. 1
      roles/docker/tasks/main.yml
  47. 0
      roles/genfstab/tasks/main.yml
  48. 0
      roles/grub-mkconfig/tasks/main.yml
  49. 0
      roles/grub-theme/defaults/main.yml
  50. 0
      roles/grub-theme/tasks/main.yml
  51. 0
      roles/grub-theme/xenlism/tasks/main.yml
  52. 1
      roles/hostname/tasks/main.yml
  53. 0
      roles/locale/tasks/main.yml
  54. 0
      roles/localtime/tasks/main.yml
  55. 0
      roles/mullvad/tasks/main.yml
  56. 0
      roles/pacstrap/tasks/main.yml
  57. 1
      roles/paru/tasks/main.yml
  58. 0
      roles/passwordless_connection/tasks/main.yml
  59. 0
      roles/prep/tasks/main.yml
  60. 0
      roles/u2f/tasks/main.yml
  61. 1
      roles/window_manager/i3/tasks/main.yml
  62. 1
      roles/window_manager/tasks/main.yml
  63. 1
      roles/yubikey/tasks/main.yml

@ -0,0 +1,3 @@
---
skip_list:
- yaml

@ -0,0 +1,21 @@
---
kind: pipeline
type: docker
name: Lint
steps:
- name: yamllint
image: cytopia/yamllint
commands:
- yamllint .
- name: ansible-playbook syntax check
image: cytopia/ansible
commands:
- ansible-galaxy install -r requirements.yml
- ansible-playbook main.yml --syntax-check
- name: ansible-lint
image: cytopia/ansible-lint
commands:
- ansible-lint main.yml

@ -6,8 +6,7 @@ Boot the live iso and set a root password, something simple is fine as it's
changed to key based auth anyway. Find the ip address (e.g. by `ip a`) and
add to `inventory/hosts.yml` under the `all` group.
Enter the `ansible` directory. Before running any playbook, generate a new SSH
key-pair:
Before running any playbook, generate a new SSH key-pair:
```bash
$ ssh-keygen -t ed25519 -f .ssh/id_ed25519 -N ""
@ -20,4 +19,8 @@ $ ansible-playbook install.yml -k
```
When the `install` playbook finishes, wait for the restart. Then find the new
ip address and put in the inventory file under the `all` group
ip address and put in the inventory file under the `all` group. Then run:
```bash
$ ansible-playbook configure.yml
```

@ -1,13 +0,0 @@
---
- name: Install system.
hosts: all
roles:
- passwordless_connection
- prep
- disksetup
- configure
tasks:
- name: Reboot system
reboot:

@ -1,4 +1,17 @@
---
- name: Install system.
hosts: all
roles:
- passwordless_connection
- prep
- disksetup
- configure
tasks:
- name: Reboot system
reboot:
- name: Configure system.
hosts: all

@ -0,0 +1,2 @@
---
- src: kewlfft.aur

@ -1,3 +1,4 @@
---
- name: Install pulse audio packages.
become: true
become_user: "{{ user_name }}"

@ -1,3 +1,4 @@
---
- name: Install bluetooth packages.
become: true
become_user: "{{ user_name }}"

@ -0,0 +1,13 @@
[connection]
id=static
uuid=b47e7a95-b345-3725-ac60-1fd4ed350aab
type=ethernet
autoconnect-priority=999
interface-name={{ net_interface }}
[ipv4]
addresses={{ net_ip }}/24
gateway={{ net_gateway }}
dns={{ net_dns }}
dns-search=localhost
method=manual

@ -8,6 +8,30 @@
- fstrim.timer
changed_when: true
- name: Get primary network interface.
set_fact:
net_interface: '{{ ansible_interfaces | reject("match", "^lo$") | first }}'
- name: Set ip address.
set_fact:
net_ip: '{{ ansible_facts[net_interface]["ipv4"]["address"] }}'
- name: Set gateway.
set_fact:
net_gateway: '{{ (ansible_facts[net_interface]["ipv4"]["network"] | split("."))[:3] | join(".") }}.1'
- name: Set nameservers.
set_fact:
net_dns: '{{ ansible_facts["dns"]["nameservers"] | join(";") }};8.8.8.8;'
- name: Create static ip config.
template:
src: files/static.nmconnection
dest: "{{ partitioning_root_mount_point }}/etc/NetworkManager/system-connections/static.nmconnection"
owner: root
group: root
mode: 0600
- name: Make sure root's .ssh directory exists.
file:
state: directory

@ -1,3 +1,4 @@
---
- name: Allow wheel to sudo without password.
copy:
dest: /etc/sudoers.d/00-tmp-sudo-full-access

@ -19,6 +19,7 @@ partitioning_priv_esp_size: "{{ 512 * 1024 * 1024 }}"
# +-- @home (to be mmounted at /home)
# +-- ...
#
# yamllint disable-line rule:line-length
partitioning_priv_btrfs_subvolumes: "{{ partitioning_priv_core_btrfs_subvolumes + partitioning_priv_extra_btrfs_subvolumes }}"
# These subvolumes should always be present. DO NOT OVERRIDE.

@ -19,6 +19,7 @@ partitioning_priv_esp_size: "{{ 512 * 1024 * 1024 }}"
# +-- @home (to be mmounted at /home)
# +-- ...
#
# yamllint disable-line rule:line-length
partitioning_priv_btrfs_subvolumes: "{{ partitioning_priv_core_btrfs_subvolumes + partitioning_priv_extra_btrfs_subvolumes }}"
# These subvolumes should always be present. DO NOT OVERRIDE.

@ -1,3 +1,4 @@
---
- name: Include display manager strategy.
include_role:
name: "display_manager/{{ display_manager }}"

@ -1,3 +1,4 @@
---
- name: Include display server xorg.
include_role:
name: "display_server/xorg"

@ -1,3 +1,4 @@
---
- name: Install docker.
become: true
become_user: "{{ user_name }}"

@ -1,3 +1,4 @@
---
- name: Update /etc/hostname.
copy:
dest: /etc/hostname

@ -1,3 +1,4 @@
---
- name: Install rust.
pacman:
name: rustup

@ -1,3 +1,4 @@
---
- name: Include window manager strategy.
include_role:
name: "window_manager/{{ window_manager }}"

@ -1,3 +1,4 @@
---
- name: Install packages.
become: true
become_user: "{{ user_name }}"
Loading…
Cancel
Save