<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ansible-distro-configure.git/host_vars/rpi5.local.yml, branch ipv6-partially-supported</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>Update secrets</title>
<updated>2026-07-22T09:09:16+00:00</updated>
<author>
<name>Ahmed Abdelhalim</name>
<email>pm@a14m.dev</email>
</author>
<published>2026-07-22T09:06:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=ada8c8360786ed33d1348c821849fb7e05995b0d'/>
<id>ada8c8360786ed33d1348c821849fb7e05995b0d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add awscli role with configuration on pi for garage backend w/testing</title>
<updated>2026-07-21T23:12:20+00:00</updated>
<author>
<name>Ahmed Abdelhalim</name>
<email>pm@a14m.dev</email>
</author>
<published>2026-07-21T21:39:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=026cbcda584d2fb7883cfe869ac7b75b4cf0ff75'/>
<id>026cbcda584d2fb7883cfe869ac7b75b4cf0ff75</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename backup -&gt; mount as a role</title>
<updated>2026-07-18T22:23:36+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-18T22:23:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=58a3f1ea5a2f18bb33593169382d7b246279968a'/>
<id>58a3f1ea5a2f18bb33593169382d7b246279968a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix deploying cgit locally</title>
<updated>2026-07-17T13:23:57+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-17T13:23:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=589c3342c471a1ef5e86055e67b47e3b1799e025'/>
<id>589c3342c471a1ef5e86055e67b47e3b1799e025</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update git hostname</title>
<updated>2026-07-16T15:05:16+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-16T15:05:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=00bb965eeb733de042fbe1747adce41ba9f11123'/>
<id>00bb965eeb733de042fbe1747adce41ba9f11123</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 cgit to use generic proxy</title>
<updated>2026-07-16T15:02:52+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-16T12:39:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=9e47b289bc84b21400235c26e642f30e88cfcb21'/>
<id>9e47b289bc84b21400235c26e642f30e88cfcb21</id>
<content type='text'>
This is refactoring the PoC for deploying cgit on pve, to now move to a
more standard deployment with dedicated agnonstic proxy role/container
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is refactoring the PoC for deploying cgit on pve, to now move to a
more standard deployment with dedicated agnonstic proxy role/container
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename services to use .home.arpa network instead .local</title>
<updated>2026-07-15T13:42:59+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-15T13:28:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=af4fdc093830f90384316d121ec7a923f5bc9ac7'/>
<id>af4fdc093830f90384316d121ec7a923f5bc9ac7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Configure ipv6/prefer ipv4 switches for network (and all hosts)</title>
<updated>2026-07-13T23:23:12+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-13T15:40:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=5d62b0fc261f8315c6f9effe58a35347587b4762'/>
<id>5d62b0fc261f8315c6f9effe58a35347587b4762</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<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>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>
</feed>
