Browse Source

Playbooks now live under playbooks

Till Klocke 9 years ago
parent
commit
ee352c25d0

+ 71 - 0
playbooks/group_vars/all/supernodes.yml

@@ -0,0 +1,71 @@
+supernode_top_domain: ff.test
+supernodes:
+  - name: node01
+    public_ip: 192.168.77.21/24
+    mesh_ip_v4: 10.42.0.8/16
+    mesh_ip_v6: fdec:16a3:681b:865c::8/64
+    mesh_mac: 96:48:76:b5:a3:61
+    bat_mac: f2:43:13:c0:d7:06
+    dhcp_range_start: 10.42.0.32
+    dhcp_range_end: 10.42.5.254
+    public_interface: eth1
+    uplink_tunnel_ip: 172.16.42.2/30
+    uplink_tunnel_ip_v6: fd30:db1d:2377:4143::2/64
+  - name: node02
+    public_ip: 192.168.77.22/24
+    mesh_ip_v4: 10.42.0.16/16
+    mesh_ip_v6: fdec:16a3:681b:865c::16/64
+    mesh_mac: c2:e1:c6:e5:68:4c
+    bat_mac: 1e:f5:dc:71:bb:5f
+    dhcp_range_start: 10.42.6.2
+    dhcp_range_end: 10.42.8.254
+    public_interface: eth1
+    #uplink_tunnel_ip: 172.16.43.2/30
+    #uplink_tunnel_ip_v6: fd30:db1d:2377:4144::2/64
+  - name: map
+    public_ip: 192.168.77.29/24
+    mesh_ip_v4: 10.42.0.128/16
+    mesh_ip_v6: fdec:16a3:681b:865c::80/64
+    mesh_mac: 12:78:92:f8:1b:42
+    bat_mac: f6:9c:fe:9d:d4:da
+    public_interface: eth1
+
+supernode_as: '65403'
+
+fastd_instances:
+  - name: do00
+    bind: any:10000 interface "eth0" default ipv4
+    interface: tap00
+    loglevel: info
+    mode: tap
+    method: salsa2012+umac
+    peer_limit: 125
+    mtu: 1280
+    status_socket: /tmp/fastd00.sock
+    peer_dir: /etc/fastd/do00/dummy
+    on_up_script: |
+      ip link set up $INTERFACE
+      batctl if add $INTERFACE
+    on_verify_script: |
+      /etc/fastd/fastd-blacklist.sh $PEER_KEY
+  - name: do01
+    bind: any:10001 interface "eth0" default ipv4
+    interface: tap01
+    loglevel: info
+    mode: tap
+    method: salsa2012+umac
+    peer_limit: 125
+    mtu: 1280
+    status_socket: /tmp/fastd01.sock
+    peer_dir: /etc/fastd/do01/dummy
+    on_up_script: |
+      ip link set up $INTERFACE
+      batctl if add $INTERFACE
+    on_verify_script: |
+      /etc/fastd/fastd-blacklist.sh $PEER_KEY
+
+fastd_instances_secret:
+  - name: do00
+    secret: 280088c4263359417e9f2daf1771db820ab79eb4f79e3718719b2a976e8a8b5e
+  - name: do01
+    secret: 280088c4263359417e9f2daf1771db820ab79eb4f79e3718719b2a976e8a8b5e

+ 9 - 0
playbooks/group_vars/all/uplinks.yml

@@ -0,0 +1,9 @@
+uplinks:
+- name: uplink01
+  public_ip: 192.178.77.31/24
+  as: '65079'
+  public_interface: eth1
+  tunnel:
+  - tunnel_ip: 172.16.42.1/30
+    address_v6: fd30:db1d:2377:4143::1/64
+    supernode: "{{supernodes[0]}}"

File diff suppressed because it is too large
+ 7 - 0
playbooks/group_vars/all/users.yml


+ 91 - 0
playbooks/host_vars/mapserver/host.yml

@@ -0,0 +1,91 @@
+local_node: "{{supernodes[2]}}"
+ffmap_backend_version: v2
+
+supernode_mesh_mac: "{{local_node.mesh_mac}}"
+supernode_mesh_ipv4: "{{local_node.mesh_ip_v4}}"
+supernode_bat_macaddress: "{{local_node.bat_mac}}"
+supernode_mesh_ipv6: "{{local_node.mesh_ip_v6}}"
+supernode_local_ip: "{{local_node.public_ip|default(ansible_default_ipv4.address)}}"
+supernode_public_interface: "{{local_node.public_interface|default(ansible_default_ipv4.interface)}}"
+supernode_dhcp_range_start: "{{local_node.dhcp_range_start}}"
+supernode_dhcp_range_end: "{{local_node.dhcp_range_end}}"
+
+supernode_mesh_backbones:
+  - name: "{{supernodes[0].name}}"
+    remote_ip: "{{supernodes[0].public_ip|ipaddr('address')}}"
+    mesh_ip: "{{supernodes[0].mesh_ip_v4|ipaddr('address')}}"
+    address_v6: "{{supernodes[0].mesh_ip_v6|ipaddr('address')}}"
+    local_ip: "{{supernode_local_ip|ipaddr('address')}}"
+    interface: "{{supernode_public_interface}}"
+  - name: "{{supernodes[1].name}}"
+    remote_ip: "{{supernodes[1].public_ip|ipaddr('address')}}"
+    mesh_ip: "{{supernodes[1].mesh_ip_v4|ipaddr('address')}}"
+    address_v6: "{{supernodes[1].mesh_ip_v6|ipaddr('address')}}"
+    local_ip: "{{supernode_local_ip|ipaddr('address')}}"
+    interface: "{{supernode_public_interface}}"
+
+supernode_interfaces:
+  - name: eth0
+    auto: true
+    proto: inet
+    type: dhcp
+  - name: eth1
+    auto: true
+    proto: inet
+    type: static
+    config:
+    - key: address
+      value: "{{supernode_local_ip|ipaddr('address')}}"
+    - key: netmask
+      value: "{{supernode_local_ip|ipaddr('netmask')}}"
+    - key: broadcast
+      value: "{{supernode_local_ip|ipaddr('broadcast')}}"
+
+meshviewer_data_url: "https://192.168.77.29/data/"
+meshviewer_site_name: Freifunk example
+meshviewer_version: v3
+
+mapserver_use_pregenerated_dh_params: true
+mapserver_dh_params: |
+  -----BEGIN DH PARAMETERS-----
+  MIIBCAKCAQEAmWF6Vbj7fCywCna6iHb8WykMo7df73WrNmcdzpxBX+x29YMhU9zX
+  DATZ6cqLjOV0uDMqL6I0estB9TxwIEXUgOoc1KTUc91AE9YzQpH86jdE6nkw4Jjz
+  ec2TkyHJmLgods8NPw/uHvrpw84HWm/QxUT3ZOYdzTuNuGxWyJ43vCTsNrq59jOx
+  pbMETJRsP2YRNHMYwwF3V40EgN5y1X0xENstyWdPvk2aspxz10O+gD6+buSYA+xb
+  rvPG5bn/sVhi7pYBKPUMhrF8AoqGltNINkpP4dW3aQDJeIcwQ1aoE8IYp8eyv935
+  bHWReVmyfpXHEWtSHjwNbuqey40XN31qYwIBAg==
+  -----END DH PARAMETERS-----
+
+mapserver_ssl_private_key: |
+    -----BEGIN RSA PRIVATE KEY-----
+    MIICXQIBAAKBgQDFUvdXLyZGjceI3Z4UjqNrbL1Jn2F/CmCjs4a8x1FqMKaH3G/4
+    se/+soMUC140RqOnb8JrOCxpB0OdepVLDW191X2d4oiOb1fCO2uMBFJ8a1ZEHq/j
+    qLn8RY7OrJGUCMmLsLqmEU6rjAEBvkD2RPTJ8fcUaMXjlIdA05QFgUlAKQIDAQAB
+    AoGBAKSwbDNd7MoyBvlaTlfF/Orp5MoPteW8GZBHhAsHKBJC7Jq0BthAWpfvEaun
+    GUb0Nh7HDjNCvP4jy/EhoHz1hg1pFOkRUlz602qLj5h2aEqB8yW4DfUbrfq3CHpd
+    0rZXWlrIn9Ww0rr/ZGQvNywOuyIVsaDmBWsudQhv+4CSpa/JAkEA+HJCRuAFExHK
+    Lftr/8bSVajOFPmdf+vhERLuAB8r7FH2pl7H67CETKN8BdVLCOurhjSA4Iq/RRaS
+    3qSkXgD9PwJBAMtSzkXfRBPxZl7iCGHsGenOfIdLONm4/LaSBJtsqv3YgAMhMdrO
+    idwU293nKktTONUV61gzbFSbLATiuLH0IJcCQG1TojScCb+deXGIjLrOG+qT0LPM
+    L/GFs9GWmeK11Nc2LiqB1MmzMFSlMENE27L+Oclhu0CT7Z0SVOjiXG39U3MCQQCS
+    6kuIK3KqomShLNx3vT1gN0a+D/mNQODCHzJbCCNp9xVQrZyziUgOEbhpWE60TPck
+    6Yi7m7SsUc913EkutMMTAkBup3dbKPkDgl3Ujm9q/mvyJdE5ZF1QvbSSuFFPinP6
+    pQtvUENWV3NmlAuBOg4gzJ+ZSyKy93KvJ91MHNwfKMok
+    -----END RSA PRIVATE KEY-----
+
+mapserver_ssl_server_cert: |
+    -----BEGIN CERTIFICATE-----
+    MIICazCCAdQCCQDGN/3zHbvn2zANBgkqhkiG9w0BAQsFADB6MQswCQYDVQQGEwJE
+    RTEMMAoGA1UECAwDTlJXMREwDwYDVQQHDAhEb3J0bXVuZDERMA8GA1UECgwIRnJl
+    aWZ1bmsxEjAQBgNVBAsMCW1hcHNlcnZlcjEjMCEGA1UEAwwabWFwc2VydmVyLmZy
+    ZWlmdW5rLmV4YW1wbGUwHhcNMTUwODAyMTIzMjUyWhcNMTYwODAxMTIzMjUyWjB6
+    MQswCQYDVQQGEwJERTEMMAoGA1UECAwDTlJXMREwDwYDVQQHDAhEb3J0bXVuZDER
+    MA8GA1UECgwIRnJlaWZ1bmsxEjAQBgNVBAsMCW1hcHNlcnZlcjEjMCEGA1UEAwwa
+    bWFwc2VydmVyLmZyZWlmdW5rLmV4YW1wbGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0A
+    MIGJAoGBAMVS91cvJkaNx4jdnhSOo2tsvUmfYX8KYKOzhrzHUWowpofcb/ix7/6y
+    gxQLXjRGo6dvwms4LGkHQ516lUsNbX3VfZ3iiI5vV8I7a4wEUnxrVkQer+OoufxF
+    js6skZQIyYuwuqYRTquMAQG+QPZE9Mnx9xRoxeOUh0DTlAWBSUApAgMBAAEwDQYJ
+    KoZIhvcNAQELBQADgYEAXjdHDXdzIrlKfk1NN9PdZVap9QrXdxko48r2fxw56EIm
+    86gQheAMJX/kVKPAXnAsvr0Deoj6iM9MhHztDyZUJ4FMSyIteGFOddEVmQ8JCJIo
+    RnAOI4YIB9+CxjXNatDlmGSHGx5i4A2dUUIU/IGPXTe17+4DznGujze/hB04r34=
+    -----END CERTIFICATE-----

+ 54 - 0
playbooks/host_vars/node01/supernode

@@ -0,0 +1,54 @@
+local_node: "{{supernodes[0]}}"
+
+supernode_mesh_mac: "{{local_node.mesh_mac}}"
+supernode_mesh_ipv4: "{{local_node.mesh_ip_v4}}"
+supernode_bat_macaddress: "{{local_node.bat_mac}}"
+supernode_mesh_ipv6: "{{local_node.mesh_ip_v6}}"
+supernode_local_ip: "{{local_node.public_ip|default(ansible_default_ipv4.address)}}"
+supernode_public_interface: "{{local_node.public_interface|default(ansible_default_ipv4.interface)}}"
+supernode_dhcp_range_start: "{{local_node.dhcp_range_start}}"
+supernode_dhcp_range_end: "{{local_node.dhcp_range_end}}"
+
+supernode_mesh_backbones:
+  - name: "{{supernodes[1].name}}"
+    remote_ip: "{{supernodes[1].public_ip|ipaddr('address')}}"
+    mesh_ip: "{{supernodes[1].mesh_ip_v4|ipaddr('address')}}"
+    address_v6: "{{supernodes[1].mesh_ip_v6|ipaddr('address')}}"
+    local_ip: "{{supernode_local_ip|ipaddr('address')}}"
+    interface: "{{supernode_public_interface}}"
+  - name: "{{supernodes[2].name}}"
+    remote_ip: "{{supernodes[2].public_ip|ipaddr('address')}}"
+    mesh_ip: "{{supernodes[2].mesh_ip_v4|ipaddr('address')}}"
+    address_v6: "{{supernodes[2].mesh_ip_v6|ipaddr('address')}}"
+    local_ip: "{{supernode_local_ip|ipaddr('address')}}"
+    interface: "{{supernode_public_interface}}"
+
+supernode_other_nameserver: "{{supernode_mesh_backbones|map(attribute='mesh_ip')|map('ipaddr','address')|join(', ')}}"
+supernode_other_ntp_server: "{{supernode_mesh_backbones|map(attribute='mesh_ip')|map('ipaddr','address')|join(', ')}}"
+
+supernode_uplinks:
+  - name: "{{uplinks[0].name}}"
+    comment: "{{uplinks[0].tunnel[0].comment|default('No comment')}}"
+    address: "{{local_node.uplink_tunnel_ip|ipaddr('address')}}"
+    dstaddr: "{{uplinks[0].tunnel[0].tunnel_ip|ipaddr('address')}}"
+    netmask: "{{uplinks[0].tunnel[0].tunnel_ip|ipaddr('netmask')}}"
+    endpoint: "{{uplinks[0].public_ip|ipaddr('address')}}"
+    address_v6: "{{local_node.uplink_tunnel_ip_v6}}"
+    as: "{{uplinks[0].as}}"
+
+supernode_interfaces:
+  - name: eth0
+    auto: true
+    proto: inet
+    type: dhcp
+  - name: eth1
+    auto: true
+    proto: inet
+    type: static
+    config:
+    - key: address
+      value: "{{supernode_local_ip|ipaddr('address')}}"
+    - key: netmask
+      value: "{{supernode_local_ip|ipaddr('netmask')}}"
+    - key: broadcast
+      value: "{{supernode_local_ip|ipaddr('broadcast')}}"

+ 44 - 0
playbooks/host_vars/node02/supernode

@@ -0,0 +1,44 @@
+local_node: "{{supernodes[1]}}"
+
+supernode_mesh_mac: "{{local_node.mesh_mac}}"
+supernode_mesh_ipv4: "{{local_node.mesh_ip_v4}}"
+supernode_bat_macaddress: "{{local_node.bat_mac}}"
+supernode_mesh_ipv6: "{{local_node.mesh_ip_v6}}"
+supernode_local_ip: "{{local_node.public_ip|default(ansible_default_ipv4.address)}}"
+supernode_public_interface: "{{local_node.public_interface|default(ansible_default_ipv4.interface)}}"
+supernode_dhcp_range_start: "{{local_node.dhcp_range_start}}"
+supernode_dhcp_range_end: "{{local_node.dhcp_range_end}}"
+
+supernode_mesh_backbones:
+  - name: "{{supernodes[0].name}}"
+    remote_ip: "{{supernodes[0].public_ip|ipaddr('address')}}"
+    mesh_ip: "{{supernodes[0].mesh_ip_v4|ipaddr('address')}}"
+    address_v6: "{{supernodes[0].mesh_ip_v6|ipaddr('address')}}"
+    local_ip: "{{supernode_local_ip|ipaddr('address')}}"
+    interface: "{{supernode_public_interface}}"
+  - name: "{{supernodes[2].name}}"
+    remote_ip: "{{supernodes[2].public_ip|ipaddr('address')}}"
+    mesh_ip: "{{supernodes[2].mesh_ip_v4|ipaddr('address')}}"
+    address_v6: "{{supernodes[2].mesh_ip_v6|ipaddr('address')}}"
+    local_ip: "{{supernode_local_ip|ipaddr('address')}}"
+    interface: "{{supernode_public_interface}}"
+
+supernode_other_nameserver: "{{supernode_mesh_backbones|map(attribute='mesh_ip')|map('ipaddr','address')|join(', ')}}"
+supernode_other_ntp_server: "{{supernode_mesh_backbones|map(attribute='mesh_ip')|map('ipaddr','address')|join(', ')}}"
+
+supernode_interfaces:
+  - name: eth0
+    auto: true
+    proto: inet
+    type: dhcp
+  - name: eth1
+    auto: true
+    proto: inet
+    type: static
+    config:
+    - key: address
+      value: "{{supernode_local_ip|ipaddr('address')}}"
+    - key: netmask
+      value: "{{supernode_local_ip|ipaddr('netmask')}}"
+    - key: broadcast
+      value: "{{supernode_local_ip|ipaddr('broadcast')}}"

+ 27 - 0
playbooks/host_vars/uplink01/uplink.yml

@@ -0,0 +1,27 @@
+local_uplink: "{{uplinks[0]}}"
+
+uplink_gre_tunnel:
+- name: "{{local_uplink.tunnel[0].supernode.name}}"
+  local: "{{local_uplink.public_ip|ipaddr('address')}}"
+  endpoint: "{{local_uplink.tunnel[0].supernode.public_ip|ipaddr('address')}}"
+  netmask: "{{local_uplink.tunnel[0].tunnel_ip|ipaddr('netmask')}}"
+  address: "{{local_uplink.tunnel[0].tunnel_ip|ipaddr('address')}}"
+  dstaddr: "{{local_uplink.tunnel[0].supernode.uplink_tunnel_ip|ipaddr('address')}}"
+  address_v6: "{{local_uplink.tunnel[0].address_v6}}"
+
+uplink_interfaces:
+  - name: eth0
+    auto: true
+    proto: inet
+    type: dhcp
+  - name: eth1
+    auto: true
+    proto: inet
+    type: static
+    config:
+    - key: address
+      value: "{{local_uplink.public_ip|ipaddr('address')}}"
+    - key: netmask
+      value: "{{local_uplink.public_ip|ipaddr('netmask')}}"
+    - key: broadcast
+      value: "{{local_uplink.public_ip|ipaddr('broadcast')}}"

playbook.yml → playbooks/playbook.yml