X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/6701c75cd26e603cafa373db9ee75e6c099639e9..ed505da4d7553ab26bda2169bec0b08ee76cfd1f:/cookbooks/networking/recipes/default.rb diff --git a/cookbooks/networking/recipes/default.rb b/cookbooks/networking/recipes/default.rb index fa3f97d00..162e0c3a8 100644 --- a/cookbooks/networking/recipes/default.rb +++ b/cookbooks/networking/recipes/default.rb @@ -104,7 +104,7 @@ node[:networking][:interfaces].each do |name, interface| deviceplan["parameters"]["lacp-rate"] = interface[:bond][:lacprate] if interface[:bond][:lacprate] end - if interface[:gateway] + if interface[:gateway] && interface[:gateway] != interface[:address] if interface[:family] == "inet" default_route = "0.0.0.0/0" elsif interface[:family] == "inet6" @@ -156,7 +156,7 @@ end netplan["network"]["bonds"].each_value do |bond| bond["interfaces"].each do |interface| - netplan["network"]["ethernets"][interface] ||= { "accept-ra" => false } + netplan["network"]["ethernets"][interface] ||= { "accept-ra" => false, "optional" => true } end end @@ -166,6 +166,10 @@ netplan["network"]["vlans"].each_value do |vlan| end end +file "/etc/netplan/00-installer-config.yaml" do + action :delete +end + file "/etc/netplan/01-netcfg.yaml" do action :delete end @@ -236,7 +240,7 @@ if node[:networking][:wireguard][:enabled] } end - search(:node, "roles:mail") do |server| + search(:node, "roles:mail OR roles:prometheus") do |server| allowed_ips = server.interfaces(:role => :internal).map do |interface| "#{interface[:network]}/#{interface[:prefix]}" end @@ -257,6 +261,12 @@ if node[:networking][:wireguard][:enabled] :allowed_ips => "10.0.16.1/32", :endpoint => "gate.compton.nu:51820" } + + node.default[:networking][:wireguard][:peers] << { + :public_key => "RofATnvlWxP3mt87+QKRXFE5MVxtoCcTsJ+yftZYEE4=", + :allowed_ips => "10.89.122.1/32", + :endpoint => "gate.firefishy.com:51820" + } end template "/etc/systemd/network/wireguard.netdev" do @@ -285,7 +295,7 @@ if node[:networking][:wireguard][:enabled] action :nothing subscribes :restart, "template[/etc/systemd/network/wireguard.netdev]" subscribes :restart, "template[/etc/systemd/network/wireguard.network]" - not_if { ENV.key?("TEST_KITCHEN") } + not_if { kitchen? } end else execute "networkctl-delete-wg0" do @@ -300,7 +310,7 @@ if node[:networking][:wireguard][:enabled] command "networkctl reload" subscribes :run, "template[/etc/systemd/network/wireguard.netdev]" subscribes :run, "template[/etc/systemd/network/wireguard.network]" - not_if { ENV.key?("TEST_KITCHEN") } + not_if { kitchen? } end end end @@ -313,7 +323,7 @@ end execute "hostnamectl-set-hostname" do command "hostnamectl set-hostname #{node[:networking][:hostname]}" notifies :reload, "ohai[reload-hostname]" - not_if { ENV.key?("TEST_KITCHEN") || node[:hostnamectl][:static_hostname] == node[:networking][:hostname] } + not_if { kitchen? || node[:hostnamectl][:static_hostname] == node[:networking][:hostname] } end template "/etc/hosts" do @@ -321,7 +331,7 @@ template "/etc/hosts" do owner "root" group "root" mode "644" - not_if { ENV["TEST_KITCHEN"] } + not_if { kitchen? } end service "systemd-resolved" do @@ -342,9 +352,14 @@ template "/etc/systemd/resolved.conf.d/99-chef.conf" do notifies :restart, "service[systemd-resolved]", :immediately end +if node[:filesystem][:by_mountpoint][:"/etc/resolv.conf"] + execute "umount-resolve-conf" do + command "umount -c /etc/resolv.conf" + end +end + link "/etc/resolv.conf" do to "../run/systemd/resolve/stub-resolv.conf" - not_if { ENV["TEST_KITCHEN"] } end zones = {} @@ -363,6 +378,13 @@ end package "shorewall" +systemd_service "shorewall-docker" do + service "shorewall" + dropin "docker" + exec_stop "/sbin/shorewall $OPTIONS stop" + notifies :restart, "service[shorewall]" +end + template "/etc/default/shorewall" do source "shorewall-default.erb" owner "root" @@ -423,7 +445,6 @@ template "/etc/shorewall/policy" do end template "/etc/shorewall/rules" do - action :nothing source "shorewall-rules.erb" owner "root" group "root" @@ -432,9 +453,12 @@ template "/etc/shorewall/rules" do notifies :restart, "service[shorewall]" end -notify_group "shorewall-rules" do - action :run - notifies :create, "template[/etc/shorewall/rules]" +template "/etc/shorewall/stoppedrules" do + source "shorewall-stoppedrules.erb" + owner "root" + group "root" + mode "644" + notifies :restart, "service[shorewall]" end if node[:networking][:firewall][:enabled] @@ -442,12 +466,14 @@ if node[:networking][:firewall][:enabled] action [:enable, :start] supports :restart => true status_command "shorewall status" + ignore_failure true end else service "shorewall" do action [:disable, :stop] supports :restart => true status_command "shorewall status" + ignore_failure true end end @@ -486,16 +512,24 @@ if node[:networking][:wireguard][:enabled] end end +file "/etc/shorewall/masq" do + action :delete +end + +file "/etc/shorewall/masq.bak" do + action :delete +end + if node[:roles].include?("gateway") - template "/etc/shorewall/masq" do - source "shorewall-masq.erb" + template "/etc/shorewall/snat" do + source "shorewall-snat.erb" owner "root" group "root" mode "644" notifies :restart, "service[shorewall]" end else - file "/etc/shorewall/masq" do + file "/etc/shorewall/snat" do action :delete notifies :restart, "service[shorewall]" end @@ -564,7 +598,6 @@ unless node.interfaces(:family => :inet6).empty? end template "/etc/shorewall6/rules" do - action :nothing source "shorewall-rules.erb" owner "root" group "root" @@ -573,22 +606,19 @@ unless node.interfaces(:family => :inet6).empty? notifies :restart, "service[shorewall6]" end - notify_group "shorewall6-rules" do - action :run - notifies :create, "template[/etc/shorewall6/rules]" - end - if node[:networking][:firewall][:enabled] service "shorewall6" do action [:enable, :start] supports :restart => true status_command "shorewall6 status" + ignore_failure true end else service "shorewall6" do action [:disable, :stop] supports :restart => true status_command "shorewall6 status" + ignore_failure true end end