Page MenuHomeDevCentral

No OneTemporary

diff --git a/roles/core/network/files/Debian/10-gre.jinja b/roles/core/network/files/Debian/10-gre.jinja
new file mode 100644
index 0000000..7f7af09
--- /dev/null
+++ b/roles/core/network/files/Debian/10-gre.jinja
@@ -0,0 +1,21 @@
+# -------------------------------------------------------------
+# Network — interfaces configuration
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# License: Trivial work, not eligible to copyright
+# Source file: roles/core/network/files/Debian/10-gre.jinja
+# -------------------------------------------------------------
+#
+# <auto-generated>
+# This file is managed by our rOPS SaltStack repository.
+#
+# Changes to this file may cause incorrect behavior
+# and will be lost if the state is redeployed.
+# </auto-generated>
+
+auto {{ interface }}
+iface {{ interface }} inet static
+address {{ src }}
+netmask {{ netmask }}
+pre-up ip tunnel add {{ interface }} mode gre remote {{ icann_dst }} local {{ icann_src }} ttl 255
+up ip link set mtu 1500 dev {{ interface }}
diff --git a/roles/core/network/gre.sls b/roles/core/network/gre.sls
index fea8be0..0a6dd6f 100644
--- a/roles/core/network/gre.sls
+++ b/roles/core/network/gre.sls
@@ -1,56 +1,79 @@
# -------------------------------------------------------------
# Salt — Network — GRE tunnels
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Project: Nasqueron
# Created: 2020-09-20
# License: Trivial work, not eligible to copyright
# -------------------------------------------------------------
{% set network = salt['node.get']('network') %}
{% set gre_tunnels = salt['pillar.get']("gre_tunnels:" + grains['id'], {}) %}
{% set boot_loader = namespace(gre=false) %}
# -------------------------------------------------------------
# Tunnels network configuration files
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{% for description, tunnel in gre_tunnels.items() %}
{% set boot_loader.gre = True %}
{% set tunnel_network = pillar['networks'][tunnel['network']] %}
{% if grains['os'] == 'FreeBSD' %}
/etc/rc.conf.d/netif/gre_{{ description }}:
file.managed:
- source: salt://roles/core/network/files/FreeBSD/netif_gre.rc
- makedirs: True
- template: jinja
- context:
description: {{ description }}
interface: {{ tunnel['interface'] }}
src: {{ tunnel_network['addr'][grains['id']] }}
dst: {{ tunnel_network['addr'][tunnel['to']] }}
icann_src: {{ network['ipv4_address'] }}
icann_dst: {{ salt['node.get']('network', tunnel['to'])['ipv4_address'] }}
{% endif %}
+{% if grains['os_family'] == 'Debian' %}
+/etc/network/interfaces.d/10-gre-{{ description }}:
+ file.managed:
+ - source: salt://roles/core/network/files/Debian/10-gre.jinja
+ - makedirs: True
+ - template: jinja
+ - context:
+ interface: gre-{{ description }}
+
+ src: {{ tunnel_network['addr'][grains['id']] }}
+ dst: {{ tunnel_network['addr'][tunnel['to']] }}
+ netmask: {{ tunnel_network['netmask'] }}
+
+ icann_src: {{ network['ipv4_address'] }}
+ icann_dst: {{ salt['node.get']('network', tunnel['to'])['ipv4_address'] }}
+{% endif %}
+
{% endfor %}
# -------------------------------------------------------------
# Kernel configuration
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{% if boot_loader.gre %}
{% if grains['os'] == 'FreeBSD' %}
load_gre_kernel_module:
file.append:
- name: /boot/loader.conf
- text: |
if_gre_load="YES"
{% endif %}
+{% if grains['os_family'] == 'Debian' %}
+ip_gre:
+ kmod.present:
+ - persist: True
+{% endif %}
+
{% endif %}

File Metadata

Mime Type
text/x-diff
Expires
Sat, Oct 11, 21:48 (21 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3064128
Default Alt Text
(3 KB)

Event Timeline