diff --git a/ansible/environments/laptop/host_vars/pixellinux b/ansible/environments/laptop/host_vars/pixellinux new file mode 100644 index 0000000..3b8594e --- /dev/null +++ b/ansible/environments/laptop/host_vars/pixellinux @@ -0,0 +1,37 @@ +os_flavor: "linux" +users: + talexander: + initialize: true + uid: 11235 + gid: 1000 + groups: + - name: wheel + - name: users + - name: docker + - name: libvirt + - name: uucp + authorized_keys: + - yubikey + - main_fido + - backup_fido + - homeassistant + gitconfig: "gitconfig_home" +zfs_snapshot_datasets: + - path: zroot/linux/archmain/be +install_graphics: true +graphics_driver: "intel" +build_user: + name: talexander + group: talexander +#wireguard_directory: odo +#enabled_wireguard: +# - wgh +# - drmario +# - colo +cputype: "intel" +hwpstate: true +cores: 4 +sway_conf_files: + - rofimoji +docker_storage_driver: overlay2 # alternatively zfs +docker_zfs_dataset: zroot/linux/archmain/docker diff --git a/ansible/environments/laptop/hosts b/ansible/environments/laptop/hosts index 604e8ec..36f0153 100644 --- a/ansible/environments/laptop/hosts +++ b/ansible/environments/laptop/hosts @@ -1,3 +1,4 @@ [gui] odolinux ansible_connection=local ansible_host=127.0.0.1 odofreebsd ansible_connection=local ansible_host=127.0.0.1 +pixellinux ansible_connection=local ansible_host=127.0.0.1 diff --git a/ansible/playbook.yaml b/ansible/playbook.yaml index 690048f..3192d10 100644 --- a/ansible/playbook.yaml +++ b/ansible/playbook.yaml @@ -121,6 +121,12 @@ roles: - framework_laptop +- hosts: pixellinux + vars: + ansible_become: True + roles: + - pixelbook + - hosts: odofreebsd vars: ansible_become: True diff --git a/ansible/roles/pixelbook/files/61-eve-keyboard.hwdb b/ansible/roles/pixelbook/files/61-eve-keyboard.hwdb new file mode 100644 index 0000000..a16fb57 --- /dev/null +++ b/ansible/roles/pixelbook/files/61-eve-keyboard.hwdb @@ -0,0 +1,4 @@ +evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGoogle:pnEve:pvr* + KEYBOARD_KEY_5d=delete + KEYBOARD_KEY_d8=leftmeta + KEYBOARD_KEY_db=capslock diff --git a/ansible/roles/pixelbook/files/pixelbook_keyboard_backlight_tmpfiles.conf b/ansible/roles/pixelbook/files/pixelbook_keyboard_backlight_tmpfiles.conf new file mode 100644 index 0000000..802b11f --- /dev/null +++ b/ansible/roles/pixelbook/files/pixelbook_keyboard_backlight_tmpfiles.conf @@ -0,0 +1,2 @@ +# Enable the pixelbook keyboard backlight. This seems to persist without needing the tmpfiles.d entry but it is here for clean installs of the machine. +w- /sys/class/leds/chromeos::kbd_backlight/brightness - - - - 100 diff --git a/ansible/roles/pixelbook/tasks/common.yaml b/ansible/roles/pixelbook/tasks/common.yaml new file mode 100644 index 0000000..bef243a --- /dev/null +++ b/ansible/roles/pixelbook/tasks/common.yaml @@ -0,0 +1,55 @@ +# - name: Create directories +# file: +# name: "{{ item }}" +# state: directory +# mode: 0755 +# owner: root +# group: wheel +# loop: +# - /foo/bar + +# - name: Install scripts +# copy: +# src: "files/{{ item.src }}" +# dest: "{{ item.dest }}" +# mode: 0755 +# owner: root +# group: wheel +# loop: +# - src: foo.bash +# dest: /usr/local/bin/foo + +# - name: Install Configuration +# copy: +# src: "files/{{ item.src }}" +# dest: "{{ item.dest }}" +# mode: 0600 +# owner: root +# group: wheel +# loop: +# - src: foo.conf +# dest: /usr/local/etc/foo.conf + +# - name: Clone Source +# git: +# repo: "https://foo.bar/baz.git" +# dest: /foo/bar +# version: "v1.0.2" +# force: true +# diff: false + +- import_tasks: tasks/freebsd.yaml + when: 'os_flavor == "freebsd"' + +- import_tasks: tasks/linux.yaml + when: 'os_flavor == "linux"' + +- include_tasks: + file: tasks/peruser.yaml + apply: + become: yes + become_user: "{{ initialize_user }}" + when: users is defined + loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}" + loop_control: + loop_var: initialize_user diff --git a/ansible/roles/pixelbook/tasks/freebsd.yaml b/ansible/roles/pixelbook/tasks/freebsd.yaml new file mode 100644 index 0000000..b417174 --- /dev/null +++ b/ansible/roles/pixelbook/tasks/freebsd.yaml @@ -0,0 +1,5 @@ +# - name: Install packages +# package: +# name: +# - foo +# state: present diff --git a/ansible/roles/pixelbook/tasks/linux.yaml b/ansible/roles/pixelbook/tasks/linux.yaml new file mode 100644 index 0000000..f7d49e4 --- /dev/null +++ b/ansible/roles/pixelbook/tasks/linux.yaml @@ -0,0 +1,20 @@ +- name: Install tmpfiles.d configuration + copy: + src: "files/{{ item }}_tmpfiles.conf" + dest: "/etc/tmpfiles.d/{{ item }}.conf" + mode: 0644 + owner: root + group: wheel + loop: + - pixelbook_keyboard_backlight + +- name: Install Configuration + copy: + src: "files/{{ item.src }}" + dest: "{{ item.dest }}" + mode: 0600 + owner: root + group: wheel + loop: + - src: 61-eve-keyboard.hwdb + dest: /etc/udev/hwdb.d/61-eve-keyboard.hwdb diff --git a/ansible/roles/pixelbook/tasks/main.yaml b/ansible/roles/pixelbook/tasks/main.yaml new file mode 100644 index 0000000..6805b9d --- /dev/null +++ b/ansible/roles/pixelbook/tasks/main.yaml @@ -0,0 +1,2 @@ +- import_tasks: tasks/common.yaml + # when: foo is defined diff --git a/ansible/roles/pixelbook/tasks/peruser.yaml b/ansible/roles/pixelbook/tasks/peruser.yaml new file mode 100644 index 0000000..111e886 --- /dev/null +++ b/ansible/roles/pixelbook/tasks/peruser.yaml @@ -0,0 +1,29 @@ +- include_role: + name: per_user + +# - name: Create directories +# file: +# name: "{{ account_homedir.stdout }}/{{ item }}" +# state: directory +# mode: 0700 +# owner: "{{ account_name.stdout }}" +# group: "{{ group_name.stdout }}" +# loop: +# - ".config/foo" + +# - name: Copy files +# copy: +# src: "files/{{ item.src }}" +# dest: "{{ account_homedir.stdout }}/{{ item.dest }}" +# mode: 0600 +# owner: "{{ account_name.stdout }}" +# group: "{{ group_name.stdout }}" +# loop: +# - src: foo.conf +# dest: .config/foo/foo.conf + +- import_tasks: tasks/peruser_freebsd.yaml + when: 'os_flavor == "freebsd"' + +- import_tasks: tasks/peruser_linux.yaml + when: 'os_flavor == "linux"' diff --git a/ansible/roles/pixelbook/tasks/peruser_freebsd.yaml b/ansible/roles/pixelbook/tasks/peruser_freebsd.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ansible/roles/pixelbook/tasks/peruser_linux.yaml b/ansible/roles/pixelbook/tasks/peruser_linux.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ansible/run.bash b/ansible/run.bash index 7021801..f050739 100755 --- a/ansible/run.bash +++ b/ansible/run.bash @@ -22,6 +22,8 @@ elif [ "$target" = "odolinux" ]; then ansible-playbook -v -i environments/laptop playbook.yaml --diff --limit odolinux "${@}" elif [ "$target" = "odofreebsd" ]; then ansible-playbook -v -i environments/laptop playbook.yaml --diff --limit odofreebsd "${@}" +elif [ "$target" = "pixellinux" ]; then + ansible-playbook -v -i environments/laptop playbook.yaml --diff --limit pixellinux "${@}" elif [ "$target" = "jail_nat_dhcp" ]; then ansible-playbook -v -i environments/jail playbook.yaml --diff --limit nat_dhcp "${@}" elif [ "$target" = "jail_homeserver_nat_dhcp" ]; then