Compare commits
59 Commits
971ed7e75d
...
pixelbook
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
06de3fb0ac | ||
|
|
eaa05e13d0 | ||
|
|
98f6ca10ff | ||
|
|
675652044f | ||
|
|
c901defbf3 | ||
|
|
8bf7b7d489 | ||
|
|
6e772f1137 | ||
|
|
d7f99659f1 | ||
|
|
023e362896 | ||
|
|
c66327a31f | ||
|
|
423d057abd | ||
|
|
6061f61c16 | ||
|
|
f6bc39a7fb | ||
|
|
68e84fdd77 | ||
|
|
48bdb12e77 | ||
|
|
ec72d20455 | ||
|
|
7f47b1ca1b | ||
|
|
5fcb37591c | ||
|
|
3f0b8162b8 | ||
|
|
b90ec542de | ||
|
|
16b7a200de | ||
|
|
e3e7de8eb1 | ||
|
|
51e5917e43 | ||
|
|
2d260dec90 | ||
|
|
72a8d6f615 | ||
|
|
34ffd5c100 | ||
|
|
da36f1b3d8 | ||
|
|
1c922c2234 | ||
|
|
d56132618a | ||
|
|
575d4360f1 | ||
|
|
e7328f2865 | ||
|
|
6be5ad6b3d | ||
|
|
44d3cc61f5 | ||
|
|
d20ce1e4d4 | ||
|
|
ae43050061 | ||
|
|
7ecf2ef1b1 | ||
|
|
05c3b0c1dc | ||
|
|
fccb2312da | ||
|
|
47c36a82bf | ||
|
|
112cba2b8c | ||
|
|
1a017cfac7 | ||
|
|
eae6737d76 | ||
|
|
c652e60619 | ||
|
|
b94e13d63e | ||
|
|
68139849f6 | ||
|
|
8975324e7c | ||
|
|
e5fd4bf9e6 | ||
|
|
a0666e6904 | ||
|
|
a97378654e | ||
|
|
f28f542d4d | ||
|
|
9d118078ae | ||
|
|
c2a0f90b4f | ||
|
|
6f3c5ca025 | ||
|
|
49fa0eb9cc | ||
|
|
e4b10e7260 | ||
|
|
a536defe9a | ||
|
|
c7b8b4c510 | ||
|
|
34cd3b7aa4 | ||
|
|
1f18074e29 |
@@ -18,6 +18,7 @@ hwpstate: false
|
|||||||
build_user:
|
build_user:
|
||||||
name: talexander
|
name: talexander
|
||||||
group: talexander
|
group: talexander
|
||||||
|
devfs_rules: "homeserver_devfs.rules"
|
||||||
jail_zfs_dataset: zmass/encrypted/jails
|
jail_zfs_dataset: zmass/encrypted/jails
|
||||||
jail_zfs_dataset_mountpoint: /jail/main
|
jail_zfs_dataset_mountpoint: /jail/main
|
||||||
jail_canmount: "on"
|
jail_canmount: "on"
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ loader_conf: "odofreebsd_loader.conf"
|
|||||||
install_graphics: true
|
install_graphics: true
|
||||||
graphics_driver: "intel"
|
graphics_driver: "intel"
|
||||||
cputype: "intel"
|
cputype: "intel"
|
||||||
cpu_opt: tigerlake
|
cpu_opt: skylake
|
||||||
hwpstate: true
|
hwpstate: true
|
||||||
cores: 8
|
cores: 4
|
||||||
build_user:
|
build_user:
|
||||||
name: talexander
|
name: talexander
|
||||||
group: talexander
|
group: talexander
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ enabled_wireguard:
|
|||||||
- colo
|
- colo
|
||||||
cputype: "intel"
|
cputype: "intel"
|
||||||
hwpstate: true
|
hwpstate: true
|
||||||
cores: 8
|
cores: 4
|
||||||
sway_conf_files:
|
sway_conf_files:
|
||||||
- rofimoji
|
- rofimoji
|
||||||
docker_storage_driver: zfs # alternatively overlay2
|
docker_storage_driver: overlay2 # alternatively zfs
|
||||||
docker_zfs_dataset: zroot/linux/archmain/docker
|
docker_zfs_dataset: zroot/linux/archmain/docker
|
||||||
|
|||||||
35
ansible/environments/laptop/host_vars/pixellinux
Normal file
35
ansible/environments/laptop/host_vars/pixellinux
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
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: pixel
|
||||||
|
enabled_wireguard:
|
||||||
|
- wgh
|
||||||
|
cputype: "intel"
|
||||||
|
hwpstate: true
|
||||||
|
cores: 4
|
||||||
|
sway_conf_files:
|
||||||
|
- rofimoji
|
||||||
|
docker_storage_driver: overlay2 # alternatively zfs
|
||||||
|
docker_zfs_dataset: zroot/linux/archmain/docker
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
[gui]
|
[gui]
|
||||||
odolinux ansible_connection=local ansible_host=127.0.0.1
|
odolinux ansible_connection=local ansible_host=127.0.0.1
|
||||||
odofreebsd 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
|
||||||
|
|||||||
5
ansible/environments/vm/host_vars/freebsdupdatemrmanager
Normal file
5
ansible/environments/vm/host_vars/freebsdupdatemrmanager
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
os_flavor: "freebsd"
|
||||||
|
cpu_opt: skylake
|
||||||
|
build_user:
|
||||||
|
name: root
|
||||||
|
group: wheel
|
||||||
@@ -1,9 +1,13 @@
|
|||||||
[vm]
|
[vm]
|
||||||
poudriereodo ansible_user=builder ansible_host=10.213.177.12
|
poudriereodo ansible_user=builder ansible_host=10.213.177.12
|
||||||
poudrieremrmanager ansible_user=root ansible_host=poudriere
|
poudrieremrmanager ansible_user=root ansible_host=poudriere
|
||||||
|
freebsdupdatemrmanager ansible_user=root ansible_host=freebsdupdate
|
||||||
#
|
#
|
||||||
# Put in ~/.ssh/config
|
# Put in ~/.ssh/config
|
||||||
# Host poudriere
|
# Host poudriere
|
||||||
# ProxyJump talexander@mrmanager
|
# ProxyJump talexander@mrmanager
|
||||||
# HostName 10.215.1.203
|
# HostName 10.215.1.203
|
||||||
#
|
#
|
||||||
|
# Host freebsdupdate
|
||||||
|
# ProxyJump talexander@mrmanager
|
||||||
|
# HostName 10.215.1.213
|
||||||
|
|||||||
@@ -52,6 +52,7 @@
|
|||||||
- javascript
|
- javascript
|
||||||
- launch_keyboard
|
- launch_keyboard
|
||||||
- lvfs
|
- lvfs
|
||||||
|
- restaurant_health_rating
|
||||||
|
|
||||||
- hosts: nat_dhcp:homeserver_nat_dhcp:mrmanager_nat_dhcp
|
- hosts: nat_dhcp:homeserver_nat_dhcp:mrmanager_nat_dhcp
|
||||||
vars:
|
vars:
|
||||||
@@ -68,6 +69,7 @@
|
|||||||
- portshaker
|
- portshaker
|
||||||
- poudriere
|
- poudriere
|
||||||
- poudrierenginx
|
- poudrierenginx
|
||||||
|
- freebsd_update_server
|
||||||
|
|
||||||
- hosts: mrmanager
|
- hosts: mrmanager
|
||||||
vars:
|
vars:
|
||||||
@@ -118,3 +120,31 @@
|
|||||||
ansible_become: True
|
ansible_become: True
|
||||||
roles:
|
roles:
|
||||||
- framework_laptop
|
- framework_laptop
|
||||||
|
|
||||||
|
- hosts: pixellinux
|
||||||
|
vars:
|
||||||
|
ansible_become: True
|
||||||
|
roles:
|
||||||
|
- pixelbook
|
||||||
|
|
||||||
|
- hosts: odofreebsd
|
||||||
|
vars:
|
||||||
|
ansible_become: True
|
||||||
|
roles:
|
||||||
|
- freebsd_update_server
|
||||||
|
|
||||||
|
- hosts: freebsdupdatemrmanager
|
||||||
|
vars:
|
||||||
|
ansible_become: True
|
||||||
|
roles:
|
||||||
|
- sudo # for poudboot script
|
||||||
|
- doas
|
||||||
|
- fstab
|
||||||
|
- build
|
||||||
|
- freebsd_update_server
|
||||||
|
|
||||||
|
- hosts: homeserver
|
||||||
|
vars:
|
||||||
|
ansible_become: True
|
||||||
|
roles:
|
||||||
|
- homeserver
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
# $FreeBSD$
|
|
||||||
#
|
#
|
||||||
# Automounter master map, see auto_master(5) for details.
|
# Automounter master map, see auto_master(5) for details.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
# This file controls resource limits, accounting limits and
|
# This file controls resource limits, accounting limits and
|
||||||
# default user environment settings.
|
# default user environment settings.
|
||||||
#
|
#
|
||||||
# $FreeBSD$
|
|
||||||
#
|
#
|
||||||
|
|
||||||
# Default settings effectively disable resource limits, see the
|
# Default settings effectively disable resource limits, see the
|
||||||
|
|||||||
@@ -1,3 +1,43 @@
|
|||||||
|
# - 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
|
- import_tasks: tasks/freebsd.yaml
|
||||||
when: 'os_flavor == "freebsd"'
|
when: 'os_flavor == "freebsd"'
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
freebsd_version: "releng/13.2"
|
# freebsd_version: "releng/13.2"
|
||||||
|
freebsd_version: "9c80d66ec1b4c5b9ac7aaf5b0fdbb1628d49c181"
|
||||||
|
|||||||
@@ -1,34 +1,27 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
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
|
3aqYpMRxpn2t6Nswax1MIM8DBQ==
|
||||||
hDgLwD5SJBvzHSTXPYOZMoh+BBgWCAAmAhsgFiEEuEgVk2PCh3kXlUvhJ95A2bhF
|
=dzEV
|
||||||
XBsFAl+w+hYFCQe4fZUACgkQJ95A2bhFXBs3NgEA3SFYTgRVstidfoEpEZV4DdSL
|
|
||||||
kXaOwN3Eyba4UniClyMA/2CCxQt24vu19TyvUtOXWCp9Zi8SyIqoeiXQ4ZmhhnQO
|
|
||||||
uDgEXZwXKBIKKwYBBAGXVQEFAQEHQA7S3cFTEu6iROopVyF4UBl3hQrEAbOc9CW+
|
|
||||||
xXKFZYgSAwEIB4h+BBgWCAAmAhsMFiEEuEgVk2PCh3kXlUvhJ95A2bhFXBsFAl+w
|
|
||||||
+hcFCQe4fW4ACgkQJ95A2bhFXBtUXAEAyEJCUNVSJ7qvQv5IXuwbYTX2Mh7JU3+F
|
|
||||||
GJHO7AWBXCQA/2aLAi9kYmz9ba770XYwTeBZIv9Y6UIwIwVmFdYHC/EM
|
|
||||||
=a/z4
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|||||||
@@ -31,10 +31,11 @@ Architecture = auto
|
|||||||
# Misc options
|
# Misc options
|
||||||
#UseSyslog
|
#UseSyslog
|
||||||
#Color
|
#Color
|
||||||
#TotalDownload
|
NoProgressBar
|
||||||
# We cannot check disk space from within a chroot environment
|
# We cannot check disk space from within a chroot environment
|
||||||
#CheckSpace
|
#CheckSpace
|
||||||
#VerbosePkgLists
|
VerbosePkgLists
|
||||||
|
ParallelDownloads = 5
|
||||||
|
|
||||||
# By default, pacman accepts packages signed by keys that its local keyring
|
# 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.
|
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||||
@@ -69,32 +70,24 @@ LocalFileSigLevel = Optional
|
|||||||
# repo name header and Include lines. You can add preferred servers immediately
|
# repo name header and Include lines. You can add preferred servers immediately
|
||||||
# after the header, and they will be used before the default mirrors.
|
# after the header, and they will be used before the default mirrors.
|
||||||
|
|
||||||
#[testing]
|
#[core-testing]
|
||||||
#Include = /etc/pacman.d/mirrorlist
|
#Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[core]
|
[core]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
|
#[extra-testing]
|
||||||
|
#Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
#[community-testing]
|
|
||||||
#Include = /etc/pacman.d/mirrorlist
|
|
||||||
|
|
||||||
[community]
|
|
||||||
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
|
# An example of a custom package repository. See the pacman manpage for
|
||||||
# tips on creating your own repositories.
|
# tips on creating your own repositories.
|
||||||
#[custom]
|
#[custom]
|
||||||
#SigLevel = Optional TrustAll
|
#SigLevel = Optional TrustAll
|
||||||
#Server = file:///home/custompkgs
|
#Server = file:///home/custompkgs
|
||||||
|
|
||||||
|
[custom]
|
||||||
|
SigLevel = Required
|
||||||
|
Server = file:///var/cache/pacman/custom
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- users
|
- role: users
|
||||||
- gpg
|
when: 'os_flavor == "linux"'
|
||||||
|
- role: gpg
|
||||||
|
when: 'os_flavor == "linux"'
|
||||||
|
|||||||
@@ -3,12 +3,3 @@
|
|||||||
|
|
||||||
- import_tasks: tasks/linux.yaml
|
- import_tasks: tasks/linux.yaml
|
||||||
when: 'os_flavor == "linux"'
|
when: 'os_flavor == "linux"'
|
||||||
|
|
||||||
- include_tasks:
|
|
||||||
file: tasks/peruser.yaml
|
|
||||||
apply:
|
|
||||||
become: yes
|
|
||||||
become_user: "{{ initialize_user }}"
|
|
||||||
loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
|
|
||||||
loop_control:
|
|
||||||
loop_var: initialize_user
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@
|
|||||||
become: true
|
become: true
|
||||||
become_user: "{{ build_user.name }}"
|
become_user: "{{ build_user.name }}"
|
||||||
args:
|
args:
|
||||||
creates: /var/cache/pacman/custom/custom.db.tar
|
creates: /var/cache/pacman/custom/custom.db.tar.sig
|
||||||
|
|
||||||
- name: Install scripts
|
- name: Install scripts
|
||||||
copy:
|
copy:
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ KERNCONF=CUSTOM
|
|||||||
WITH_MALLOC_PRODUCTION=YES
|
WITH_MALLOC_PRODUCTION=YES
|
||||||
WITHOUT_LLVM_ASSERTIONS=YES
|
WITHOUT_LLVM_ASSERTIONS=YES
|
||||||
WITH_REPRODUCIBLE_BUILD=YES
|
WITH_REPRODUCIBLE_BUILD=YES
|
||||||
PORTS_MODULES+=graphics/drm-510-kmod
|
PORTS_MODULES+=graphics/drm-kmod
|
||||||
NO_SHARED=YES
|
PORTS_MODULES+=graphics/gpu-firmware-intel-kmod
|
||||||
|
PORTS_MODULES+=net/wireguard-kmod
|
||||||
|
|
||||||
# Would be fun to experiment with:
|
# Would be fun to experiment with:
|
||||||
# WITHOUT_SOURCELESS=YES
|
# WITHOUT_SOURCELESS=YES
|
||||||
# WITHOUT_SHARED_TOOLCHAIN=YES
|
|
||||||
# WITHOUT_GAMES=YES
|
# WITHOUT_GAMES=YES
|
||||||
# WITHOUT_KERBEROS=YES
|
# WITHOUT_KERBEROS=YES
|
||||||
# WITHOUT_LEGACY_CONSOLE=YES
|
# WITHOUT_LEGACY_CONSOLE=YES
|
||||||
|
|||||||
@@ -7,6 +7,12 @@ IFS=$'\n\t'
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
perc=$1
|
perc=$1
|
||||||
|
if [ "$perc" -gt 100 ]; then
|
||||||
|
perc=100
|
||||||
|
fi
|
||||||
|
if [ "$perc" -lt 0 ]; then
|
||||||
|
perc=0
|
||||||
|
fi
|
||||||
epp=$((100 - perc))
|
epp=$((100 - perc))
|
||||||
|
|
||||||
sysctl -N dev.hwpstate_intel | grep -E 'dev.hwpstate_intel.[0-9]+.epp' | while read var; do
|
sysctl -N dev.hwpstate_intel | grep -E 'dev.hwpstate_intel.[0-9]+.epp' | while read var; do
|
||||||
|
|||||||
@@ -8,15 +8,20 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|||||||
|
|
||||||
perc=$1
|
perc=$1
|
||||||
|
|
||||||
if [ $perc -gt 100 ]; then
|
if [ "$perc" -gt 100 ]; then
|
||||||
echo 0 | tee /sys/devices/system/cpu/intel_pstate/no_turbo
|
echo 0 | tee /sys/devices/system/cpu/intel_pstate/no_turbo
|
||||||
perc=100
|
|
||||||
else
|
else
|
||||||
echo 1 | tee /sys/devices/system/cpu/intel_pstate/no_turbo
|
echo 1 | tee /sys/devices/system/cpu/intel_pstate/no_turbo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $perc -lt 50 ]; then
|
if [ "$perc" -ge 80 ]; then
|
||||||
echo "power" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
|
||||||
else
|
|
||||||
echo "performance" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
echo "performance" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||||
|
elif [ "$perc" -ge 60 ]; then
|
||||||
|
echo "balance_performance" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||||
|
elif [ "$perc" -ge 40 ]; then
|
||||||
|
echo "default" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||||
|
elif [ "$perc" -ge 20 ]; then
|
||||||
|
echo "balance_power" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||||
|
else
|
||||||
|
echo "power" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -4,27 +4,27 @@
|
|||||||
- powertop
|
- powertop
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Install tmpfiles.d configuration
|
# - name: Install tmpfiles.d configuration
|
||||||
copy:
|
# copy:
|
||||||
src: "files/{{ item }}_tmpfiles.conf"
|
# src: "files/{{ item }}_tmpfiles.conf"
|
||||||
dest: "/etc/tmpfiles.d/{{ item }}.conf"
|
# dest: "/etc/tmpfiles.d/{{ item }}.conf"
|
||||||
mode: 0644
|
# mode: 0644
|
||||||
owner: root
|
# owner: root
|
||||||
group: wheel
|
# group: wheel
|
||||||
loop:
|
# loop:
|
||||||
- disable_turboboost
|
# - disable_turboboost
|
||||||
|
|
||||||
- name: Favor energy efficiency for Speed Shift
|
# - name: Favor energy efficiency for Speed Shift
|
||||||
when: hwpstate is defined and hwpstate and cores is defined
|
# when: hwpstate is defined and hwpstate and cores is defined
|
||||||
template:
|
# template:
|
||||||
src: "templates/{{ item.src }}.j2"
|
# src: "templates/{{ item.src }}.j2"
|
||||||
dest: "{{ item.dest }}"
|
# dest: "{{ item.dest }}"
|
||||||
mode: 0755
|
# mode: 0755
|
||||||
owner: root
|
# owner: root
|
||||||
group: wheel
|
# group: wheel
|
||||||
loop:
|
# loop:
|
||||||
- src: energy_performance_preference.conf
|
# - src: energy_performance_preference.conf
|
||||||
dest: /etc/tmpfiles.d/energy_performance_preference.conf
|
# dest: /etc/tmpfiles.d/energy_performance_preference.conf
|
||||||
|
|
||||||
- name: Install scripts
|
- name: Install scripts
|
||||||
when: hwpstate is defined and hwpstate
|
when: hwpstate is defined and hwpstate
|
||||||
|
|||||||
19
ansible/roles/devfs/files/homeserver_devfs.rules
Normal file
19
ansible/roles/devfs/files/homeserver_devfs.rules
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# [localrules=10]
|
||||||
|
# add path 'input/*' mode 0660 group video
|
||||||
|
# add path 'usb/*' mode 0660 group usb
|
||||||
|
|
||||||
|
[tajailwg=13]
|
||||||
|
add include $devfsrules_hide_all
|
||||||
|
add include $devfsrules_unhide_basic
|
||||||
|
add include $devfsrules_unhide_login
|
||||||
|
add path 'bpf*' unhide
|
||||||
|
add path pf unhide
|
||||||
|
add path pflog unhide
|
||||||
|
add path pfsynv unhide
|
||||||
|
add path 'tun*' unhide
|
||||||
|
|
||||||
|
[tajaildhcp=14]
|
||||||
|
add include $devfsrules_hide_all
|
||||||
|
add include $devfsrules_unhide_basic
|
||||||
|
add include $devfsrules_unhide_login
|
||||||
|
add path 'bpf*' unhide
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
(use-package diminish)
|
(use-package diminish)
|
||||||
|
|
||||||
;; Eglot recommends pulling the latest of the standard libraries it
|
;; Eglot recommends pulling the latest of the standard libraries it
|
||||||
;; uses from ELPA if you're not tracking the current emacs development
|
;; uses from ELPA if you're not tracking the current.config/emacsevelopment
|
||||||
;; branch.
|
;; branch.
|
||||||
(use-package xref
|
(use-package xref
|
||||||
:pin gnu
|
:pin gnu
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
;; This is an emacs built-in but we're pulling the latest version
|
;; This is an emacs built-in but we're pulling the latest version
|
||||||
:config
|
:config
|
||||||
(setq recentf-max-saved-items 100)
|
(setq recentf-max-saved-items 100)
|
||||||
(setq recentf-save-file (recentf-expand-file-name "~/.emacs.d/private/cache/recentf"))
|
(setq recentf-save-file (recentf-expand-file-name "~/.config/emacs/private/cache/recentf"))
|
||||||
(recentf-mode 1))
|
(recentf-mode 1))
|
||||||
|
|
||||||
;; Persist history over Emacs restarts. Vertico sorts by history position.
|
;; Persist history over Emacs restarts. Vertico sorts by history position.
|
||||||
|
|||||||
@@ -55,6 +55,14 @@
|
|||||||
))
|
))
|
||||||
(mapc load-it (directory-files dir nil "\\.el$"))))
|
(mapc load-it (directory-files dir nil "\\.el$"))))
|
||||||
|
|
||||||
|
(defun generate-vc-link ()
|
||||||
|
(interactive)
|
||||||
|
(or
|
||||||
|
(generate-github-link)
|
||||||
|
(generate-source-hut-link)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
(defun generate-github-link ()
|
(defun generate-github-link ()
|
||||||
"Generate a permalink to the current line."
|
"Generate a permalink to the current line."
|
||||||
(interactive)
|
(interactive)
|
||||||
@@ -69,10 +77,37 @@
|
|||||||
(let* (
|
(let* (
|
||||||
(gh-org (match-string 2 repository-url))
|
(gh-org (match-string 2 repository-url))
|
||||||
(gh-repo (match-string 3 repository-url))
|
(gh-repo (match-string 3 repository-url))
|
||||||
(full-url (format "https://github.com/%s/%s/blob/%s/%s#L%s" gh-org gh-repo current-rev relative-path line-number))
|
(full-url (format "https://github.com/%s/%s/blob/%s/%s?plain=1#L%s" gh-org gh-repo current-rev relative-path line-number))
|
||||||
)
|
)
|
||||||
(message "%s" full-url)
|
(message "%s" full-url)
|
||||||
(kill-new full-url)
|
(kill-new full-url)
|
||||||
|
t
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun generate-source-hut-link ()
|
||||||
|
"Generate a permalink to the current line."
|
||||||
|
(interactive)
|
||||||
|
(let (
|
||||||
|
(current-rev (vc-working-revision buffer-file-name))
|
||||||
|
(line-number (line-number-at-pos))
|
||||||
|
(repository-url (vc-git-repository-url buffer-file-name))
|
||||||
|
(relative-path (file-relative-name buffer-file-name (vc-root-dir)))
|
||||||
|
)
|
||||||
|
(message "Using repo url %s" repository-url)
|
||||||
|
(save-match-data
|
||||||
|
(and (string-match "https://git.sr.ht/\\([^/]+\\)/\\([^/]+\\)" repository-url)
|
||||||
|
(let* (
|
||||||
|
(sh-org (match-string 1 repository-url))
|
||||||
|
(sh-repo (match-string 2 repository-url))
|
||||||
|
(full-url (format "https://git.sr.ht/%s/%s/tree/%s/%s#L%s" sh-org sh-repo current-rev relative-path line-number))
|
||||||
|
)
|
||||||
|
(message "%s" full-url)
|
||||||
|
(kill-new full-url)
|
||||||
|
t
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,6 +7,6 @@
|
|||||||
;; dabbrev-expand. Seems to be some sort of dumb-expand. Accidentally hitting it when trying to use M-?
|
;; dabbrev-expand. Seems to be some sort of dumb-expand. Accidentally hitting it when trying to use M-?
|
||||||
(global-unset-key (kbd "M-/"))
|
(global-unset-key (kbd "M-/"))
|
||||||
|
|
||||||
(global-set-key (kbd "C-x g l") 'generate-github-link)
|
(global-set-key (kbd "C-x g l") 'generate-vc-link)
|
||||||
|
|
||||||
(provide 'base-global-keys)
|
(provide 'base-global-keys)
|
||||||
|
|||||||
@@ -53,16 +53,25 @@
|
|||||||
use-short-answers t
|
use-short-answers t
|
||||||
;; Natively compile packages
|
;; Natively compile packages
|
||||||
package-native-compile t
|
package-native-compile t
|
||||||
;; Typed text replaces selection
|
|
||||||
delete-selection-mode t
|
|
||||||
;; Confirm when opening a file that does not exist
|
;; Confirm when opening a file that does not exist
|
||||||
confirm-nonexistent-file-or-buffer t
|
confirm-nonexistent-file-or-buffer t
|
||||||
|
;; Do not require double space to end a sentence.
|
||||||
|
sentence-end-double-space nil
|
||||||
|
;; Show trailing whitespace
|
||||||
|
show-trailing-whitespace t
|
||||||
|
;; Remove the line when killing it with ctrl-k
|
||||||
|
kill-whole-line t
|
||||||
)
|
)
|
||||||
|
|
||||||
;; (setq-default fringes-outside-margins t)
|
;; (setq-default fringes-outside-margins t)
|
||||||
|
|
||||||
|
;; Per-pixel scrolling instead of per-line
|
||||||
(pixel-scroll-precision-mode)
|
(pixel-scroll-precision-mode)
|
||||||
|
|
||||||
|
;; Typed text replaces selection
|
||||||
|
(delete-selection-mode)
|
||||||
|
|
||||||
|
|
||||||
;; Delete trailing whitespace before save
|
;; Delete trailing whitespace before save
|
||||||
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||||
|
|
||||||
|
|||||||
@@ -10,13 +10,13 @@
|
|||||||
;; C-M-.
|
;; C-M-.
|
||||||
([remap xref-find-apropos] . #'consult-eglot-symbols)
|
([remap xref-find-apropos] . #'consult-eglot-symbols)
|
||||||
)
|
)
|
||||||
:hook (
|
;; :hook (
|
||||||
(eglot-managed-mode . (lambda ()
|
;; (eglot-managed-mode . (lambda ()
|
||||||
(when (eglot-managed-p)
|
;; (when (eglot-managed-p)
|
||||||
(corfu-mode +1)
|
;; (corfu-mode +1)
|
||||||
)
|
;; )
|
||||||
))
|
;; ))
|
||||||
)
|
;; )
|
||||||
:config
|
:config
|
||||||
(fset #'jsonrpc--log-event #'ignore) ;; Disable logging LSP traffic for performance boost
|
(fset #'jsonrpc--log-event #'ignore) ;; Disable logging LSP traffic for performance boost
|
||||||
(set-face-attribute 'eglot-highlight-symbol-face nil :background "#0291a1" :foreground "black")
|
(set-face-attribute 'eglot-highlight-symbol-face nil :background "#0291a1" :foreground "black")
|
||||||
@@ -33,4 +33,14 @@
|
|||||||
:commands (consult-eglot-symbols)
|
:commands (consult-eglot-symbols)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(use-package company
|
||||||
|
:after eglot
|
||||||
|
:hook (eglot-managed-mode . company-mode)
|
||||||
|
:config
|
||||||
|
(setq company-backends '((company-capf)))
|
||||||
|
)
|
||||||
|
|
||||||
|
;; (use-package company-box
|
||||||
|
;; :hook (company-mode . company-box-mode))
|
||||||
|
|
||||||
(provide 'common-lsp)
|
(provide 'common-lsp)
|
||||||
|
|||||||
@@ -5,19 +5,25 @@
|
|||||||
:pin manual
|
:pin manual
|
||||||
:mode (
|
:mode (
|
||||||
("\\.go\\'" . go-ts-mode)
|
("\\.go\\'" . go-ts-mode)
|
||||||
("/go\\.mod\\'" . go-ts-mode)
|
("/go\\.mod\\'" . go-mod-ts-mode)
|
||||||
)
|
)
|
||||||
:commands (go-mode go-ts-mode)
|
:commands (go-ts-mode go-mod-ts-mode)
|
||||||
:hook (
|
:hook (
|
||||||
(go-ts-mode . (lambda ()
|
(go-ts-mode . (lambda ()
|
||||||
(when-linux
|
(when-linux
|
||||||
(eglot-ensure)
|
(eglot-ensure)
|
||||||
)
|
)
|
||||||
))
|
))
|
||||||
|
|
||||||
|
(go-mod-ts-mode . (lambda ()
|
||||||
|
(when-linux
|
||||||
|
(eglot-ensure)
|
||||||
|
)
|
||||||
|
))
|
||||||
|
|
||||||
;; (before-save . lsp-format-buffer)
|
;; (before-save . lsp-format-buffer)
|
||||||
)
|
)
|
||||||
:init
|
:init
|
||||||
(add-to-list 'major-mode-remap-alist '(go-mode . go-ts-mode))
|
|
||||||
(add-to-list 'treesit-language-source-alist '(go "https://github.com/tree-sitter/tree-sitter-go"))
|
(add-to-list 'treesit-language-source-alist '(go "https://github.com/tree-sitter/tree-sitter-go"))
|
||||||
(add-to-list 'treesit-language-source-alist '(gomod "https://github.com/camdencheek/tree-sitter-go-mod"))
|
(add-to-list 'treesit-language-source-alist '(gomod "https://github.com/camdencheek/tree-sitter-go-mod"))
|
||||||
(unless (treesit-ready-p 'go) (treesit-install-language-grammar 'go))
|
(unless (treesit-ready-p 'go) (treesit-install-language-grammar 'go))
|
||||||
|
|||||||
@@ -94,20 +94,20 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
;; (use-package web-mode
|
(use-package web-mode
|
||||||
;; :mode (("\\.dust\\'" . web-mode)
|
:mode (("\\.dust\\'" . dust-mode)
|
||||||
;; )
|
)
|
||||||
;; :config
|
:config
|
||||||
;; (setq web-mode-markup-indent-offset 2)
|
(setq web-mode-markup-indent-offset 2)
|
||||||
;; (setq web-mode-enable-current-element-highlight t)
|
(setq web-mode-enable-current-element-highlight t)
|
||||||
;; )
|
)
|
||||||
|
|
||||||
;; ;; Define a custom mode for dust so that org-mode handle #+BEGIN_SRC dust blocks
|
;; Define a custom mode for dust so that org-mode handle #+BEGIN_SRC dust blocks
|
||||||
;; (define-derived-mode dust-mode web-mode "WebDust"
|
(define-derived-mode dust-mode web-mode "WebDust"
|
||||||
;; "Major mode for editing dust templates in web-mode."
|
"Major mode for editing dust templates in web-mode."
|
||||||
;; (web-mode)
|
(web-mode)
|
||||||
;; (web-mode-set-engine "dust")
|
(web-mode-set-engine "dust")
|
||||||
;; ;; (setq web-mode-content-type "html")
|
;; (setq web-mode-content-type "html")
|
||||||
;; )
|
)
|
||||||
|
|
||||||
(provide 'lang-javascript)
|
(provide 'lang-javascript)
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
:init (setq markdown-command "multimarkdown"))
|
:init (setq markdown-command "multimarkdown"))
|
||||||
|
|
||||||
;; For code block editing
|
;; For code block editing
|
||||||
(use-package edit-indirect)
|
(use-package edit-indirect
|
||||||
|
:commands (edit-indirect-region edit-indirect-save edit-indirect-abort edit-indirect-commit edit-indirect-display-active-buffer)
|
||||||
|
)
|
||||||
|
|
||||||
(provide 'lang-markdown)
|
(provide 'lang-markdown)
|
||||||
|
|||||||
@@ -20,6 +20,9 @@
|
|||||||
org-confirm-babel-evaluate nil
|
org-confirm-babel-evaluate nil
|
||||||
)
|
)
|
||||||
|
|
||||||
|
;; Show the full source of org-mode links instead of condensing them. I.E. render "[[foo]]" instead of "foo"
|
||||||
|
(setq org-descriptive-links nil)
|
||||||
|
|
||||||
;; Only interpret _ and ^ and sub and superscripts if they're of the form _{subscript} and ^{superscript}
|
;; Only interpret _ and ^ and sub and superscripts if they're of the form _{subscript} and ^{superscript}
|
||||||
(setq org-export-with-sub-superscripts '{})
|
(setq org-export-with-sub-superscripts '{})
|
||||||
;; Don't include a "validate" link at the bottom of html export
|
;; Don't include a "validate" link at the bottom of html export
|
||||||
|
|||||||
@@ -38,14 +38,17 @@
|
|||||||
:hook (
|
:hook (
|
||||||
(rust-ts-mode . (lambda ()
|
(rust-ts-mode . (lambda ()
|
||||||
(eglot-ensure)
|
(eglot-ensure)
|
||||||
|
;; Disable on-type formatting which was incorrectly injecting parenthesis into my code.
|
||||||
|
(make-local-variable 'eglot-ignored-server-capabilities)
|
||||||
|
(add-to-list 'eglot-ignored-server-capabilities :documentOnTypeFormattingProvider)
|
||||||
|
;; Configure initialization options
|
||||||
(let ((rust-analyzer-command (locate-rust-analyzer)))
|
(let ((rust-analyzer-command (locate-rust-analyzer)))
|
||||||
(when rust-analyzer-command
|
(when rust-analyzer-command
|
||||||
;; (add-to-list 'eglot-server-programs `(rust-ts-mode . (,rust-analyzer-command)))
|
;; (add-to-list 'eglot-server-programs `(rust-ts-mode . (,rust-analyzer-command)))
|
||||||
(add-to-list 'eglot-server-programs `(rust-ts-mode . (,rust-analyzer-command :initializationOptions (:imports (:granularity (:enforce t :group "item")
|
(add-to-list 'eglot-server-programs `(rust-ts-mode . (,rust-analyzer-command :initializationOptions (:imports (:granularity (:enforce t :group "item")
|
||||||
:merge (:glob nil)
|
:merge (:glob nil)
|
||||||
:prefix "self")
|
:prefix "self")
|
||||||
:inlayHints (:maxLength nil)
|
))))
|
||||||
:workspace (:symbol (:search (:limit 1024)))))))
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(add-hook 'before-save-hook 'eglot-format-buffer nil 'local)
|
(add-hook 'before-save-hook 'eglot-format-buffer nil 'local)
|
||||||
|
|||||||
10
ansible/roles/emacs/files/elisp/util-flymake.el
Normal file
10
ansible/roles/emacs/files/elisp/util-flymake.el
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
(use-package flymake
|
||||||
|
:pin manual
|
||||||
|
:ensure nil
|
||||||
|
:commands (flymake-mode)
|
||||||
|
:config
|
||||||
|
;; Set the text before the brackets for flymake's modeline output to an empty string to make it less verbose.
|
||||||
|
(setq flymake-mode-line-lighter "")
|
||||||
|
)
|
||||||
|
|
||||||
|
(provide 'util-flymake)
|
||||||
@@ -46,11 +46,11 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package corfu
|
;; (use-package corfu
|
||||||
:commands (corfu-mode global-corfu-mode)
|
;; :commands (corfu-mode global-corfu-mode)
|
||||||
:custom
|
;; :custom
|
||||||
(corfu-auto t)
|
;; (corfu-auto t)
|
||||||
)
|
;; )
|
||||||
|
|
||||||
(use-package marginalia
|
(use-package marginalia
|
||||||
:config (marginalia-mode))
|
:config (marginalia-mode))
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
(require 'util-vertico)
|
(require 'util-vertico)
|
||||||
|
|
||||||
|
(require 'util-flymake)
|
||||||
|
|
||||||
(require 'lang-python)
|
(require 'lang-python)
|
||||||
|
|
||||||
(require 'lang-javascript)
|
(require 'lang-javascript)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
owner: "{{ account_name.stdout }}"
|
owner: "{{ account_name.stdout }}"
|
||||||
group: "{{ group_name.stdout }}"
|
group: "{{ group_name.stdout }}"
|
||||||
loop:
|
loop:
|
||||||
- ".emacs.d/elisp"
|
- ".config/emacs/elisp"
|
||||||
|
|
||||||
- name: Configure dotfiles
|
- name: Configure dotfiles
|
||||||
when: 'emacs_flavor == "full"'
|
when: 'emacs_flavor == "full"'
|
||||||
@@ -21,9 +21,9 @@
|
|||||||
group: "{{ group_name.stdout }}"
|
group: "{{ group_name.stdout }}"
|
||||||
loop:
|
loop:
|
||||||
- src: init.el
|
- src: init.el
|
||||||
dest: .emacs.d/init.el
|
dest: .config/emacs/init.el
|
||||||
- src: early-init.el
|
- src: early-init.el
|
||||||
dest: .emacs.d/early-init.el
|
dest: .config/emacs/early-init.el
|
||||||
|
|
||||||
- name: Configure dotfiles
|
- name: Configure dotfiles
|
||||||
when: 'emacs_flavor == "plain"'
|
when: 'emacs_flavor == "plain"'
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
group: "{{ group_name.stdout }}"
|
group: "{{ group_name.stdout }}"
|
||||||
loop:
|
loop:
|
||||||
- src: plainmacs_init.el
|
- src: plainmacs_init.el
|
||||||
dest: .emacs.d/init.el
|
dest: .config/emacs/init.el
|
||||||
|
|
||||||
- name: Configure elisp files
|
- name: Configure elisp files
|
||||||
when: 'emacs_flavor == "full"'
|
when: 'emacs_flavor == "full"'
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
group: "{{ group_name.stdout }}"
|
group: "{{ group_name.stdout }}"
|
||||||
loop:
|
loop:
|
||||||
- src: elisp
|
- src: elisp
|
||||||
dest: .emacs.d/
|
dest: .config/emacs/
|
||||||
|
|
||||||
- name: Configure zshrc additional imports
|
- name: Configure zshrc additional imports
|
||||||
copy:
|
copy:
|
||||||
|
|||||||
130
ansible/roles/freebsd_update_server/files/build_release.bash
Normal file
130
ansible/roles/freebsd_update_server/files/build_release.bash
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
: ${DATA_DIRECTORY:="/usr/local/share/freebsdupdate"}
|
||||||
|
: ${STAGE_FILE:="${DATA_DIRECTORY}/stage"}
|
||||||
|
: ${RELEASE_DIRECTORY:="${DATA_DIRECTORY}/release"}
|
||||||
|
: ${LOG_DIRECTORY:="${DATA_DIRECTORY}/logs"}
|
||||||
|
: ${PORTS_TREE:="/usr/ports"}
|
||||||
|
: ${PORTS_REPO:="https://git.FreeBSD.org/ports.git"}
|
||||||
|
|
||||||
|
############## Setup #########################
|
||||||
|
|
||||||
|
function die {
|
||||||
|
local status_code="$1"
|
||||||
|
shift
|
||||||
|
(>&2 echo "${@}")
|
||||||
|
exit "$status_code"
|
||||||
|
}
|
||||||
|
|
||||||
|
function log {
|
||||||
|
(>&2 echo "${@}")
|
||||||
|
}
|
||||||
|
|
||||||
|
############## Program #########################
|
||||||
|
|
||||||
|
function main {
|
||||||
|
assert_directories
|
||||||
|
|
||||||
|
local stage=""
|
||||||
|
if [ -e "$STAGE_FILE" ]; then
|
||||||
|
local stage=$(cat "$STAGE_FILE")
|
||||||
|
fi
|
||||||
|
if [ "$stage" = "selfbuild" ]; then
|
||||||
|
log_cmd stage_selfbuild
|
||||||
|
elif [ "$stage" = "selfinstallworld" ]; then
|
||||||
|
log_cmd stage_selfinstallworld
|
||||||
|
elif [ "$stage" = "selfconflictcheck" ]; then
|
||||||
|
log_cmd stage_selfconflictcheck
|
||||||
|
elif [ "$stage" = "releasebuild" ]; then
|
||||||
|
log_cmd stage_releasebuild
|
||||||
|
elif [ "$stage" = "done" ]; then
|
||||||
|
log_cmd stage_done
|
||||||
|
else
|
||||||
|
die 1 "Unhandled stage: \"$stage\"."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function log_cmd {
|
||||||
|
"${@}" |& tee "$LOG_DIRECTORY/$(date +%Y%m%d-%s).log"
|
||||||
|
}
|
||||||
|
|
||||||
|
function self_conflict_check {
|
||||||
|
if etcupdate status | grep -qE '^ C '; then
|
||||||
|
die 1 'Conflicts remain in etcupdate. Run `etcupdate resolve` to fix them first.'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function assert_directories {
|
||||||
|
for d in "$DATA_DIRECTORY" "$RELEASE_DIRECTORY" "$LOG_DIRECTORY"; do
|
||||||
|
if [ ! -e "$d" ]; then
|
||||||
|
mkdir -p "$d"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_ports_tree {
|
||||||
|
if [ ! -e "$PORTS_TREE" ]; then
|
||||||
|
mkdir -p $PORTS_TREE
|
||||||
|
git -C $PORTS_TREE init --initial-branch=main
|
||||||
|
git -C $PORTS_TREE remote add origin $PORTS_REPO
|
||||||
|
fi
|
||||||
|
git -C $PORTS_TREE fetch origin main # 'refs/heads/main'
|
||||||
|
git -C $PORTS_TREE checkout FETCH_HEAD
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_stage {
|
||||||
|
echo "${@}" > "$STAGE_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
function stage_selfbuild {
|
||||||
|
self_conflict_check
|
||||||
|
assert_directories
|
||||||
|
update_ports_tree
|
||||||
|
|
||||||
|
SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src clean
|
||||||
|
SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src buildworld buildkernel
|
||||||
|
SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src installkernel
|
||||||
|
|
||||||
|
set_stage "selfinstallworld"
|
||||||
|
/sbin/shutdown -r now
|
||||||
|
}
|
||||||
|
|
||||||
|
function stage_selfinstallworld {
|
||||||
|
etcupdate -p
|
||||||
|
SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src installworld
|
||||||
|
etcupdate -B
|
||||||
|
|
||||||
|
set_stage "selfconflictcheck"
|
||||||
|
stage_selfconflictcheck
|
||||||
|
}
|
||||||
|
|
||||||
|
function stage_selfconflictcheck {
|
||||||
|
self_conflict_check
|
||||||
|
set_stage "releasebuild"
|
||||||
|
/sbin/shutdown -r now
|
||||||
|
}
|
||||||
|
|
||||||
|
function stage_releasebuild {
|
||||||
|
local today=$(date +%Y%m%d)
|
||||||
|
local target_directory="${RELEASE_DIRECTORY}/${today}"
|
||||||
|
if [ -e "$target_directory" ]; then
|
||||||
|
die 1 "The release directory $target_directory already exists. Exiting."
|
||||||
|
fi
|
||||||
|
SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src clean
|
||||||
|
make -C /usr/src buildworld buildkernel
|
||||||
|
make -C /usr/src/release obj
|
||||||
|
make -C /usr/src/release release
|
||||||
|
mkdir -p "$target_directory"
|
||||||
|
make -C /usr/src/release install DESTDIR="$target_directory"
|
||||||
|
set_stage "done"
|
||||||
|
}
|
||||||
|
|
||||||
|
function stage_done {
|
||||||
|
log "Everything is done."
|
||||||
|
}
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
120
ansible/roles/freebsd_update_server/files/release.conf
Normal file
120
ansible/roles/freebsd_update_server/files/release.conf
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
|
||||||
|
## Redefine environment variables here to override prototypes
|
||||||
|
## defined in release.sh.
|
||||||
|
#load_chroot_env() { }
|
||||||
|
#load_target_env() { }
|
||||||
|
#buildenv_setup() { }
|
||||||
|
|
||||||
|
## Set the directory within which the release will be built.
|
||||||
|
CHROOTDIR="/scratch"
|
||||||
|
|
||||||
|
## Do not explicitly require the devel/git port to be installed.
|
||||||
|
#NOGIT=1
|
||||||
|
## Set the version control system host.
|
||||||
|
GITROOT="https://git.freebsd.org/"
|
||||||
|
GITSRC="src.git"
|
||||||
|
GITPORTS="ports.git"
|
||||||
|
|
||||||
|
## Set the src/, ports/, and doc/ branches or tags.
|
||||||
|
#SRCBRANCH="stable/13"
|
||||||
|
SRCBRANCH="main"
|
||||||
|
PORTBRANCH="main"
|
||||||
|
|
||||||
|
## Sample configuration for using git from ports.
|
||||||
|
#GITCMD="/usr/local/bin/git clone -q --branch main"
|
||||||
|
|
||||||
|
## Set to override the default target architecture.
|
||||||
|
#TARGET="amd64"
|
||||||
|
#TARGET_ARCH="amd64"
|
||||||
|
#KERNEL="GENERIC"
|
||||||
|
KERNEL="GENERIC-NODEBUG"
|
||||||
|
## Multiple kernels may be set.
|
||||||
|
#KERNEL="GENERIC XENHVM"
|
||||||
|
|
||||||
|
## Set to specify a custom make.conf and/or src.conf
|
||||||
|
#MAKE_CONF="/etc/local/make.conf"
|
||||||
|
MAKE_CONF="/etc/make.conf"
|
||||||
|
#SRC_CONF="/etc/local/src.conf"
|
||||||
|
SRC_CONF="/etc/src.conf"
|
||||||
|
|
||||||
|
## Set to use make(1) flags.
|
||||||
|
#MAKE_FLAGS="-s"
|
||||||
|
|
||||||
|
## Set to use world- and kernel-specific make(1) flags.
|
||||||
|
#WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
|
||||||
|
#KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
|
||||||
|
|
||||||
|
## Set miscellaneous 'make release' settings.
|
||||||
|
#NOPORTS=
|
||||||
|
#NOSRC=
|
||||||
|
#WITH_DVD=
|
||||||
|
#WITH_COMPRESSED_IMAGES=
|
||||||
|
|
||||||
|
## Set to '1' to disable multi-threaded xz(1) compression.
|
||||||
|
#XZ_THREADS=0
|
||||||
|
|
||||||
|
## Set when building embedded images.
|
||||||
|
#EMBEDDEDBUILD=
|
||||||
|
|
||||||
|
## Set to a list of ports required to build embedded system-on-chip
|
||||||
|
## images, such as sysutils/u-boot-rpi.
|
||||||
|
#EMBEDDEDPORTS=
|
||||||
|
|
||||||
|
## Set to the hardware platform of the target userland. This value
|
||||||
|
## is passed to make(1) to set the TARGET (value of uname -m) to cross
|
||||||
|
## build.
|
||||||
|
#EMBEDDED_TARGET=
|
||||||
|
|
||||||
|
## Set to the machine processor architecture of the target userland.
|
||||||
|
## This value is passed to make(1) to set the TARGET_ARCH (value of uname -p)
|
||||||
|
## to cross build.
|
||||||
|
#EMBEDDED_TARGET_ARCH=
|
||||||
|
|
||||||
|
## Set to skip the chroot environment buildworld/installworld/distribution
|
||||||
|
## step if it is expected the build environment will exist via alternate
|
||||||
|
## means.
|
||||||
|
#CHROOTBUILD_SKIP=
|
||||||
|
|
||||||
|
## Set to a non-empty value skip checkout or update of /usr/src in
|
||||||
|
## the chroot. This is intended for use when /usr/src already exists.
|
||||||
|
#SRC_UPDATE_SKIP=
|
||||||
|
|
||||||
|
## Set to a non-empty value skip checkout or update of /usr/ports in
|
||||||
|
## the chroot. This is intended for use when /usr/ports already exists.
|
||||||
|
#PORTS_UPDATE_SKIP=
|
||||||
|
|
||||||
|
## Set to pass additional flags to make(1) for the build chroot setup, such
|
||||||
|
## as TARGET/TARGET_ARCH.
|
||||||
|
#CHROOT_MAKEENV=
|
||||||
|
|
||||||
|
## Set to a non-empty value to build virtual machine images as part of the
|
||||||
|
## release build.
|
||||||
|
#WITH_VMIMAGES=
|
||||||
|
|
||||||
|
## Set to a non-empty value to compress virtual machine images with xz(1)
|
||||||
|
## as part of the release build.
|
||||||
|
#WITH_COMPRESSED_VMIMAGES=
|
||||||
|
|
||||||
|
## If WITH_VMIMAGES is set to a non-empty value, this is the name of the
|
||||||
|
## file to use for the installed userland/kernel.
|
||||||
|
#VMBASE="vm"
|
||||||
|
|
||||||
|
## If WITH_VMIMAGES is set to a non-empty value, this is the size of the
|
||||||
|
## virtual machine disk filesystem. Valid size values are described in
|
||||||
|
## the makefs(8) manual page.
|
||||||
|
#VMSIZE="20g"
|
||||||
|
|
||||||
|
## If WITH_VMIMAGES is set to a non-empty value, this is a list of disk
|
||||||
|
## image formats to create. Valid values are listed in the mkimg(1)
|
||||||
|
## manual page, as well as 'mkimg --formats' output.
|
||||||
|
#VMFORMATS="vhdf vmdk qcow2 raw"
|
||||||
|
|
||||||
|
## Set to a non-empty value to build virtual machine images for various
|
||||||
|
## cloud providers as part of the release build.
|
||||||
|
#WITH_CLOUDWARE=
|
||||||
|
|
||||||
|
## If WITH_CLOUDWARE is set to a non-empty value, this is a list of providers
|
||||||
|
## to create disk images.
|
||||||
|
#CLOUDWARE="EC2 GCE VAGRANT-VIRTUALBOX VAGRANT-VMWARE"
|
||||||
5
ansible/roles/freebsd_update_server/tasks/common.yaml
Normal file
5
ansible/roles/freebsd_update_server/tasks/common.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
- import_tasks: tasks/freebsd.yaml
|
||||||
|
when: 'os_flavor == "freebsd" and build_user is defined'
|
||||||
|
|
||||||
|
- import_tasks: tasks/linux.yaml
|
||||||
|
when: 'os_flavor == "linux"'
|
||||||
50
ansible/roles/freebsd_update_server/tasks/freebsd.yaml
Normal file
50
ansible/roles/freebsd_update_server/tasks/freebsd.yaml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
- name: Install packages
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- git
|
||||||
|
- tmux # For convenience
|
||||||
|
- htop # For convenience
|
||||||
|
- bash
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create directories
|
||||||
|
file:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
mode: 0755
|
||||||
|
owner: "{{ build_user.name }}"
|
||||||
|
group: "{{ build_user.group }}"
|
||||||
|
loop:
|
||||||
|
- /opt/freebsd_update_server
|
||||||
|
|
||||||
|
- name: Clone freebsd-update-build
|
||||||
|
git:
|
||||||
|
repo: "https://github.com/freebsd/freebsd-update-build.git"
|
||||||
|
dest: /opt/freebsd_update_server/freebsd-update-build
|
||||||
|
version: "28bb3ae7de9c1332fe8a366fb154a5b9faf37f49"
|
||||||
|
force: true
|
||||||
|
become: true
|
||||||
|
become_user: "{{ build_user.name }}"
|
||||||
|
diff: false
|
||||||
|
|
||||||
|
- name: Install Configuration
|
||||||
|
copy:
|
||||||
|
src: "files/{{ item.src }}"
|
||||||
|
dest: "{{ item.dest }}"
|
||||||
|
mode: 0600
|
||||||
|
owner: "{{ build_user.name }}"
|
||||||
|
group: "{{ build_user.group }}"
|
||||||
|
loop:
|
||||||
|
- src: release.conf
|
||||||
|
dest: /opt/freebsd_update_server/release.conf
|
||||||
|
|
||||||
|
- name: Install scripts
|
||||||
|
copy:
|
||||||
|
src: "files/{{ item.src }}"
|
||||||
|
dest: "{{ item.dest }}"
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: wheel
|
||||||
|
loop:
|
||||||
|
- src: build_release.bash
|
||||||
|
dest: /usr/local/bin/build_release
|
||||||
29
ansible/roles/freebsd_update_server/tasks/linux.yaml
Normal file
29
ansible/roles/freebsd_update_server/tasks/linux.yaml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# - name: Build aur packages
|
||||||
|
# register: buildaur
|
||||||
|
# become_user: "{{ build_user.name }}"
|
||||||
|
# command: "aurutils-sync --no-view {{ item }}"
|
||||||
|
# args:
|
||||||
|
# creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||||
|
# loop:
|
||||||
|
# - foo
|
||||||
|
|
||||||
|
# - name: Update cache
|
||||||
|
# when: buildaur.changed
|
||||||
|
# pacman:
|
||||||
|
# name: []
|
||||||
|
# state: present
|
||||||
|
# update_cache: true
|
||||||
|
|
||||||
|
# - name: Install packages
|
||||||
|
# package:
|
||||||
|
# name:
|
||||||
|
# - foo
|
||||||
|
# state: present
|
||||||
|
|
||||||
|
# - name: Enable services
|
||||||
|
# systemd:
|
||||||
|
# enabled: yes
|
||||||
|
# name: "{{ item }}"
|
||||||
|
# daemon_reload: yes
|
||||||
|
# loop:
|
||||||
|
# - foo.service
|
||||||
2
ansible/roles/freebsd_update_server/tasks/main.yaml
Normal file
2
ansible/roles/freebsd_update_server/tasks/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
- import_tasks: tasks/common.yaml
|
||||||
|
# when: foo is defined
|
||||||
@@ -3,13 +3,3 @@
|
|||||||
|
|
||||||
- import_tasks: tasks/linux.yaml
|
- import_tasks: tasks/linux.yaml
|
||||||
when: 'os_flavor == "linux"'
|
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
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
args:
|
args:
|
||||||
creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||||
loop:
|
loop:
|
||||||
- google-cloud-sdk
|
- google-cloud-cli
|
||||||
|
|
||||||
- name: Update cache
|
- name: Update cache
|
||||||
when: buildaur.changed
|
when: buildaur.changed
|
||||||
@@ -17,5 +17,5 @@
|
|||||||
- name: Install packages
|
- name: Install packages
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- google-cloud-sdk
|
- google-cloud-cli
|
||||||
state: present
|
state: present
|
||||||
|
|||||||
@@ -1,34 +1,27 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
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
|
3aqYpMRxpn2t6Nswax1MIM8DBQ==
|
||||||
hDgLwD5SJBvzHSTXPYOZMoh+BBgWCAAmAhsgFiEEuEgVk2PCh3kXlUvhJ95A2bhF
|
=dzEV
|
||||||
XBsFAl+w+hYFCQe4fZUACgkQJ95A2bhFXBs3NgEA3SFYTgRVstidfoEpEZV4DdSL
|
|
||||||
kXaOwN3Eyba4UniClyMA/2CCxQt24vu19TyvUtOXWCp9Zi8SyIqoeiXQ4ZmhhnQO
|
|
||||||
uDgEXZwXKBIKKwYBBAGXVQEFAQEHQA7S3cFTEu6iROopVyF4UBl3hQrEAbOc9CW+
|
|
||||||
xXKFZYgSAwEIB4h+BBgWCAAmAhsMFiEEuEgVk2PCh3kXlUvhJ95A2bhFXBsFAl+w
|
|
||||||
+hcFCQe4fW4ACgkQJ95A2bhFXBtUXAEAyEJCUNVSJ7qvQv5IXuwbYTX2Mh7JU3+F
|
|
||||||
GJHO7AWBXCQA/2aLAi9kYmz9ba770XYwTeBZIv9Y6UIwIwVmFdYHC/EM
|
|
||||||
=a/z4
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ use-standard-socket
|
|||||||
default-cache-ttl 600
|
default-cache-ttl 600
|
||||||
max-cache-ttl 7200
|
max-cache-ttl 7200
|
||||||
display :0
|
display :0
|
||||||
{% if install_graphics and os_flavor == "linux" %}
|
{% if install_graphics and os_flavor == "freebsd" %}
|
||||||
pinentry-program /usr/bin/pinentry-qt
|
|
||||||
{% elif install_graphics and os_flavor == "freebsd" %}
|
|
||||||
pinentry-program /usr/local/bin/pinentry-qt5
|
pinentry-program /usr/local/bin/pinentry-qt5
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
#enable_guc=2
|
||||||
|
#hw.i915kms.enable_guc=2
|
||||||
@@ -29,6 +29,7 @@
|
|||||||
group: wheel
|
group: wheel
|
||||||
loop:
|
loop:
|
||||||
- intel_power
|
- intel_power
|
||||||
|
- intel_hw_accel_video
|
||||||
|
|
||||||
- name: Install service configuration
|
- name: Install service configuration
|
||||||
copy:
|
copy:
|
||||||
|
|||||||
10
ansible/roles/homeserver/files/decrypt_disks.bash
Normal file
10
ansible/roles/homeserver/files/decrypt_disks.bash
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Decrypt and mount the disks after a fresh reboot.
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
zfs load-key -r zmass/encrypted
|
||||||
|
zfs mount -a
|
||||||
|
service bemount start
|
||||||
55
ansible/roles/homeserver/tasks/common.yaml
Normal file
55
ansible/roles/homeserver/tasks/common.yaml
Normal file
@@ -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
|
||||||
10
ansible/roles/homeserver/tasks/freebsd.yaml
Normal file
10
ansible/roles/homeserver/tasks/freebsd.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
- name: Install scripts
|
||||||
|
copy:
|
||||||
|
src: "files/{{ item.src }}"
|
||||||
|
dest: "{{ item.dest }}"
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: wheel
|
||||||
|
loop:
|
||||||
|
- src: decrypt_disks.bash
|
||||||
|
dest: /usr/local/bin/decrypt_disks
|
||||||
29
ansible/roles/homeserver/tasks/linux.yaml
Normal file
29
ansible/roles/homeserver/tasks/linux.yaml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# - name: Build aur packages
|
||||||
|
# register: buildaur
|
||||||
|
# become_user: "{{ build_user.name }}"
|
||||||
|
# command: "aurutils-sync --no-view {{ item }}"
|
||||||
|
# args:
|
||||||
|
# creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||||
|
# loop:
|
||||||
|
# - foo
|
||||||
|
|
||||||
|
# - name: Update cache
|
||||||
|
# when: buildaur.changed
|
||||||
|
# pacman:
|
||||||
|
# name: []
|
||||||
|
# state: present
|
||||||
|
# update_cache: true
|
||||||
|
|
||||||
|
# - name: Install packages
|
||||||
|
# package:
|
||||||
|
# name:
|
||||||
|
# - foo
|
||||||
|
# state: present
|
||||||
|
|
||||||
|
# - name: Enable services
|
||||||
|
# systemd:
|
||||||
|
# enabled: yes
|
||||||
|
# name: "{{ item }}"
|
||||||
|
# daemon_reload: yes
|
||||||
|
# loop:
|
||||||
|
# - foo.service
|
||||||
2
ansible/roles/homeserver/tasks/main.yaml
Normal file
2
ansible/roles/homeserver/tasks/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
- import_tasks: tasks/common.yaml
|
||||||
|
# when: foo is defined
|
||||||
@@ -78,6 +78,11 @@
|
|||||||
// brianai
|
// brianai
|
||||||
"hw-address": "06:a6:dc:59:78:12",
|
"hw-address": "06:a6:dc:59:78:12",
|
||||||
"ip-address": "10.215.1.215"
|
"ip-address": "10.215.1.215"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// freebsdupdate
|
||||||
|
"hw-address": "06:14:5c:92:3d:5b",
|
||||||
|
"ip-address": "10.215.1.213"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,19 @@
|
|||||||
|
- name: Build aur packages
|
||||||
|
register: buildaur
|
||||||
|
become_user: "{{ build_user.name }}"
|
||||||
|
command: "aurutils-sync --no-view {{ item }}"
|
||||||
|
args:
|
||||||
|
creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||||
|
loop:
|
||||||
|
- nvm
|
||||||
|
|
||||||
|
- name: Update cache
|
||||||
|
when: buildaur.changed
|
||||||
|
pacman:
|
||||||
|
name: []
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
|
||||||
- name: Install packages
|
- name: Install packages
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
- name: Install packages
|
- name: Install packages
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- youtube-dl
|
- yt-dlp
|
||||||
state: present
|
state: present
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
wlans_ath0="wlan0"
|
#wlans_ath0="wlan0"
|
||||||
|
wlans_iwm0="wlan0"
|
||||||
ifconfig_wlan0="WPA DHCP"
|
ifconfig_wlan0="WPA DHCP"
|
||||||
ifconfig_wlan0_ipv6="inet6 accept_rtadv"
|
ifconfig_wlan0_ipv6="inet6 accept_rtadv"
|
||||||
|
|||||||
4
ansible/roles/pixelbook/files/61-eve-keyboard.hwdb
Normal file
4
ansible/roles/pixelbook/files/61-eve-keyboard.hwdb
Normal file
@@ -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
|
||||||
BIN
ansible/roles/pixelbook/files/9d71-GOOGLE-EVEMAX-0-tplg.bin
Normal file
BIN
ansible/roles/pixelbook/files/9d71-GOOGLE-EVEMAX-0-tplg.bin
Normal file
Binary file not shown.
129
ansible/roles/pixelbook/files/HiFi.conf
Normal file
129
ansible/roles/pixelbook/files/HiFi.conf
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
SectionVerb {
|
||||||
|
EnableSequence [
|
||||||
|
cdev "hw:kblr55145663max"
|
||||||
|
|
||||||
|
cset "name='codec1_out mo hs_pb_in mi Switch' on"
|
||||||
|
cset "name='Left DAI Sel Mux' Left"
|
||||||
|
cset "name='Right DAI Sel Mux' Right"
|
||||||
|
cset "name='Left Speaker Volume' 3"
|
||||||
|
cset "name='Right Speaker Volume' 3"
|
||||||
|
cset "name='Left Digital Volume' 60"
|
||||||
|
cset "name='Right Digital Volume' 60"
|
||||||
|
cset "name='Left Spk Switch' on"
|
||||||
|
cset "name='Right Spk Switch' on"
|
||||||
|
cset "name='Left Boost Output Voltage' 0"
|
||||||
|
cset "name='Right Boost Output Voltage' 0"
|
||||||
|
cset "name='Left Current Limit' 7"
|
||||||
|
cset "name='Right Current Limit' 7"
|
||||||
|
cset "name='Headphone Playback Volume' 16"
|
||||||
|
cset "name='Headset Mic Switch' off"
|
||||||
|
cset "name='DMIC Switch' on"
|
||||||
|
cset "name='STO1 ADC MIXL ADC1 Switch' on"
|
||||||
|
cset "name='Pin5-Port0 Mux' 2"
|
||||||
|
cset "name='Pin5-Port1 Mux' 2"
|
||||||
|
cset "name='Pin5-Port2 Mux' 2"
|
||||||
|
cset "name='Pin6-Port0 Mux' 1"
|
||||||
|
cset "name='Pin6-Port1 Mux' 1"
|
||||||
|
cset "name='Pin6-Port2 Mux' 1"
|
||||||
|
cset "name='Pin7-Port0 Mux' 3"
|
||||||
|
cset "name='Pin7-Port1 Mux' 3"
|
||||||
|
cset "name='Pin7-Port2 Mux' 3"
|
||||||
|
cset "name='ADC Capture Volume' 35"
|
||||||
|
cset "name='ADC1 Capture Volume' 55"
|
||||||
|
cset "name='ADC2 Capture Volume' 55"
|
||||||
|
cset "name='DAC L Mux' STO DAC MIXL"
|
||||||
|
cset "name='DAC R Mux' STO DAC MIXR"
|
||||||
|
cset "name='STO1 DAC MIXL DAC L Switch' on"
|
||||||
|
cset "name='STO1 DAC MIXR DAC R Switch' on"
|
||||||
|
cset-tlv "name='spk_pb_in dsm 0 dsm_params params' /opt/google/dsm/dsmparam.bin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
SectionDevice."Speaker" {
|
||||||
|
Comment "Speaker"
|
||||||
|
|
||||||
|
Value {
|
||||||
|
PlaybackPCM "hw:kblr55145663max,0"
|
||||||
|
DspName "speaker_eq"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SectionDevice."Headphones" {
|
||||||
|
Comment "Headphones"
|
||||||
|
|
||||||
|
Value {
|
||||||
|
PlaybackPCM "hw:kblr55145663max,2"
|
||||||
|
MixerName "DAC"
|
||||||
|
JackDev "kbl-r5514-5663-max Headset Jack"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
EnableSequence [
|
||||||
|
cset "name='Headphone Jack Switch' on"
|
||||||
|
]
|
||||||
|
|
||||||
|
DisableSequence [
|
||||||
|
cset "name='Headphone Jack Switch' off"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
SectionDevice."Internal Mic" {
|
||||||
|
Comment "Internal Microphone"
|
||||||
|
|
||||||
|
Value {
|
||||||
|
CapturePCM "hw:kblr55145663max,4"
|
||||||
|
CaptureChannelMap "2 3 0 1 -1 -1 -1 -1 -1 -1 -1"
|
||||||
|
MixerName "ADC2"
|
||||||
|
DefaultNodeGain "2700"
|
||||||
|
CaptureChannels "4"
|
||||||
|
}
|
||||||
|
|
||||||
|
EnableSequence [
|
||||||
|
cset "name='Sto1 ADC MIXL DMIC Switch' on"
|
||||||
|
cset "name='Sto1 ADC MIXR DMIC Switch' on"
|
||||||
|
cset "name='Sto2 ADC MIXL DMIC Switch' on"
|
||||||
|
cset "name='Sto2 ADC MIXR DMIC Switch' on"
|
||||||
|
]
|
||||||
|
|
||||||
|
DisableSequence [
|
||||||
|
cset "name='Sto1 ADC MIXL DMIC Switch' off"
|
||||||
|
cset "name='Sto1 ADC MIXR DMIC Switch' off"
|
||||||
|
cset "name='Sto2 ADC MIXL DMIC Switch' off"
|
||||||
|
cset "name='Sto2 ADC MIXR DMIC Switch' off"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
SectionDevice."Mic" {
|
||||||
|
Comment "Headset Microphone"
|
||||||
|
|
||||||
|
Value {
|
||||||
|
CapturePCM "hw:kblr55145663max,1"
|
||||||
|
JackDev "kbl-r5514-5663-max Headset Jack"
|
||||||
|
}
|
||||||
|
|
||||||
|
EnableSequence [
|
||||||
|
cset "name='Headset Mic Switch' on"
|
||||||
|
]
|
||||||
|
|
||||||
|
DisableSequence [
|
||||||
|
cset "name='Headset Mic Switch' off"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
SectionDevice."HDMI1" {
|
||||||
|
Comment "HDMI 1"
|
||||||
|
|
||||||
|
Value {
|
||||||
|
PlaybackPCM "hw:kblr55145663max,6"
|
||||||
|
JackDev "kbl-r5514-5663-max HDMI/DP,pcm=6 Jack"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SectionDevice."HDMI2" {
|
||||||
|
Comment "HDMI 2"
|
||||||
|
|
||||||
|
Value {
|
||||||
|
PlaybackPCM "hw:kblr55145663max,7"
|
||||||
|
JackDev "kbl-r5514-5663-max HDMI/DP,pcm=7 Jack"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
ansible/roles/pixelbook/files/dsmparam.bin
Normal file
BIN
ansible/roles/pixelbook/files/dsmparam.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
ansible/roles/pixelbook/files/dsp_lib_dsm_core_spt_release.bin
Normal file
BIN
ansible/roles/pixelbook/files/dsp_lib_dsm_core_spt_release.bin
Normal file
Binary file not shown.
6
ansible/roles/pixelbook/files/kbl-r5514-5663-.conf
Normal file
6
ansible/roles/pixelbook/files/kbl-r5514-5663-.conf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Syntax 3
|
||||||
|
|
||||||
|
SectionUseCase."HiFi" {
|
||||||
|
File "HiFi.conf"
|
||||||
|
Comment "Default"
|
||||||
|
}
|
||||||
@@ -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
|
||||||
55
ansible/roles/pixelbook/tasks/common.yaml
Normal file
55
ansible/roles/pixelbook/tasks/common.yaml
Normal file
@@ -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
|
||||||
5
ansible/roles/pixelbook/tasks/freebsd.yaml
Normal file
5
ansible/roles/pixelbook/tasks/freebsd.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# - name: Install packages
|
||||||
|
# package:
|
||||||
|
# name:
|
||||||
|
# - foo
|
||||||
|
# state: present
|
||||||
57
ansible/roles/pixelbook/tasks/linux.yaml
Normal file
57
ansible/roles/pixelbook/tasks/linux.yaml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# Audio firmware from instructions at https://wiki.gentoo.org/wiki/Google_Pixelbook_(2017)#Audio
|
||||||
|
|
||||||
|
- name: Create directories
|
||||||
|
file:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: wheel
|
||||||
|
loop:
|
||||||
|
- /opt/google/dsm
|
||||||
|
- /usr/share/alsa/ucm2/Intel/kbl-r5514-5663-
|
||||||
|
- /usr/share/alsa/ucm2/conf.d/kbl-r5514-5663-
|
||||||
|
|
||||||
|
- 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
|
||||||
|
- src: 9d71-GOOGLE-EVEMAX-0-tplg.bin
|
||||||
|
dest: /lib/firmware/9d71-GOOGLE-EVEMAX-0-tplg.bin
|
||||||
|
- src: dsp_lib_dsm_core_spt_release.bin
|
||||||
|
dest: /lib/firmware/dsp_lib_dsm_core_spt_release.bin
|
||||||
|
- src: dsp_fw_C75061F3-F2B2-4DCC-8F9F-82ABB4131E66.bin
|
||||||
|
dest: /lib/firmware/intel/dsp_fw_C75061F3-F2B2-4DCC-8F9F-82ABB4131E66.bin
|
||||||
|
- src: dsmparam.bin
|
||||||
|
dest: /opt/google/dsm/dsmparam.bin
|
||||||
|
- src: HiFi.conf
|
||||||
|
dest: /usr/share/alsa/ucm2/Intel/kbl-r5514-5663-/HiFi.conf
|
||||||
|
- src: kbl-r5514-5663-.conf
|
||||||
|
dest: /usr/share/alsa/ucm2/Intel/kbl-r5514-5663-/kbl-r5514-5663-.conf
|
||||||
|
|
||||||
|
- name: Create symlinks
|
||||||
|
file:
|
||||||
|
src: "{{ item.src }}"
|
||||||
|
dest: "{{ item.dest }}"
|
||||||
|
owner: root
|
||||||
|
group: wheel
|
||||||
|
state: link
|
||||||
|
loop:
|
||||||
|
- src: /usr/share/alsa/ucm2/Intel/kbl-r5514-5663-/kbl-r5514-5663-.conf
|
||||||
|
dest: /usr/share/alsa/ucm2/conf.d/kbl-r5514-5663-/kbl-r5514-5663-.conf
|
||||||
2
ansible/roles/pixelbook/tasks/main.yaml
Normal file
2
ansible/roles/pixelbook/tasks/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
- import_tasks: tasks/common.yaml
|
||||||
|
# when: foo is defined
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
#
|
#
|
||||||
# Example from bottom of /usr/share/examples/etc/make.conf
|
# Example from bottom of /usr/share/examples/etc/make.conf
|
||||||
.if ${.CURDIR:N*/lang/gcc48*} && ${.CURDIR:N*/lang/gcc10*} && ${.CURDIR:N*/devel/qt6-base*}
|
.if ${.CURDIR:N*/lang/gcc48*} && ${.CURDIR:N*/lang/gcc10*} && ${.CURDIR:N*/devel/qt6-base*}
|
||||||
CPUTYPE?=tigerlake
|
CPUTYPE?=skylake
|
||||||
# CPUTYPE?=x86-64-v4
|
# CPUTYPE?=x86-64-v4
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ dns/coredns
|
|||||||
editors/emacs
|
editors/emacs
|
||||||
editors/mg
|
editors/mg
|
||||||
ftp/wget
|
ftp/wget
|
||||||
|
graphics/ImageMagick
|
||||||
graphics/drm-kmod
|
graphics/drm-kmod
|
||||||
graphics/evince
|
graphics/evince
|
||||||
graphics/gimp
|
graphics/gimp
|
||||||
|
|||||||
@@ -70,3 +70,4 @@ _caldavs._tcp IN SRV 0 1 443 caldav.fastmail.com
|
|||||||
|
|
||||||
home IN A 68.197.252.22
|
home IN A 68.197.252.22
|
||||||
opstunnel IN CNAME home.fizz.buzz.
|
opstunnel IN CNAME home.fizz.buzz.
|
||||||
|
stream IN CNAME home.fizz.buzz.
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ allow-dnsupdate-from=
|
|||||||
# Only notify ns1.he.net
|
# Only notify ns1.he.net
|
||||||
only-notify=216.218.130.2/32, 10.215.1.0/24
|
only-notify=216.218.130.2/32, 10.215.1.0/24
|
||||||
also-notify=216.218.130.2
|
also-notify=216.218.130.2
|
||||||
|
default-ttl=1800
|
||||||
|
|
||||||
# Autogenerated configuration file template
|
# Autogenerated configuration file template
|
||||||
|
|
||||||
|
|||||||
55
ansible/roles/restaurant_health_rating/tasks/common.yaml
Normal file
55
ansible/roles/restaurant_health_rating/tasks/common.yaml
Normal file
@@ -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
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- name: Install packages
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- ImageMagick7
|
||||||
|
state: present
|
||||||
6
ansible/roles/restaurant_health_rating/tasks/linux.yaml
Normal file
6
ansible/roles/restaurant_health_rating/tasks/linux.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
- name: Install packages
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- imagemagick
|
||||||
|
- web-ext
|
||||||
|
state: present
|
||||||
2
ansible/roles/restaurant_health_rating/tasks/main.yaml
Normal file
2
ansible/roles/restaurant_health_rating/tasks/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
- import_tasks: tasks/common.yaml
|
||||||
|
# when: foo is defined
|
||||||
29
ansible/roles/restaurant_health_rating/tasks/peruser.yaml
Normal file
29
ansible/roles/restaurant_health_rating/tasks/peruser.yaml
Normal file
@@ -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"'
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
# Check that rust-analyzer is valid for date on https://rust-lang.github.io/rustup-components-history/
|
# Check that rust-analyzer is valid for date on https://rust-lang.github.io/rustup-components-history/
|
||||||
rust_date: "2023-09-02"
|
rust_date: "2023-10-16"
|
||||||
|
|||||||
@@ -5,4 +5,5 @@
|
|||||||
- lldb # for lldb-vscode
|
- lldb # for lldb-vscode
|
||||||
- musl # for building static binaries
|
- musl # for building static binaries
|
||||||
- rust-analyzer
|
- rust-analyzer
|
||||||
|
- cargo-semver-checks
|
||||||
state: present
|
state: present
|
||||||
|
|||||||
@@ -14,6 +14,11 @@
|
|||||||
args:
|
args:
|
||||||
creates: "{{ account_homedir.stdout }}/.rustup/toolchains/nightly-{{ rust_date }}-x86_64-unknown-linux-gnu/lib/rustlib/manifest-rust-src"
|
creates: "{{ account_homedir.stdout }}/.rustup/toolchains/nightly-{{ rust_date }}-x86_64-unknown-linux-gnu/lib/rustlib/manifest-rust-src"
|
||||||
|
|
||||||
|
- name: Install clippy
|
||||||
|
command: rustup component add clippy
|
||||||
|
args:
|
||||||
|
creates: "{{ account_homedir.stdout }}/.rustup/toolchains/nightly-{{ rust_date }}-x86_64-unknown-linux-gnu/bin/cargo-clippy"
|
||||||
|
|
||||||
- name: Create directories
|
- name: Create directories
|
||||||
file:
|
file:
|
||||||
name: "{{ account_homedir.stdout }}/{{ item }}"
|
name: "{{ account_homedir.stdout }}/{{ item }}"
|
||||||
|
|||||||
@@ -21,4 +21,6 @@
|
|||||||
- pipewire-pulse
|
- pipewire-pulse
|
||||||
- wireplumber
|
- wireplumber
|
||||||
- pavucontrol
|
- pavucontrol
|
||||||
|
- pipewire-jack
|
||||||
|
- lib32-pipewire-jack
|
||||||
state: present
|
state: present
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ KbdInteractiveAuthentication no
|
|||||||
#AllowAgentForwarding yes
|
#AllowAgentForwarding yes
|
||||||
#AllowTcpForwarding yes
|
#AllowTcpForwarding yes
|
||||||
#GatewayPorts no
|
#GatewayPorts no
|
||||||
#X11Forwarding yes
|
#X11Forwarding no
|
||||||
#X11DisplayOffset 10
|
#X11DisplayOffset 10
|
||||||
#X11UseLocalhost yes
|
#X11UseLocalhost yes
|
||||||
#PermitTTY yes
|
#PermitTTY yes
|
||||||
@@ -106,7 +106,7 @@ KbdInteractiveAuthentication no
|
|||||||
#PermitTunnel no
|
#PermitTunnel no
|
||||||
#ChrootDirectory none
|
#ChrootDirectory none
|
||||||
#UseBlacklist no
|
#UseBlacklist no
|
||||||
#VersionAddendum FreeBSD-20230316
|
#VersionAddendum FreeBSD-20231004
|
||||||
|
|
||||||
# no default banner path
|
# no default banner path
|
||||||
#Banner none
|
#Banner none
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
set $lock swaylock -c 000000
|
set $lock swaylock -f -c 000000
|
||||||
|
|
||||||
# Hotkey to lock the screen
|
# Hotkey to lock the screen
|
||||||
bindsym $mod+l exec $lock
|
bindsym $mod+l exec $lock
|
||||||
|
|
||||||
exec swayidle \
|
exec swayidle -w \
|
||||||
timeout 300 '$lock' \
|
timeout 300 '$lock' \
|
||||||
|
timeout 600 'swaymsg "output * dpms off"' \
|
||||||
|
resume 'swaymsg "output * dpms on"' \
|
||||||
before-sleep '$lock'
|
before-sleep '$lock'
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
args:
|
args:
|
||||||
creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||||
loop:
|
loop:
|
||||||
- wev
|
|
||||||
- wlvncc-git
|
- wlvncc-git
|
||||||
- wl-screenrec-git
|
- wl-screenrec-git
|
||||||
|
|
||||||
|
|||||||
BIN
ansible/roles/wireguard/files/wireguard_configs/pixel/wgf.conf
Normal file
BIN
ansible/roles/wireguard/files/wireguard_configs/pixel/wgf.conf
Normal file
Binary file not shown.
BIN
ansible/roles/wireguard/files/wireguard_configs/pixel/wgh.conf
Normal file
BIN
ansible/roles/wireguard/files/wireguard_configs/pixel/wgh.conf
Normal file
Binary file not shown.
@@ -4,6 +4,21 @@
|
|||||||
- linux-lts-headers
|
- linux-lts-headers
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
|
- name: Check trusted gpg keys
|
||||||
|
become_user: "{{ build_user.name }}"
|
||||||
|
command: gpg --list-public-keys --keyid-format LONG
|
||||||
|
register: gpgkeys
|
||||||
|
changed_when: false
|
||||||
|
check_mode: no
|
||||||
|
|
||||||
|
- name: Trust ZFS key
|
||||||
|
when: "item not in gpgkeys.stdout"
|
||||||
|
become_user: "{{ build_user.name }}"
|
||||||
|
command: "gpg --recv-key '{{ item }}'"
|
||||||
|
loop:
|
||||||
|
- "0AB9E991C6AF658B"
|
||||||
|
- "6AD860EED4598027"
|
||||||
|
|
||||||
- name: Build aur packages
|
- name: Build aur packages
|
||||||
register: buildaur
|
register: buildaur
|
||||||
become_user: "{{ build_user.name }}"
|
become_user: "{{ build_user.name }}"
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ elif [ "$target" = "odolinux" ]; then
|
|||||||
ansible-playbook -v -i environments/laptop playbook.yaml --diff --limit odolinux "${@}"
|
ansible-playbook -v -i environments/laptop playbook.yaml --diff --limit odolinux "${@}"
|
||||||
elif [ "$target" = "odofreebsd" ]; then
|
elif [ "$target" = "odofreebsd" ]; then
|
||||||
ansible-playbook -v -i environments/laptop playbook.yaml --diff --limit odofreebsd "${@}"
|
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
|
elif [ "$target" = "jail_nat_dhcp" ]; then
|
||||||
ansible-playbook -v -i environments/jail playbook.yaml --diff --limit nat_dhcp "${@}"
|
ansible-playbook -v -i environments/jail playbook.yaml --diff --limit nat_dhcp "${@}"
|
||||||
elif [ "$target" = "jail_homeserver_nat_dhcp" ]; then
|
elif [ "$target" = "jail_homeserver_nat_dhcp" ]; then
|
||||||
@@ -38,6 +40,8 @@ elif [ "$target" = "jail_admin_git" ]; then
|
|||||||
ansible-playbook -v -i environments/jail playbook.yaml --diff --limit admin_git "${@}"
|
ansible-playbook -v -i environments/jail playbook.yaml --diff --limit admin_git "${@}"
|
||||||
elif [ "$target" = "jail_public_dns" ]; then
|
elif [ "$target" = "jail_public_dns" ]; then
|
||||||
ansible-playbook -v -i environments/jail playbook.yaml --diff --limit public_dns "${@}"
|
ansible-playbook -v -i environments/jail playbook.yaml --diff --limit public_dns "${@}"
|
||||||
|
elif [ "$target" = "vm_freebsdupdatemrmanager" ]; then
|
||||||
|
ansible-playbook -v -i environments/vm playbook.yaml --diff --limit freebsdupdatemrmanager "${@}"
|
||||||
else
|
else
|
||||||
die 1 "Unrecognized target"
|
die 1 "Unrecognized target"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user