<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ansible-distro-configure.git/host_vars/pve.local.yml.example, branch mac-nvidia-drivers</title>
<subtitle>Ansible Roles to configure different (linux) distros
</subtitle>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/'/>
<entry>
<title>Configure preference of ip family (ipv4 &gt; ipv6)</title>
<updated>2026-07-12T20:05:17+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-10T17:58:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=50553bff1455c5f0cf3106cbed31bf9ac56fa55e'/>
<id>50553bff1455c5f0cf3106cbed31bf9ac56fa55e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Extract logind lid configuration into it's own role</title>
<updated>2026-07-09T22:38:48+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-09T21:20:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=e28eda14b15bb439479906d70e33145001a827cf'/>
<id>e28eda14b15bb439479906d70e33145001a827cf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Route IPv6 through WireGuard VPN via radvd and static gateway</title>
<updated>2026-07-08T14:55:30+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-08T12:28:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=f31b1bc18245e1e063c6d32b475c4b59b0a64b7f'/>
<id>f31b1bc18245e1e063c6d32b475c4b59b0a64b7f</id>
<content type='text'>
Add radvd to gateway role to advertise Pi as high-preference IPv6
default router using the stable ULA prefix (fd1e:.../64). With
FritzBox also sending RAs, devices end up with ECMP between Pi and
FritzBox. To solve this, add network_ipv6_gateway (Pi's link-local)
as a static route with metric 100 to all managed hosts — beats RA
metric 425, ensuring all IPv6 default traffic goes through Pi.

Fix IPv6 MASQUERADE in gateway-apply-rules:
- Direct mode: add MASQUERADE on end0 (LAN devices use ULA source
  addresses not known to FritzBox, so Pi must NAT them)
- FORWARD rules: restrict to RELATED,ESTABLISHED only — previously
  the broad ACCEPT rule passed un-NAT'd packets alongside masqueraded
  copies, causing duplicate SYNs, conntrack corruption, and RSTs
- MASQUERADE/clear rules: match by interface not by source subnet
  (devices may use any source address, not just the ULA prefix)
- VPN mode return traffic: explicitly restrict to wg+→end0 direction

Add network_ipv6_gateway var (optional) to network role NM templates
(ethernet, wifi, bridge) — injects a static IPv6 default route at
metric 100 when set. Add rpi5 static route to FritzBox link-local so
Pi keeps IPv6 after FritzBox RA is disabled.

Force SSH to IPv4 for *.local hosts (AddressFamily inet) — prevents
Ansible from hanging on mDNS returning multiple IPv6 addresses.

Update gateway and pihole READMEs with two-step IPv6 setup process.

Co-Authored-By: Claude.ai
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add radvd to gateway role to advertise Pi as high-preference IPv6
default router using the stable ULA prefix (fd1e:.../64). With
FritzBox also sending RAs, devices end up with ECMP between Pi and
FritzBox. To solve this, add network_ipv6_gateway (Pi's link-local)
as a static route with metric 100 to all managed hosts — beats RA
metric 425, ensuring all IPv6 default traffic goes through Pi.

Fix IPv6 MASQUERADE in gateway-apply-rules:
- Direct mode: add MASQUERADE on end0 (LAN devices use ULA source
  addresses not known to FritzBox, so Pi must NAT them)
- FORWARD rules: restrict to RELATED,ESTABLISHED only — previously
  the broad ACCEPT rule passed un-NAT'd packets alongside masqueraded
  copies, causing duplicate SYNs, conntrack corruption, and RSTs
- MASQUERADE/clear rules: match by interface not by source subnet
  (devices may use any source address, not just the ULA prefix)
- VPN mode return traffic: explicitly restrict to wg+→end0 direction

Add network_ipv6_gateway var (optional) to network role NM templates
(ethernet, wifi, bridge) — injects a static IPv6 default route at
metric 100 when set. Add rpi5 static route to FritzBox link-local so
Pi keeps IPv6 after FritzBox RA is disabled.

Force SSH to IPv4 for *.local hosts (AddressFamily inet) — prevents
Ansible from hanging on mDNS returning multiple IPv6 addresses.

Update gateway and pihole READMEs with two-step IPv6 setup process.

Co-Authored-By: Claude.ai
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix install proxmoxer using pip</title>
<updated>2026-07-07T23:50:59+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-07T23:50:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=f97653c1700466ad2d0bc1e3f63bfa4937c63305'/>
<id>f97653c1700466ad2d0bc1e3f63bfa4937c63305</id>
<content type='text'>
Using mise or python role broke on other machines so went with the
simplest solution for now, it's safe to break the system packages for
python as this is not used internally in other ways

Also proxmoxer 2+ is needed to work with the proxmox module
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using mise or python role broke on other machines so went with the
simplest solution for now, it's safe to break the system packages for
python as this is not used internally in other ways

Also proxmoxer 2+ is needed to work with the proxmox module
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix network setup on pve</title>
<updated>2026-07-06T15:17:50+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-06T15:17:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=6bf65ed100c7f9554025a133c7c52033f2545219'/>
<id>6bf65ed100c7f9554025a133c7c52033f2545219</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix pve network setup</title>
<updated>2026-07-05T23:49:45+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-05T23:49:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=653e674c1fe67a05005c92fc379dd25db9cdebe7'/>
<id>653e674c1fe67a05005c92fc379dd25db9cdebe7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor pve roles to create storage separately</title>
<updated>2026-07-03T21:44:47+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-03T21:43:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=9e608b9488d723b65e9b9452ee2805976f4a01dc'/>
<id>9e608b9488d723b65e9b9452ee2805976f4a01dc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor pve and add pve-network role to configure the pve network</title>
<updated>2026-07-03T19:46:32+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-03T19:32:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=0f9dc1fb390a4c4200235a81d30fc679e09bc199'/>
<id>0f9dc1fb390a4c4200235a81d30fc679e09bc199</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Disable unstable ipv6 setup for now</title>
<updated>2026-07-03T11:44:42+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-03T11:44:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=0e8eaf33ae78ea5976d8d025588e91a4ab750c45'/>
<id>0e8eaf33ae78ea5976d8d025588e91a4ab750c45</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update ethtool to handle laptop lid suspend issues</title>
<updated>2026-07-03T09:00:17+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-03T09:00:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=0bca6bd749c2f799074d648843aea576b7f506d8'/>
<id>0bca6bd749c2f799074d648843aea576b7f506d8</id>
<content type='text'>
When using WoL with laptops (ex Lenovo) closing the lid suspends the
laptop and breaks WoL, this is to allow configuring the lid behavior
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When using WoL with laptops (ex Lenovo) closing the lid suspends the
laptop and breaks WoL, this is to allow configuring the lid behavior
</pre>
</div>
</content>
</entry>
</feed>
