summaryrefslogtreecommitdiffstats
path: root/site.yml
AgeCommit message (Collapse)AuthorFilesLines
8 daysRefactor pve cgit to use generic proxyAhmed Abdelhalim1-1/+1
This is refactoring the PoC for deploying cgit on pve, to now move to a more standard deployment with dedicated agnonstic proxy role/container
2026-07-09Fix IPv6 first-request failure caused by ICMPv6 RedirectsAhmed Abdelhalim1-0/+1
Root cause: Pi, the ISP router (FritzBox), and LAN clients share the same L2 segment. When Pi forwards a client's IPv6 packet to an external GUA destination, the Linux kernel detects that the ISP router is a "better" next-hop on the same link and sends an ICMPv6 Redirect (type 137) to the client. The client obeys the redirect and sends its first SYN to the ISP router directly — Pi never forwards the original packet. The ISP router applies per-device content filtering to the unmasqueraded client GUA and issues a RST. This produced the symptom of the first IPv6 request failing with "Connection reset by peer" every ~30-60 seconds (matching the FritzBox RA interval, after which clients re-resolve their default gateway). Diagnosis method: tcpdump with MAC addresses (-e flag) on Pi's end0 caught the ICMPv6 Redirect being sent immediately after the first SYN arrived. Inserting a DROP rule for icmpv6-type redirect at position 1 in ip6tables OUTPUT confirmed the fix — 0 failures across extended testing. Fix: - Drop ICMPv6 Redirect (type 137) in ip6tables OUTPUT as the first rule, before the ACCEPT rule, in both direct and VPN modes - Flush ip6tables OUTPUT chain on clear_rules() instead of per-rule -D deletion, which was fragile and left stale rules accumulating across mode switches (previously caused duplicate/conflicting OUTPUT rules) - Flush ip6tables nat POSTROUTING table instead of per-rule -D deletion for the same reason Also documents the ICMPv6 Redirect issue and IPv6 masquerade rationale in roles/gateway/README.md for future reference. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-07-07Add pve-lxc service provisioning using service.yml and containers groupAhmed Abdelhalim1-1/+4
2026-03-04Remove small bootstrap playbook and merge it in site.ymlAhmed Abdelhalim1-1/+17
2025-09-12Split the playbooks into bootstrap and configureAhmed Abdelhalim1-51/+4
This is to allow the ansible-distro-install to safely call the bootstrap playbook without getting validation errors about the other configure roles (especially if they are not configured yet, or if running on CI)
2025-09-12Add gateway role to playbooks/testsAhmed Abdelhalim1-0/+1
2025-09-10Refactor site playbooks to be more host orientedAhmed Abdelhalim1-21/+23
This also improves the dependency management, making the roles less repeating when not needing to execute multiple times
2025-09-10Add recommended argument_specsAhmed Abdelhalim1-1/+0
2025-09-10Add wg_portal role to install vpn web interface managerAhmed Abdelhalim1-0/+1
2025-09-03Add ansible roleAhmed Abdelhalim1-0/+1
2025-09-03Revert "Refactor: rename wireguard_gateway to gateway"Ahmed Abdelhalim1-1/+1
This reverts commit fdd0b5b58f0ebd39ad05e2dcb17faa6603145f97.
2025-09-03Refactor: rename wireguard_gateway to gatewayAhmed Abdelhalim1-1/+1
As the role now functions as a gateway and not just a wireguard gateway it's better name for clarity
2025-09-03Add podman role with configuration to work over ssh with cgroupfsAhmed Abdelhalim1-0/+1
2025-09-03Add docker roleAhmed Abdelhalim1-0/+1
2025-09-02Add go role to playbooksAhmed Abdelhalim1-0/+1
2025-09-01Fix wireguard_gateway role being slowAhmed Abdelhalim1-1/+1
The pihole lookup DNS queries when the VPN connection is up was slow. One of the culprits was the quad9 servers were taking long time when using VPN The other issue was the previous routing tables that used to work with the fritzbox (with DHCP) which wasn't fully working was conflicting with the VPN route tables and causing loops and delays. Now most of the VPN queries are working fast but some requests are taking some time, probably due to the VPN trying to check/block ads and malware! Also minor fixing to the pre tasks and documentation
2025-08-31Add wireguard gate way role to configure traffic through vpnAhmed Abdelhalim1-0/+2
2025-08-31Allow network role to configure ipv6Ahmed Abdelhalim1-0/+2
2025-08-21Fix the wireguard installAhmed Abdelhalim1-1/+1
The conflict was due to resolvconf was removing the systemd-resolved configuration and that was causing the network to go down and the fallback on the statically managed resolv.conf (which wasn't able to resolve the DNS) due to how network manager requiring the DNS resolution to happen through systemd-resolved
2025-08-21Add wireguard role and fix testingAhmed Abdelhalim1-0/+2
The testing was failing because the use of the example files with the same domain names, resulted in the files and the molecule variable were being merged and therefore running tasks that would fail on test (example, setting a fake VPN connection that wouldn't start).
2025-08-20Add python roleAhmed Abdelhalim1-0/+1
2025-08-20Restructure the playbook hosts/rolesAhmed Abdelhalim1-6/+4
2025-08-20Add homebrew roleAhmed Abdelhalim1-0/+1
2025-08-11Add pihole role to configure raspberry piAhmed Abdelhalim1-0/+8
2025-08-11Refactor: playbook to split required_for_boot into its own playbookAhmed Abdelhalim1-14/+19
2025-08-11Refactor: move password policy to its own roleAhmed Abdelhalim1-1/+5
2025-08-11Refactor: move the timezone into its own roleAhmed Abdelhalim1-0/+1
2025-08-11Refactor: move the locales into its own roleAhmed Abdelhalim1-0/+1
2025-08-11Add settings role for setting locale/timezone/pass policyAhmed Abdelhalim1-0/+1
2025-08-11Ensure package cache is updated in playbook pre-taskAhmed Abdelhalim1-0/+7
2025-08-11Simplify playbook by requiring the required_for_boot tag on rolesAhmed Abdelhalim1-0/+3
Instead of optimizing for task execution for boot, it's simpler and almost as equally safe (if not even more) to require the role for boot instead of requiring each of it's needed tasks. This will also prevent having internal bugs because a set fact wasn't required for boot and didn't add the info (similar to the fix in commit: 9f72c58)
2025-08-11Add ssh roleAhmed Abdelhalim1-0/+1
2025-08-11Add user roleAhmed Abdelhalim1-0/+1
2025-08-11Add network roleAhmed Abdelhalim1-0/+2
2025-08-11Add ansible inventoryAhmed Abdelhalim1-0/+6