Compare commits

...

722 commits

Author SHA1 Message Date
c7baba441f
switchs: Add EDC access point 2025-10-09 21:01:43 +02:00
korenstin
f274a515a9
dns: log-{1,2} & pve 2025-10-09 19:14:53 +02:00
korenstin
b7c1b86056
grafana-ng: configuration firewall, dns, caddy 2025-10-07 08:47:55 +02:00
1deba6ebf8
switchs: Improve naming of sw-ec-1 2025-10-05 16:13:05 +02:00
8f600c8ec5 Room 267 borne ajout 2025-10-02 23:30:29 +02:00
korenstin
4cf5d4ee1f
prometheus: monitoring jitsi-ng 2025-09-30 23:00:48 +02:00
2d2177bd25
switchs: Improve defaults + Add sw-ec-1 2025-09-30 21:55:34 +02:00
adbd4d5782
dns + firewall: Add jitsi 2025-09-30 21:54:26 +02:00
korenstin
96e4bf88bf
Switch sw-f* pas check 2025-09-30 20:17:33 +02:00
korenstin
1c1ba4cd84
Switch sw-ec-* et sw-r* check 2025-09-30 20:16:26 +02:00
b4a67dd645
dns: Add tor + firewall: Allow ntp + SSH 2025-09-25 20:55:08 +02:00
b184ce96dc
Merge branch 'new-infra' of gitea.auro.re:aurore/ansible into new-infra 2025-09-09 08:05:13 +02:00
a16164d68b
Misc 2025-09-09 08:04:46 +02:00
1ec2cf8770
dns: Add tor.pub.infra.auro.re 2025-09-08 09:20:36 +02:00
9a730f7dd9
dns: Remove grocy-bric + Add lafeychine.adh 2025-09-05 11:25:23 +02:00
0ade5a4be1 Merge pull request 'switch_rest' (#107) from switch_rest into new-infra
Reviewed-on: #107
2025-08-28 21:39:59 +02:00
korenstin
ef456e3ea2
Remove switch-dev and update ntp 2025-08-28 21:31:26 +02:00
korenstin
b74cf3faea
Add example and typo 2025-08-14 21:37:50 +02:00
korenstin
ec13538cb7
Switch: creation of a module to configure the switchs with Ansible. 2025-08-08 20:24:51 +02:00
korenstin
9c3dc75323
Remove pacaterie 2025-08-08 10:59:02 +02:00
korenstin
44b36b16c5
On enlève radius-fleming de la surveillance, il est down de toute façon (cf df420920fc) 2025-08-08 01:24:20 +02:00
korenstin
d93dee83f0 Config backup/prune zfs 2025-08-08 00:28:34 +02:00
953b29c51d Retrait de chapalux des hosts 2025-08-08 00:24:51 +02:00
59c0fda15b Ajout de ZFS-backup 2025-06-26 22:08:46 +02:00
bc38574a07
prom: increase ilo timeout + retries 2025-01-02 15:37:59 +01:00
19ad151e92
prom: add compaq mibs 2025-01-02 15:37:40 +01:00
c4b14cb447
fix mac address for ns-3.ovh.infra 2025-01-02 15:08:31 +01:00
c5cc75e826
prom: increase scrape_interval for quanta targets 2025-01-02 15:08:03 +01:00
4ae69ceb89
prom: minimal monitoring of ilos 2025-01-02 15:07:23 +01:00
7119715720
chronyd: replace ipaddr with ansible.utils.ipaddr 2025-01-01 14:16:44 +01:00
13c517387d
playbooks: add pve_network to some playbooks 2025-01-01 14:16:09 +01:00
1d38cb9943
dns: add various hosts 2025-01-01 14:15:25 +01:00
3b1ae6206f
misc: dns + locales + pve + … 2024-06-22 20:27:15 +02:00
81f95aa14d
collabora: misc 2024-05-19 16:30:50 +02:00
708781b722
collabora: migrate to new infra 2024-05-19 15:26:16 +02:00
0782695471
misc: misc 2024-05-19 13:59:17 +02:00
1e1783fd59
caddy: add email addr 2024-05-02 22:43:25 +02:00
4d0f820df0
Merge branch 'new-infra' of gitea.auro.re:aurore/ansible into new-infra 2024-05-02 22:40:45 +02:00
48c4ecafae
WIP: caddy: add support for error msg 2024-05-02 22:40:26 +02:00
9aaa619173
chore(bird): Improve code readability 2024-04-01 00:20:41 +02:00
54d227232b
chore(bird): Fix None flag 2024-04-01 00:13:22 +02:00
ba033f9099
feat(bird): Add net.match 2024-04-01 00:06:05 +02:00
8d0139925e
feat(bird): Add as_path.{contains,len}, net.len 2024-03-31 18:12:38 +02:00
7f9ccf3e59
chore(black): Add configuration file (line-limit) 2024-03-31 16:12:51 +02:00
4f18b6c8ef
relax temperature alert for quanta switch 2024-03-10 12:04:00 +01:00
004a033606
Merge branch 'new-infra' of gitea.auro.re:aurore/ansible into new-infra 2024-03-09 20:18:43 +01:00
d20c89defe
WIP: caddy: very early role 2024-03-09 20:18:12 +01:00
97496ef4b8
path security issue (getting root privileges) 2024-03-09 20:09:24 +01:00
0b40cc4b9b
configure timeout on snmp scraping for quanta 2024-03-09 19:35:38 +01:00
66e6c960d3
misc 2024-03-09 12:13:19 +01:00
a004555681 Merge pull request 'collabora' (#106) from collabora into new-infra
Reviewed-on: #106
2024-02-24 19:34:24 +01:00
7fe391c16f
grafana: minor fixes again again again !!!! 2024-02-24 18:55:10 +01:00
e660d8688a
grafana: minor fixes again again !!!! 2024-02-24 14:32:51 +01:00
e5e6dd8056
grafana: minor fixes again 2024-02-24 14:28:08 +01:00
67b29517e2
grafana: i am dumb 2024-02-24 14:06:17 +01:00
b141a1d955 grafana: minor fixes 2024-02-24 13:16:19 +01:00
f70e515769
collabora: minor fixes 2024-02-20 20:44:57 +01:00
806fa25b06
Initial config of collabora 2024-02-17 12:45:33 +01:00
00dcf27614
Merge branch 'new-infra' of gitea.auro.re:aurore/ansible into new-infra 2024-01-28 19:33:04 +01:00
029b001f9b
misc: add collabora.pub 2024-01-28 19:30:51 +01:00
39119a4ffa
feat(mail): Add dovecot configuration 2023-12-17 18:08:54 +01:00
10087b354b
feat(mail): Add postfix configuration 2023-12-17 17:30:28 +01:00
3f02039de1
base_utils: add some useful utils 2023-12-17 15:47:45 +01:00
91d3087047
WIP: misc: test infrastructure for mail 2023-12-17 15:47:06 +01:00
887aadb5fe
misc: WIP: vpn again 2023-11-07 06:07:48 +01:00
02910a8fc0
misc: WIP: vpn 2023-11-07 04:11:28 +01:00
061b6f1049
prometheus_snmp: WIP: lldp 2023-11-06 22:07:06 +01:00
94ba30cc3b
prometheus: remove redundant '%' symbols 2023-11-06 22:05:53 +01:00
934137903a
misc: move some plugins to roles 2023-11-06 22:05:06 +01:00
8359d2ebea
prometheus: Add LLDP for quanta 2023-11-04 23:26:10 +01:00
5c8358ec95
bird: add rr client/cluster id option 2023-11-04 21:43:32 +01:00
261ccfeb5c
WIP: misc: add eaton ups 2023-11-04 21:36:27 +01:00
9eb5793b38
prometheus: fix quanta temp alert queries 2023-11-04 14:02:06 +01:00
68f36ae048
prometheus: filter out outtake quanta sensors 2023-11-04 13:49:52 +01:00
c2f2c03af6
prometheus: use humanize/humanizePercentage 2023-11-04 13:33:06 +01:00
19953b2951
misc: add ff-3.core.sw 2023-11-04 13:23:47 +01:00
3864b641eb
prometheus: cleanup bird alerts 2023-11-03 20:52:12 +01:00
c4744e9ab6
prometheus: fix typo 2023-11-03 20:51:49 +01:00
98f122bb69
prometheus: lower changes threshold for keepalived alerts 2023-11-03 20:51:17 +01:00
41852b4ab8
prometheus: add keep_firing_for for QuantaTemp 2023-11-03 20:50:56 +01:00
a61c997366
prometheus: monitor link usage for switches 2023-11-03 20:50:34 +01:00
3e16224213
misc: add more quanta switches 2023-11-03 20:50:09 +01:00
136dcb693f
misc: add r3-1.core.sw 2023-11-02 22:22:32 +01:00
db7729b3cb
prometheus_snmp: set type of ifType 2023-11-02 22:22:14 +01:00
6949cc202f
firewall: allow monit → prometheus-bird-exporter on infra 2023-11-02 21:32:32 +01:00
83ff27b856
misc: add ec-1.core.sw 2023-11-02 21:32:11 +01:00
16a0d95936
prometheus: refactoring of the config 2023-11-02 20:27:45 +01:00
2928d7e809
misc: infra: edge bgp session 2023-11-02 17:55:52 +01:00
071d82529d
misc: edge: oti vip 2023-11-02 17:55:07 +01:00
f9f278cb65
prometheus: temporarily disable alerts for rezel, vr & isp 2023-11-02 06:15:47 +01:00
4c61d2bc18
prometheus: add bird bgp import alert rules 2023-11-02 06:11:32 +01:00
3fa998ae68
prometheus: cleanup + bird alert rules 2023-11-02 05:53:02 +01:00
071daad994
prometheus_snmp: retype if(Admin|Oper)Status 2023-11-02 00:37:43 +01:00
fc7f59b231
misc: various monitoring changes 2023-11-02 00:25:35 +01:00
9e483d5285
prometheus: add quanta alerts 2023-11-01 18:56:44 +01:00
4c33b77695
Merge branch 'new-infra' of gitea.auro.re:aurore/ansible into new-infra 2023-11-01 18:46:26 +01:00
5e5d2268f3
prometheus_snmp: add various overrides 2023-11-01 18:45:53 +01:00
51674bc1f6
prometheus_snmp: Add alerts on Quanta system 2023-11-01 18:43:32 +01:00
190f31dffd
misc: add gk-1.core.sw 2023-11-01 17:51:29 +01:00
a00a9b123f
prometheus_snmp: set snChasPwrSupplyOperStatus type 2023-11-01 17:14:07 +01:00
9524f29d1f
prometheus_snmp: change snChasFanOperStatus type 2023-11-01 17:00:02 +01:00
14b1f47842
prometheus_snmp: remove snNTP 2023-11-01 16:43:50 +01:00
229a6617de
prometheus: add queue overflow quanta alert 2023-11-01 07:11:30 +01:00
69701f4875
prometheus_snmp: remove index on pwr + add snAgentTemp 2023-11-01 06:41:31 +01:00
6728d2bb00
prometheus_snmp: add snChasPwr and snNTP 2023-11-01 06:30:47 +01:00
be261ab257
prometheus_snmp: add snChasFan 2023-11-01 06:11:27 +01:00
13f22bc7b8
Merge branch 'new-infra' of gitea.auro.re:aurore/ansible into new-infra 2023-11-01 05:58:29 +01:00
2e2e4995ed
misc: prometheus_snmp + various minor fixes 2023-11-01 05:57:21 +01:00
7d58a98bb4
unattended_upgrades: remove codename in origins-pattern 2023-10-03 14:28:20 +02:00
45d380c641
unattended_upgrades: migration 2023-10-03 14:09:48 +02:00
35cdf782c8
wip: bird: misc 2023-09-18 17:15:57 +02:00
fbdeddfc72
misc: move variables to {host,group}_vars 2023-09-17 20:32:05 +02:00
17b46bab5e
firewall: add default value for file based zones 2023-09-17 20:30:09 +02:00
93bccaddfd
quemu_guest: add role + playbook 2023-09-16 02:30:17 +02:00
ddc0597e2a
nftables: remove old role + playbook 2023-09-16 01:57:35 +02:00
fa87d9789d
wip: misc: setup infra-2 2023-09-16 01:52:35 +02:00
078d9a3de9
wip: misc: setup infra-1 2023-09-16 01:24:01 +02:00
e87de918db
keepalived: add blackhole routes 2023-09-11 13:28:27 +02:00
14288224b4
keepalived: add vroute for infra-*:ext0 2023-09-11 11:16:02 +02:00
0e581e7d23
update interface on infra-{1,2} 2023-09-11 03:14:57 +02:00
175e375682
firewall: add role + playbook 2023-09-11 01:58:32 +02:00
cb6ef5dae0
add oti and vpn interfaces 2023-09-07 17:28:05 +02:00
15dda43f21
WIP: readressing + wireguard 2023-07-05 01:25:25 +02:00
1a63ba3bea
add vpn-1 2023-07-05 01:23:21 +02:00
75f0ee785b
bird: param bird__bgp_sessions is now a dict 2023-07-05 01:20:47 +02:00
9de88d0a28
ifupdown2: improve wireguard support
- add prio to ensure idempotency when reloading the iface
- add proto to ease route filtering in bird
2023-07-05 01:18:52 +02:00
655f744a11
ifupdown2: wireguard + routing tables support 2023-07-04 04:05:31 +02:00
0c7b5a2c68
openssh: cleanup playblook + role 2023-07-04 04:04:48 +02:00
e0c95b8f10
iproute2: create role + playbook 2023-07-04 03:45:29 +02:00
058fe0b3f5
freeradius: fix vlan logging 2023-07-02 21:56:37 +02:00
2f4c6a53d8
freeradius: fallback to default vlan whem proxying to federez 2023-07-02 21:26:02 +02:00
ddd8c6dcc0
freeradius: fixes + minimal support for federez 2023-07-02 20:51:42 +02:00
2c64d27fd3
freeradius: add vlan support 2023-07-02 16:45:32 +02:00
b3d18e92b6
freeradius: rewrite *-Station-Id and log SSID 2023-06-25 19:49:12 +02:00
ace765b682
freeradius: user domain is optional 2023-06-25 19:33:33 +02:00
ca1c6c8040
freeradius: remove some modules 2023-06-25 19:33:16 +02:00
f8b932014f
freeradius: improve logging robustness 2023-06-25 19:25:50 +02:00
a5b527ec0e
freeradius: add logging 2023-06-25 00:27:08 +02:00
20bce8a0da
pve: add loutr 2023-06-24 17:25:40 +02:00
4a5b3bbfde
Merge branch 'radius' into new-infra 2023-06-22 17:39:00 +02:00
4a9c0e6d8e
bird: add rezel 2023-06-22 17:30:37 +02:00
aa1e422c58
ifupdown2: add rezel addrs 2023-06-22 17:30:17 +02:00
455a0bdc2a
prometheus: temporarily disable BirdProtocolDown 2023-06-22 17:29:16 +02:00
452066fcfb
pve: add pz2891 2023-04-15 17:13:08 +02:00
669c7ec801
resolvconf: add dns-2 2023-04-08 00:54:33 +02:00
d455bbe00e
kresd + prometheus: monitor kresd 2023-04-08 00:54:13 +02:00
6522a6f076
ansible.cfg: retry SSH connections 2023-04-07 08:57:29 +02:00
5391f2b956
all: update playbook 2023-04-07 08:57:20 +02:00
bbaab0b767
pve_auth: disable root user 2023-04-06 18:22:37 +02:00
676dabd76b
pve: configure users 2023-04-06 00:01:21 +02:00
1978f12794
pve_auth: fix groups + enabled 2023-04-05 23:27:11 +02:00
8f51a2fb80
pve_auth: create role 2023-04-05 22:06:50 +02:00
32ed73735f
pve_activate: add role 2023-04-05 00:19:04 +02:00
4ad25f7057
hostname: add role 2023-04-05 00:18:41 +02:00
454f1d75cb
rename rtr → back 2023-04-05 00:18:25 +02:00
cc1786eb2b
backbone → back + ap → wifi 2023-04-04 01:33:16 +02:00
8bf1f1a1fa
keepalived: add dbus support 2023-04-04 01:32:52 +02:00
dcd56413e8
prometheus: monitor keepalived 2023-04-04 01:29:13 +02:00
e160b98f0e
prometheus_node: collect textfiles 2023-04-04 01:28:51 +02:00
94953e1aa7
snmpd: remove role 2023-04-04 01:28:09 +02:00
833d25078d
prometheus_keepalived: add role 2023-04-04 01:27:26 +02:00
8b5d587f26
keepalived: add snmp support 2023-04-03 18:02:49 +02:00
6ee7a19f21
snmpd: create role 2023-04-02 14:25:09 +02:00
0807dc1d70
prometheus-bird-role → dedicated role + various alerts 2023-04-02 13:25:03 +02:00
922b6894a7
prometheus: cleanup role (lots of features missing) 2023-04-02 05:08:01 +02:00
7db15d9c63
prometheus_node: cleanup 2023-04-01 22:32:42 +02:00
b4fe111c91
knotd: add vote + gisti :) 2023-04-01 21:54:44 +02:00
67ac2a7618
rename hyperv → pve + backbone → back 2023-04-01 21:53:48 +02:00
fcb9ac9d17
rename interfaces 2023-03-28 20:36:46 +02:00
9e24c5373e
root_account: set PS1 statically 2023-03-28 20:35:24 +02:00
b36dd15d3c
rename interfaces + fix fallback 2023-03-27 21:51:07 +02:00
a2e181493d
systemd_link: rename interfaces 2023-03-27 13:09:58 +02:00
71befe1b44
ifupdown2: remove useless forward directives 2023-03-27 11:57:58 +02:00
9c41558d62
ip_forward: create role + playbook 2023-03-27 11:56:17 +02:00
66a015c135
migrate again 2023-03-26 19:02:18 +02:00
eb8368b2e6
migrate edge routers (routeur-aurore.adm -> edge-{1,2}.rtr) 2023-03-26 17:06:34 +02:00
67f0e4ccbc changed ip 2023-03-25 19:20:26 +01:00
f3d67e93b4
ifupdown2: add ens23 & enp2s1 2023-03-25 17:56:19 +01:00
45f5920cdd corrected error 2023-03-25 17:48:40 +01:00
3294cde7a6 added ens20 adresses for later testing 2023-03-25 17:47:03 +01:00
6eeb578d89
bird: more filtering 2023-01-13 10:50:23 +01:00
8b39a7f7dc
filter_plugins: remove soft_unicode import 2023-01-13 09:59:40 +01:00
dcc038bd7c
nftables + bird: add role + fix IP addresses 2023-01-13 08:56:16 +01:00
0a621b53b4
keepalived: set keepalived_main 2023-01-13 08:55:17 +01:00
8ec059ce55
root_account: add alias for bridge 2023-01-13 08:54:57 +01:00
621f39a8f2
base_utils: add tcpdump + tmux 2023-01-13 08:54:38 +01:00
f579e08e21
keepalived: change priorities 2023-01-13 08:53:56 +01:00
48deabba50
bird + ifupdown2: fix IP addrs + iBGP for isp-{1,2} 2023-01-07 09:12:44 +01:00
9f850aa4da
add format_rev plugin 2023-01-07 08:59:16 +01:00
1aba1e5606
dhcpd: remove dhcpd__failover_peer 2023-01-07 08:56:12 +01:00
6d66e56b15
bird: filter by proto (ugly) 2023-01-07 08:53:44 +01:00
e7c3a9c771
ansible: use 'debug' stdout_callback 2023-01-07 08:52:46 +01:00
5eff05f8c5
keepalived + bird: fix IP addrs + OSPF 2023-01-07 03:19:40 +01:00
eca5d1563d
dhcpd: add new VMs 2023-01-07 02:42:18 +01:00
c32b949d04
Merge branch 'dhcp' into new-infra 2023-01-07 02:26:35 +01:00
19c623ab0a
Add config for new VMs 2023-01-07 02:25:53 +01:00
7c21275a11
Merge branch 'bird' into new-infra 2023-01-04 08:05:04 +01:00
95c812b101
root_account: add ip alias 2023-01-04 08:04:51 +01:00
830e5b103d
kresd: add dns-{1,2} 2023-01-04 08:04:36 +01:00
873b5cc6f5
knotd: add network-{1,2} hosts 2023-01-04 08:04:08 +01:00
e995b06ea9
chronyd: add ntp-{1,2} 2023-01-04 08:03:52 +01:00
34b67791bd
Add network-{1,2} hosts 2023-01-04 08:03:28 +01:00
9c19e41afd
Simplify ansible_managed 2023-01-04 08:03:09 +01:00
5c17bc9664
WIP: playbooks: OSPF config for infra-{1,2} 2022-12-22 15:56:52 +01:00
d653432d18
playbooks: add infra-{1,2}.rtr 2022-12-22 15:45:07 +01:00
5a43708a87
playbooks: add infra-{1,2}.rtr 2022-12-22 15:17:00 +01:00
9cd983aa4c
playbooks: add edge-{1,2}.rtr.infra.auro.re 2022-12-22 14:40:53 +01:00
0a0fc8e52c
bird: typos 2022-12-22 13:12:24 +01:00
2db69a8f1c
bird: return -> accept/reject 2022-12-22 12:35:32 +01:00
ac9947c50f
bird: function -> filter 2022-12-22 12:12:01 +01:00
6773c5e90d
bird: cleanup + bogons filtering 2022-12-22 12:02:56 +01:00
cc82841560
bird: typos 2022-12-22 11:00:37 +01:00
b9fb9f377f
bird: remove unused OSPF protocol instances 2022-12-22 10:50:51 +01:00
f43775fc02
bird: don't export static routes to kernel 2022-12-22 10:48:52 +01:00
412a63dc6c
playbooks: add edge-{1,2} 2022-12-21 21:02:12 +01:00
a670cbaba4
bird: typos 2022-12-21 21:01:47 +01:00
ea78f609b5
bird: indent with spaces 2022-12-21 19:53:40 +01:00
aac9151280
bird: restart prometheus-bird-exporter
reload is not supported by the service
2022-12-21 19:49:46 +01:00
1c47ccc4a8
bird: install prometheus-bird-exporter 2022-12-21 19:48:22 +01:00
64dcb4b282
bird: add suffix filter 2022-12-21 18:50:05 +01:00
99ba67f074
bird: add IPv6 support 2022-12-21 18:43:00 +01:00
618cad720a
bird: add OSPF stubnet support 2022-12-21 16:51:43 +01:00
8863eed924
bird: add minimal BGP support 2022-12-21 16:39:28 +01:00
0254b82356
Add edge-{1,2} 2022-10-07 21:34:58 +02:00
d0175e961e
knotd: add services-{1..3}.pve.infra (+ CNAME pve) 2022-09-28 14:11:56 +02:00
e13e450a1f
Disable some unused modules 2022-09-23 12:47:07 +02:00
a15a05ce69
resolvconf: add defaults 2022-09-04 07:42:57 +02:00
45ca2a3236
keepalived: change global VIP + interface for VRRP adv. 2022-09-04 07:41:17 +02:00
b0e12b19f8
bird: prevent duplicate rules 2022-09-04 07:40:51 +02:00
61cdb980ea
keepalived: add minimal support for virtual_routes 2022-09-03 14:09:37 +02:00
c7d7320367
ifupdown2: configure isp-{1,2}.rtr interfaces 2022-09-03 04:06:48 +02:00
866f175ed2
bird: add role + playbook, with support for OSPF + RAdv 2022-09-03 04:06:39 +02:00
c4e9ecacd7
freeradius: disable chase_referal + rebind 2022-09-01 22:28:11 +02:00
2d6ee91f93
freeradius: support for EAP-TTLS/PAP and EAP-PEAP/GTC 2022-09-01 17:35:22 +02:00
e99f183743
knotd: replace A/AAAA to CNAME for pz28.adh
Temporary fix until a dynamic DNS service is available.
2022-09-01 13:45:40 +02:00
231c3aac09
freeradius: remove trailing whitespace 2022-09-01 08:19:15 +02:00
3f29960a04
freeradius: explicitly disable OCSP 2022-09-01 08:18:39 +02:00
67994d988b
freeradius: disable detail + detail.log modules 2022-09-01 03:42:33 +02:00
ea843e2f47
freeradius: minimal config for attr_filter 2022-09-01 03:42:24 +02:00
c6afab5728
freeradius: add eap_inner module 2022-09-01 02:21:12 +02:00
553b371797
ifupdown2: configure radius-1.isp 2022-08-31 10:16:06 +02:00
a816fb1f01
freeradius: add support for sites 2022-08-31 05:04:19 +02:00
4bd54fe371
freeradius: remove more unused files 2022-08-31 04:54:20 +02:00
8f27164c17
freeradius: include clients.conf 2022-08-31 04:54:00 +02:00
8937e4f8e8
freeradius: fix clients.conf (ipv4addr + ipv6addr) 2022-08-31 04:53:37 +02:00
3d6e0f21b6
freeradius: configure eap module + remove more modules 2022-08-31 03:44:20 +02:00
953403d0b3
freeradius: create minimal role + playbook 2022-08-31 02:01:41 +02:00
5a7c8b280d
Merge branch 'master' into dns 2022-08-30 13:54:54 +02:00
2e10714a79 Merge pull request 'NTP: simple fixes (logdir + local stratum + logchange support)' (#101) from ntp into master
Reviewed-on: #101
2022-08-30 13:50:35 +02:00
8f452c76aa
Add radius-1.isp 2022-08-30 13:48:17 +02:00
9b5e1d78fa Merge pull request 'Configure keepalived' (#100) from keepalived into master
Reviewed-on: #100
2022-08-30 13:44:24 +02:00
e86b17094b
keepalived: print link-local VIP first + silence priority warning 2022-08-27 13:47:08 +02:00
1d40950604
keepalived: add IPv6 support in playbook 2022-08-27 13:17:35 +02:00
9820ae62e8
keepalived: better support for notify scripts 2022-08-27 12:55:53 +02:00
c6ac61aa53
keepalived: add minimal support for keepalived 2022-08-27 11:15:18 +02:00
a505441f4d
hosts: add dhcp-{1,2} 2022-08-27 10:43:19 +02:00
b894959c91
dhcpd: add sample playbook 2022-08-27 10:37:56 +02:00
204ad7f2ce
Merge branch 'master' into dhcp 2022-08-27 10:26:39 +02:00
7daa55ef98 Merge pull request 'Bridge and VLAN support for ifupdown2' (#99) from ifupdown2 into master
Reviewed-on: #99
2022-08-27 10:26:28 +02:00
8cc6e916b7
ifupdown2: add sample playbook 2022-08-27 10:21:04 +02:00
34b0ed5478
ifupdown2: add ipv6_addrgen option 2022-08-27 09:53:41 +02:00
5485254c47
ifupdown2: add forward option 2022-08-27 09:28:07 +02:00
d5b0fd85c8
ifupdown2: add bridge_disable_pvid option 2022-08-27 09:18:16 +02:00
f6b12fd696
ifupdown2: add minimal support for bridges 2022-08-27 08:31:42 +02:00
76f76a0ca4
ntp: add logdir + local + logchange support 2022-08-27 06:52:38 +02:00
138ffd6097
knotd: add isp-2.rtr 2022-08-27 05:33:54 +02:00
526eaf84d2
knotd: add isp-1.rtr 2022-08-27 05:17:43 +02:00
ec01fbde95
hosts: add ns-1.auro.re 2022-08-27 05:15:16 +02:00
8bcc0af539 Merge pull request 'Configure /etc/network/interfaces and /etc/resolv.conf using Ansible' (#98) from ifupdown2 into master
Reviewed-on: #98
2022-08-27 04:55:26 +02:00
f723c3e1a4
ifupdown2: notify ifup -a + auto instead of allow-hotplug 2022-08-27 04:46:16 +02:00
1281a6a51a
ifupdown2: add playbook 2022-08-27 04:26:14 +02:00
15e2db49f3
add remove_domain_suffix filter 2022-08-27 04:22:15 +02:00
5ae7126ce2
ifupdown2: add support for stanzas with no gateway 2022-08-27 04:10:11 +02:00
a5a4d28ccc
ifupdown2: simple interfaces file configuration 2022-08-26 20:52:23 +02:00
e26d5dfc27
resolvconf: add role 2022-08-26 19:11:40 +02:00
3d2ce8f79f
ifupdown2: add minimal role 2022-08-26 10:13:37 +02:00
35087971c3
kresd: increase amount of cache 2022-08-26 10:00:04 +02:00
2ff44c58b7
add requirements.txt 2022-08-26 02:23:01 +02:00
9fc0aa1fe8
kresd: create role + playbook 2022-08-26 02:01:12 +02:00
cdc68cedd5
knotd: add dns-1.int 2022-08-26 01:51:33 +02:00
a29a205576 Merge pull request 'NTP: deploy everywhere' (#97) from ntp into master
Reviewed-on: #97
2022-08-26 00:07:57 +02:00
f5f570f635
chronyd: deploy everywhere 2022-08-26 00:06:25 +02:00
b00d5bc09e
chronyd: fix unit name + remove other ntp packages 2022-08-25 23:51:57 +02:00
4b2868783f
chronyd: fix typo in chrony.conf.j2 2022-08-25 23:51:09 +02:00
3830022279 Merge pull request 'NTP server' (#96) from ntp into master
Reviewed-on: #96
2022-08-25 23:16:46 +02:00
d2c1b1c07a
chronyd: add role + playbook 2022-08-25 23:01:00 +02:00
69dc3052ab
Merge branch 'master' into ntp 2022-08-25 22:21:49 +02:00
dbe9dbdc27
Add ntp-1.int 2022-08-25 22:21:38 +02:00
50b0e023dc
Add ntp-1.int 2022-08-25 20:52:48 +02:00
3216307404
Add pz28.adh.auro.re 2022-08-25 20:44:06 +02:00
1938cc24da
isc_dhcp_server: remove old role 2022-08-20 19:34:54 +02:00
874f75d47d
dns_zone: add requirements.txt 2022-08-20 19:09:35 +02:00
4d82018f62
knotd + hosts: add ldap-1 2022-08-20 19:08:33 +02:00
69c3949ef8
dhcpd: add support for failover 2022-08-20 16:53:10 +02:00
6bb2bbb54f
dhcpd: create role with support for DHCPv4 only 2022-08-20 16:08:25 +02:00
d5ab886dd4
dns_zone: add support for diff and check modes 2022-08-20 04:34:47 +02:00
426296d8bd
knotd: fix typo 2022-08-20 04:34:28 +02:00
2389367582
playbooks: add isp.auro.re 2022-08-20 00:06:01 +02:00
c1833e77b3
playbooks: various fixes for knotd.yml 2022-08-19 21:50:43 +02:00
4446c2c47e
dns_zone: do not relativize zone file 2022-08-19 21:50:15 +02:00
8d92035a81
playbooks: add adh.auro.re 2022-08-19 15:54:03 +02:00
6f32c9bc2c
knotd: do not try to load zone file of slave zones 2022-08-19 15:52:06 +02:00
5542e63d14
add filter_plugins path in ansible.cfg 2022-08-19 05:06:59 +02:00
b34c232904
playbooks: WIP: add knotd playbook 2022-08-19 05:03:19 +02:00
5740b64b1e
hosts: add ns-{1,2,master} to inventory 2022-08-19 05:03:19 +02:00
bb2590358d
vault: add TSIG keys 2022-08-19 05:03:18 +02:00
c775a48ca8
net_utils: add miscellaneous Jinja2 filters 2022-08-19 05:03:07 +02:00
126d0f49df
dns_zone + knotd: add 'reverse_hosts' option 2022-08-19 04:44:49 +02:00
4a29c317a5
knotd: hide version in chaos txt 2022-08-18 21:24:12 +02:00
e36e31d18b
remove playbooks/knot.yml 2022-08-18 21:23:48 +02:00
b1f26f2cd7
knotd: fix knotd__queryacl type 2022-08-18 19:50:35 +02:00
9f8dcecf63
dns_zone: ensure zone files are sorted 2022-08-18 16:35:16 +02:00
b9dd74af40
dns_zone + knot: rename some fields + add record types 2022-08-18 16:32:56 +02:00
86277d05c2
knotd: add knotd__soa_rname variable 2022-08-18 03:59:43 +02:00
642b3eb801
knotd: use human times for SOA fields 2022-08-18 03:47:59 +02:00
2744b3b512
dns_zone: make rname relative to zone origin 2022-08-18 03:47:23 +02:00
f321b12d2f
knotd: add queryacl support 2022-08-18 01:35:35 +02:00
43693c2fc8
dns_zone: bug: replace generator with set 2022-08-18 01:33:52 +02:00
961a2f1105
Add knotd role 2022-08-17 19:00:07 +02:00
11939a6032
Add library path in ansible.cfg 2022-08-17 18:59:40 +02:00
4dbe0e562d
dns_zone: cleanup + hosts + product 2022-08-17 18:23:47 +02:00
c97dca8fa8
Add library/dns_zone.py 2022-08-16 20:13:25 +02:00
5c780ffa62
Remove copy-keys.sh 2022-05-22 18:57:17 +02:00
765d24685e
Set ask_vault_pass in ansible.cfg 2022-05-22 18:56:55 +02:00
c291e836a9
Fix missing entries 2022-05-22 18:55:23 +02:00
89d0a682cf Merge pull request 'Add dolibarr' (#92) from dolibarr into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #92
2022-02-26 23:31:51 +01:00
2a2702c6ca
Add dolibarr.srv.auro.re + PostgreSQL DB
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-01-10 22:10:03 +01:00
4a3ba6f366 Merge pull request 'Prometheus: cleanup' (#90) from prometheus_cleanup into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #90
2022-01-01 17:58:15 +01:00
Alexandre Iooss
a320907047 prometheus: fix typo
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-01-01 17:55:32 +01:00
Alexandre Iooss
9e4b8c2509 prometheus: remove ipmi target
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-01-01 17:15:11 +01:00
Alexandre Iooss
a24b473566 prometheus: reduce iLO SNMP timeout
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-01-01 16:45:32 +01:00
Alexandre Iooss
70c8e0ebe0 prometheus: monitor iLO resilient mem and battery 2022-01-01 16:45:10 +01:00
Alexandre Iooss
5ab3dcdac2 prometheus: use enums for iLO SNMP
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2022-01-01 12:04:01 +01:00
Alexandre Iooss
9b53daf42a prometheus: ignore ups-ec-2.ups.auro.re 2022-01-01 12:03:51 +01:00
Alexandre Iooss
40d9108b37 prometheus: add iLO alert rules
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-31 21:26:27 +01:00
Alexandre Iooss
2830558545 prometheus_federation: add ilo_snmp and remove django
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-31 20:04:24 +01:00
Alexandre Iooss
16a2d36472 prometheus: add machines to ilo_snmp
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-31 20:03:27 +01:00
Alexandre Iooss
733e9f555d prometheus: add _snmp suffix to ilo target 2021-12-31 20:03:04 +01:00
Alexandre Iooss
7d9ff449a7 hosts: remove passbolt 2021-12-31 19:41:51 +01:00
Alexandre Iooss
bcded46ed6 prometheus: remove JSON targets cleanup
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-31 19:40:22 +01:00
Alexandre Iooss
860a26a8dc prometheus: federate ilo metrics
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-31 19:39:38 +01:00
Alexandre Iooss
fdeaa355ad prometheus: use longer timeout for iLO scraping 2021-12-31 19:39:23 +01:00
Alexandre Iooss
456c6b47b8 prometheus: add missing snmp_ilo variables 2021-12-31 19:38:35 +01:00
b81af51ccf Merge pull request 'Monitor iLO using SNMP' (#89) from prometheus_ilo into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #89
Reviewed-by: jeltz <jeltz@noreply@auro.re>
2021-12-31 18:40:15 +01:00
Alexandre Iooss
8c7031d059 prometheus: add iLO SNMP target
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-31 18:31:58 +01:00
Alexandre Iooss
67064484d5 prometheus: add iLO SNMP auth information
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-31 17:27:36 +01:00
Alexandre Iooss
50d9282316 prometheus: show failing job when machine is down
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-31 17:26:26 +01:00
Alexandre Iooss
265bd5fbb7 prometheus: use static targets
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-31 15:08:44 +01:00
Alexandre Iooss
944e200394 prometheus: add ipmi job
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-31 14:45:05 +01:00
Alexandre Iooss
f50778ca96 prometheus: commit production alert configuration 2021-12-31 14:44:50 +01:00
Alexandre Iooss
bc4dc03029 prometheus: add newline at the end of targets JSON 2021-12-31 14:44:19 +01:00
Alexandre Iooss
cc2ba9ff7b prometheus: deploy targets_ipmi.json 2021-12-31 14:43:47 +01:00
ba0be43845 Merge pull request 'vault: fix RFC2136 secret' (#88) from fix_rfc2136 into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #88
2021-12-29 13:20:01 +01:00
Alexandre Iooss
d2331c18d0 vault: fix RFC2136 secret
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-29 11:28:40 +01:00
1b9fc70649 Merge branch 'bashrc_root'
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-16 05:56:57 +01:00
8dca876bbc Add a very simple bashrc for root
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-16 05:48:39 +01:00
515222f404 Merge pull request 'Fix SSH CA deployment' (#86) from use_ssh_ca into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #86
2021-12-15 17:31:29 +01:00
2f3612fd8e Deploy SSH CA everywhere and set root password
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-15 17:15:57 +01:00
475715c5f9 Deploy on all Linux hosts
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-15 16:17:30 +01:00
7db282fffb Fix sshd.service → ssh.service 2021-12-15 16:17:11 +01:00
1ecffc2742 Merge pull request 'Borgmatic improvements (very old changes I forgot to merge)' (#84) from borgmatic_hourly into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #84
2021-12-14 08:01:16 +01:00
11937776c8 Merge branch 'master' into borgmatic_hourly
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-12-14 07:58:13 +01:00
79c44554a3 Merge pull request 'Deploy the SSH CA for user authentication' (#80) from use_ssh_ca into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #80
Reviewed-by: erdnaxe <erdnaxe@noreply@auro.re>
2021-12-14 07:49:35 +01:00
7212154fbb Split public SSH key into multiple lines
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Respect the 79 characters per line limit.
2021-12-12 06:08:27 +01:00
e6363e9668 Use the Users CA for authentication
Some checks failed
continuous-integration/drone/push Build is failing
2021-12-12 05:56:54 +01:00
b3f25e2c8b Merge pull request 'CI: use upstream ansible/toolset' (#78) from ci into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #78
Reviewed-by: jeltz <jeltz@noreply@auro.re>
2021-11-28 13:22:52 +01:00
Alexandre Iooss
e0328d0294 ldap_replica: add missing space
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-11-28 13:16:38 +01:00
Alexandre Iooss
eb2abcfebe CI: Update linter rules
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-11-28 13:13:25 +01:00
Alexandre Iooss
dd0d5dd4be CI: use upstream ansible/toolset
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-11-28 12:42:57 +01:00
3217e33eff Merge pull request 'Remove 'dokuwiki' role' (#77) from remove_dokuwiki into master
Some checks reported errors
continuous-integration/drone Build encountered an error
continuous-integration/drone/push Build encountered an error
Reviewed-on: #77
Reviewed-by: erdnaxe <erdnaxe@noreply@auro.re>
2021-11-28 11:20:10 +01:00
a56cea369c Remove 'dokuwiki' role 2021-11-28 11:17:47 +01:00
2c238d17c3 Merge pull request 'cleanup passbolt and bbb' (#76) from cleanup into master
Reviewed-on: #76
Reviewed-by: jeltz <jeltz@noreply@auro.re>
2021-11-28 11:15:46 +01:00
Alexandre Iooss
3c85a2bfb2 passbolt: remove role 2021-11-28 11:13:34 +01:00
Alexandre Iooss
cc3d5d9b7f nginx: remove bbb.auro.re 2021-11-28 11:12:23 +01:00
a55efa8e24 Merge pull request 'postgres: fix defaults' (#75) from postgres into master
Reviewed-on: #75
2021-11-28 11:08:00 +01:00
Alexandre Iooss
fd0cb811a7 postgres: fix defaults 2021-11-28 11:07:13 +01:00
6986588fc1 Merge pull request 'postgres cleanup' (#74) from postgres into master
Reviewed-on: #74
Reviewed-by: jeltz <jeltz@noreply@auro.re>
2021-11-28 11:02:41 +01:00
Alexandre Iooss
45802cf65d borgbackup: backup all postgresql databases 2021-11-28 11:01:33 +01:00
Alexandre Iooss
4bd431f9c3 postgresql: variables in dict 2021-11-28 11:01:29 +01:00
Alexandre Iooss
f0b8075ca6 postgresql: move variables in playbook 2021-11-28 10:33:42 +01:00
Alexandre Iooss
a818fd8ed9 Rename postgresql_server to postgresql 2021-11-28 10:20:17 +01:00
3c25e64516 Merge pull request 'Move playbooks in subfolder' (#73) from move_playbooks into master
Reviewed-on: #73
2021-11-28 10:16:26 +01:00
Alexandre Iooss
40a91da78b base: add logrotate on pve 2021-11-28 10:15:38 +01:00
Alexandre Iooss
f0631e341b Change some comments 2021-11-28 10:08:14 +01:00
Alexandre Iooss
3ccdacde13 docker: do not deploy on stream 2021-11-28 10:05:00 +01:00
Alexandre Iooss
b6d5f4206a ansible.cfg: typo 2021-11-28 10:04:43 +01:00
Alexandre Iooss
511091c808 Make empty playbooks run fine 2021-11-28 09:50:02 +01:00
Alexandre Iooss
b827195c32 README: require at least Ansible 2.9 2021-11-28 09:49:31 +01:00
Alexandre Iooss
4cf4ed0964 Remove sudo upgrade playbook 2021-11-28 09:04:00 +01:00
Alexandre Iooss
c49dfb24b0 Move re2o mail service in postfix playbook 2021-11-28 09:03:49 +01:00
Alexandre Iooss
747c93139b Rename deploy_postfix_non_mailhost.yml to postfix.yml 2021-11-28 09:00:57 +01:00
Alexandre Iooss
2a9e1f4def Rename matrix.yml to matrix-synapse.yml 2021-11-28 08:59:54 +01:00
Alexandre Iooss
9bb2d3f324 Simplify base.yml 2021-11-28 08:58:43 +01:00
Alexandre Iooss
1133f614e4 Split network.yml into each subject 2021-11-28 08:57:27 +01:00
Alexandre Iooss
446c02da5e Split services_web.yml into nginx.yml and docker.yml 2021-11-28 08:52:58 +01:00
Alexandre Iooss
7bdf66f73a Rename log.yml to rsyslog.yml 2021-11-28 08:51:15 +01:00
Alexandre Iooss
278928550c Rename monitoring.yml to prometheus.yml 2021-11-28 08:49:43 +01:00
Alexandre Iooss
9481af3201 Rename bdd.yml to postgres.yml 2021-11-28 08:48:40 +01:00
Alexandre Iooss
daac91f3af Rename backups.yml to borgbackup.yml 2021-11-28 08:46:53 +01:00
Alexandre Iooss
a0dd5ef4b7 Move playbooks in subfolder 2021-11-28 08:41:15 +01:00
de22345d79 Merge pull request 'Remove proxmox.yml' (#72) from proxmox into master
Reviewed-on: #72
2021-11-27 22:35:56 +01:00
Alexandre Iooss
03a9281b88 Remove proxmox.yml 2021-11-27 22:34:44 +01:00
de0022e3f6 Merge pull request 'update_motd: apply conventions' (#71) from update_motd into master
Reviewed-on: #71
2021-11-27 22:33:40 +01:00
Alexandre Iooss
cdaf3dc77a update_motd: Fix typo in vars 2021-11-27 22:31:42 +01:00
Alexandre Iooss
5bc84dbdd2 Add sheband to backups, bdd and postfix playbooks 2021-11-27 22:22:29 +01:00
Alexandre Iooss
0979370418 Add motd for most plays 2021-11-27 22:16:29 +01:00
Alexandre Iooss
14b6a68040 base: configure motd 2021-11-27 20:05:14 +01:00
Alexandre Iooss
cc6f96bbc8 borgbackup-client: call update_motd role in play 2021-11-27 20:04:05 +01:00
Alexandre Iooss
07a0429ae0 nginx: call update_motd role in play 2021-11-27 20:02:08 +01:00
Alexandre Iooss
ce04f937db prometheus: call update_motd role in play 2021-11-27 19:20:32 +01:00
Alexandre Iooss
1009298023 borgbackup_server: call update_motd role in play 2021-11-27 19:16:24 +01:00
Alexandre Iooss
ea394a01db prometheus-federate: call update_motd role in play 2021-11-27 19:16:11 +01:00
Alexandre Iooss
82fdcd026e grafana: update motd 2021-11-27 19:14:56 +01:00
Alexandre Iooss
b82afd13d9 update_motd: use update_motd dict 2021-11-27 19:14:39 +01:00
00d63cf082 Merge pull request 'Add grafana playbook and machine' (#69) from grafana into master
Reviewed-on: #69
2021-11-27 18:34:42 +01:00
Alexandre Iooss
a791cda652 grafana: move Aurore specific variables out of the role 2021-11-27 18:29:05 +01:00
Alexandre Iooss
fdfed1a05a grafana: remove trailing lines 2021-11-27 18:17:57 +01:00
Alexandre Iooss
e2acfd4031 grafana: single quote LDAP password 2021-11-27 18:17:57 +01:00
Alexandre Iooss
c7f94b54c8 grafana: validate gpg key 2021-11-27 18:17:57 +01:00
Alexandre Iooss
aba0370c5b Add grafana playbook and machine 2021-11-27 18:17:57 +01:00
6bb02815e7 Merge pull request 'lint' (#70) from lint into master
Reviewed-on: #70
2021-11-27 18:13:58 +01:00
Alexandre Iooss
a523b29ac7 Add escalope.adm.auro.re 2021-11-27 17:10:59 +01:00
Alexandre Iooss
7b82a3f7ea Add YAML headers 2021-11-27 17:10:51 +01:00
b3838ee2a0 Merge pull request 'proxy.adm.auro.re: reverse netbox and wiki' (#68) from reverseproxy into master
Reviewed-on: Aurore/ansible#68
2021-11-25 11:56:47 +01:00
Alexandre Iooss
7f53120966 proxy.adm.auro.re: reverse netbox and wiki 2021-11-25 11:55:01 +01:00
d23dbe2d49 Merge pull request 'pve_service' (#67) from pve_service into master
Reviewed-on: Aurore/ansible#67
2021-11-22 18:31:59 +01:00
Alexandre Iooss
eed6ec558c README: use passerelle.auro.re 2021-11-22 18:24:38 +01:00
Alexandre Iooss
2ac9c40579 make log.yml executable 2021-11-22 18:12:27 +01:00
Alexandre Iooss
3efc8179bc logrotate: restore Debian formatting 2021-11-22 18:08:25 +01:00
Alexandre Iooss
3a56439fac update_motd: remove become true 2021-11-22 18:03:09 +01:00
Alexandre Iooss
94b8f37302 rsyslog_common: remove become true 2021-11-22 18:02:53 +01:00
Alexandre Iooss
1392e3fe64 Remove cached motd 2021-11-22 18:01:21 +01:00
Alexandre Iooss
cfb891d10c Add netbox machine 2021-11-22 18:01:11 +01:00
Alexandre Iooss
11b3738fcd ldap_client: Add one extra line to follow Debian 2021-11-22 18:00:57 +01:00
Alexandre Iooss
b2a17e20f2 Rename stream to galene 2021-11-21 10:23:24 +01:00
Alexandre Iooss
311cfb223b Remove defunct servers 2021-11-21 10:06:08 +01:00
Alexandre Iooss
6e77b4cb3c Update copy-keys.sh script and SSH configuration 2021-11-21 09:40:37 +01:00
4ccd33eec1 Merge pull request 'Add syslog over TCP support' (#66) from log_add_tcp into master
Reviewed-on: Aurore/ansible#66
2021-10-28 11:00:48 +02:00
f60795beaa Add syslog over TCP support 2021-10-28 10:54:21 +02:00
bae87c809e Merge pull request 'Install prometheus-node-exporter-collectors' (#65) from node_exporter_bullseye into master
Reviewed-on: Aurore/ansible#65
2021-09-24 01:54:43 +02:00
8b54121a87 Install prometheus-node-exporter-collectors 2021-09-24 01:41:01 +02:00
4a594bf1cc Merge pull request 'add exporter on bullseye' (#64) from fix_apt_exporter_bullseye into master
Reviewed-on: Aurore/ansible#64
2021-09-23 19:54:35 +02:00
5d3d965112
the service does not need to be enabled 2021-09-23 19:02:26 +02:00
73e522f0c6
add exporter on bullseye 2021-09-23 18:54:06 +02:00
94a470b7f2 Merge pull request 'prometheus-rules' (#62) from prometheus-rules into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#62
Reviewed-by: jeltz <jeltz@noreply@auro.re>
2021-09-08 10:15:44 +02:00
b31f9bd952 Retention time is now a file that will be copied
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-08-21 11:25:39 +02:00
cc3b4294ae Kepp federated datas 4 months (120 days)
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-08-20 19:31:04 +02:00
f17e7f7524 Add snmp pdu password to generate config 2021-08-20 18:22:00 +02:00
0bfc631465 Remove unused files
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-08-20 17:00:19 +02:00
c5e6fbcfdf Configuration for monitoring APC PDU 2021-08-20 16:58:28 +02:00
91fe213e02 Merge branch 'prometheus-rules' of https://gitea.auro.re/Aurore/ansible into prometheus-rules
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-08-20 13:28:38 +02:00
7ca7c27fec Add PDU snmp credentials 2021-08-20 13:28:19 +02:00
db969625cd Add the PDU from GS
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-08-20 12:17:17 +02:00
54b073bd02 Typo in unhealthy disk rule 2021-08-18 18:53:27 +02:00
ab697bafce Perceval was moved from EDC to Fleming. Add group by server. 2021-08-16 08:32:20 +02:00
e6b6790f63 New rule for unhealthy disks 2021-08-13 15:24:12 +02:00
cca10e7cc9 Merge pull request 'Access Point EDC removed (InWall)' (#61) from remove_wireless_ap into master
All checks were successful
continuous-integration/drone Build is passing
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#61
2021-07-17 16:18:03 +02:00
ab11e6cd65 Access Point EDC removed (InWall) 2021-07-17 16:12:13 +02:00
bd1343cf03 Merge pull request 'Remove mail from re2o bug report' (#59) from remove-mail into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#59
2021-05-25 23:13:54 +02:00
b7ead19d50 Remove mail from re2o bug report
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-05-25 23:11:30 +02:00
bb97bca456 Increase RandomizedDelaySec when hourly = 0
Some checks reported errors
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build encountered an error
2021-05-23 14:09:01 +02:00
4f66702f15 Merge pull request 'Add caradoc' (#58) from add_caradoc into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#58
2021-05-23 14:07:57 +02:00
9296a2ed91 Add caradoc.adm.auro.re
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-05-23 14:02:20 +02:00
4f2f0ffe64 Increase swap alert threshold 2021-05-19 15:32:33 +02:00
c8a877282f Add 9 & 10 for Debian distribution
Some checks failed
continuous-integration/drone/push Build is failing
2021-05-19 15:29:40 +02:00
d89d88813f Merge pull request 'Add routeur-aurore* to routeur group' (#57) from rsyslog_queues into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#57
2021-05-10 13:06:07 +02:00
c6b768e1bb Don't run borgmatic every hour if not needed
Some checks failed
continuous-integration/drone/push Build is failing
2021-05-10 13:02:45 +02:00
926790844b Add routeur-aurore* to routeur group
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is passing
2021-05-10 13:00:47 +02:00
ceaf75f0ad Merge pull request 'Use a disk assisted queue for rsyslog' (#56) from rsyslog_queues into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#56
2021-05-04 00:54:40 +02:00
2c82653383 Merge pull request 'Monitor perceval' (#55) from monitoring_perceval into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#55
2021-05-04 00:53:36 +02:00
05f76c7586 Monitor perceval
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is passing
2021-05-04 00:51:25 +02:00
604373db03 Set rsyslog_high_density for routers
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is passing
2021-04-30 16:49:36 +02:00
b29e9c0e45 Configure a disk-assisted queue for output actions 2021-04-30 16:49:00 +02:00
cc681e4fac Add an inventory group for routers. 2021-04-30 16:39:52 +02:00
f50586c476 Merge pull request 'Update ansible-lint' (#54) from update_ansible_lint into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#54
2021-04-17 17:47:13 +02:00
9c47067f93 No need to only warm for unnamed task anymore
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-04-17 17:43:49 +02:00
3a600d9061 Give a name to unnamed tasks 2021-04-17 17:43:49 +02:00
dada40e005 Merge branch 'master' into update_ansible_lint
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-04-17 17:24:15 +02:00
1520ad92c8 Merge pull request 'Installation Prometheus-postgres-exporter' (#53) from prometheus_postgres_exporter into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#53
Reviewed-by: otthorn <otthorn@noreply@auro.re>
Reviewed-by: jeltz <jeltz@noreply@auro.re>
2021-04-14 20:19:39 +02:00
f409fb53cb remove port for docker
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-14 20:11:23 +02:00
11d0b46ef0 Remove port for docker instances. Remove 'remove old files' tasks 2021-04-14 20:00:16 +02:00
013743f910 typo in docker rules
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-14 19:54:37 +02:00
1b0bff4c51 Fix deployment and add prometheus groups for hosts
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-14 19:51:47 +02:00
fde52f2e42 Alerts repository owned by prometheus
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-14 19:29:12 +02:00
e4d2416722 fix typo 2021-04-14 19:27:13 +02:00
226b55b0d1 Update alerts (remove instance, translations) 2021-04-14 19:10:42 +02:00
5c08fed9de 👷 Only warn for unnamed tasks (used in include_role)
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-12 22:32:03 +02:00
2d9d66c16d ⬆️ Update CI: ansible-lint version 2021-04-12 22:30:52 +02:00
fd5ad8d5ac Merge branch 'prometheus_postgres_exporter' of https://gitea.auro.re/Aurore/ansible into prometheus_postgres_exporter
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-04-12 11:10:31 +02:00
5d9a6599e8 Fix some typos, in accordance to Solal's comments 2021-04-12 11:10:15 +02:00
3320e3e0c6 Update the labels for the alert (make complete tenses) 2021-04-12 11:01:43 +02:00
676cc716cf Modify label for the alert 2021-04-12 11:00:31 +02:00
954e3e0892 End of yaml file (bad copy/paste) 2021-04-12 10:58:59 +02:00
pz2891
8c666151d6 Merge branch 'master' into prometheus_postgres_exporter
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-04-12 10:10:17 +02:00
d891559e28 Fix CI
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-04-12 10:03:53 +02:00
1908deee9c fix CI
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-12 10:01:39 +02:00
jeltz
4c8550bfe1 Merge pull request 'Allow root to connect using peer authentication' (#52) from bdd_fix_auth into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#52
2021-04-11 22:14:26 +02:00
e2b1f8eae5 Allow root to connect using peer authentication
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-11 22:08:11 +02:00
6e376a72e3 fix CI
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-11 22:04:05 +02:00
6c64bb214c fix CI
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-11 22:01:21 +02:00
764f0f106d Install postgres exporter when it is bullseye or buster
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-11 21:38:29 +02:00
bdcdb8ceae Radius, not a radis ! Fix typo... 2021-04-11 21:32:53 +02:00
7d99cef57c Fix typo 2021-04-11 21:32:20 +02:00
ca3d89e671 Install postgresql on radius. Monitore it on prometheus-aurore
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-11 21:29:02 +02:00
749188e297 Add a group with all radius 2021-04-11 21:27:43 +02:00
c48fe1ae17 7% rollback for the warning 2021-04-11 20:57:53 +02:00
304437da97 Remove .save file 2021-04-11 20:56:40 +02:00
9d18ebb7f1 Fix docker rules
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-11 17:18:32 +02:00
6775d9ecde Add docker rules 2021-04-11 16:43:34 +02:00
9ebdf15bb9 Splite alerts on some files 2021-04-11 15:58:35 +02:00
dd48302585 Configure Prometheus and Prometheus federate to scrape Postgres Exporter
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-10 18:01:55 +02:00
45041be2ab Install postgres exporter 2021-04-10 17:29:50 +02:00
pz2891
3d1d787063 Merge pull request 'Add the Rives 231 UPS' (#50) from add_ups_231 into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#50
2021-04-10 17:00:57 +02:00
9ed7441e34 Add the Rives 231 UPS
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-10 16:58:48 +02:00
pz2891
28714ecf95 Merge pull request 'Update Unifi AP' (#49) from update_access_point_list into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#49
2021-04-09 16:35:43 +02:00
pz2891
a33ea29637 Merge branch 'master' into update_access_point_list
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-09 16:34:43 +02:00
efa428fba0 Update Unifi AP
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-09 15:06:55 +02:00
pz2891
e3c56e7d46 Merge pull request 'Mise à jour de la liste des bornes wifi' (#48) from update_access_point_list into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#48
2021-04-09 10:13:48 +02:00
82f05482d0 Add 3 Access Points forgotten in GS
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-09 09:54:52 +02:00
73749e9e6b Update the list of Access Point
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-09 09:27:47 +02:00
pz2891
6afd0cb4ac Merge pull request 'Monitor ups-ec-3.ups.auro.re' (#47) from add_rives_vm_master into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#47
2021-04-08 16:17:07 +02:00
pz2891
f7529be904 Merge branch 'master' into add_rives_vm_master
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-08 16:15:52 +02:00
d2787479cf Monitor ups-ec-3.ups.auro.re
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-07 16:55:35 +02:00
jeltz
aac4c05cd3 Merge pull request 'WIP : add_rives_vm_master' (#42) from add_rives_vm_master into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#42
2021-04-06 19:39:01 +02:00
jeltz
6b2bc60589 Merge branch 'master' into add_rives_vm_master
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-04-06 19:37:57 +02:00
jeltz
e2f5529498 Merge pull request 'Separate AP/servers down alerts and add temperature alerts' (#46) from prometheus_alerts into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#46
2021-04-03 17:28:22 +02:00
91817b324c Increase the alert threshold for temperatures
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-04-03 08:04:10 +02:00
1c3127dbbe Add more node-exporter alerts
All checks were successful
continuous-integration/drone/push Build is passing
Source: https://awesome-prometheus-alerts.grep.to/rules.html
2021-04-02 22:55:51 +02:00
f80435cb31 Differentiate alerts for servers and Wi-Fi APs
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-02 21:54:38 +02:00
06f101527d Use a dynamic interval for UPS output voltage alerts
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-02 13:57:34 +02:00
jeltz
2388bfdc3d Merge pull request 'Cleanup Prometheus alerts' (#45) from prometheus_alerts into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#45
2021-04-01 19:24:05 +02:00
83f5b35e59 Fix a filename typo
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-04-01 18:24:21 +02:00
35286a661a Change an alert description 2021-04-01 18:24:03 +02:00
11335a6077 Fix typo in alert description
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-01 18:15:22 +02:00
083fc4da9a Fix permissions on prometheus.yml 2021-04-01 18:15:09 +02:00
f69dfd8799 Remove other unmanaged hosts
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-01 17:41:22 +02:00
5d681a95ea Remove unmanaged hosts from inventory
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-01 17:31:21 +02:00
a743ce09fb Move templates of the prometheus_federate role
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-01 09:42:54 +02:00
bc35cd8e90 Move templates of the prometheus role 2021-04-01 09:40:22 +02:00
5bcc428895 Remove 'instance' from description and fix typos 2021-04-01 09:36:11 +02:00
eeaf0f8486 Fix syntax errors
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-01 06:02:40 +02:00
e247aa3f70 Uniform labels for alerts 2021-04-01 05:21:08 +02:00
jeltz
424aa80d8f Merge pull request 'Use update_motd everywhere' (#44) from use_update_motd_everywhere into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#44
2021-03-30 10:12:14 +02:00
jeltz
e17f58111f Merge pull request 'Store local logs of log.adm.auro.re in /var/log/remote' (#43) from fix_local_logs_collector into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#43
2021-03-30 10:11:04 +02:00
ac05da7173 Use update_motd everywhere
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-30 10:08:21 +02:00
8ab4159d38 Don't try to configure rsyslog on Wi-Fi APs
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-30 10:06:36 +02:00
dff0d9922c Store log.adm.auro.re local logs in /var/log/remote 2021-03-30 10:06:25 +02:00
dd274891a5 resolve conflicts
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-30 09:30:06 +02:00
cec907af48 remove file (copied from utils) 2021-03-30 09:20:31 +02:00
2952c39f70 Fix issues for installing radius-rives (baq package for postgresql-client) 2021-03-30 09:20:31 +02:00
3de76b0ac7 Add new Bornes of EDC 2021-03-30 09:20:31 +02:00
cccd9ac598 Add master Rives VM 2021-03-30 09:20:25 +02:00
jeltz
6104782a37 Merge pull request 'Cleanup logrotate configuration' (#41) from logrotate into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#41
2021-03-30 07:51:52 +02:00
85e691a0a2 Don't store journald logs to disk
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
As they are already stored on disk by rsyslog.
2021-03-30 07:46:06 +02:00
606df65535 Cleanup logrotate role 2021-03-30 07:45:52 +02:00
3030d3bfab Fix typo: use 'Reload' instead of 'Restart' 2021-03-30 07:42:46 +02:00
f59d9ee6f0 WIP: add logrotate config for rsyslog-managed files 2021-03-30 06:01:43 +02:00
jeltz
9f671e71d6 Merge pull request 'Rename 're2o-bdd' to 're2o-db'' (#50) from fix_re2o_bdd_host into master
Reviewed-on: Aurore/ansible#50
2021-03-24 02:58:43 +01:00
d567ded046 Rename 're2o-bdd' to 're2o-db' 2021-03-24 02:57:11 +01:00
jeltz
6d74f04db4 Merge pull request 'Better distribution of backups over time' (#49) from backups into master
Reviewed-on: Aurore/ansible#49
2021-03-24 02:12:53 +01:00
21eaeb2d42 Better distribution of backups over time 2021-03-24 02:10:11 +01:00
jeltz
789c11c3e3 Merge pull request 'Cleanup borgmatic related roles' (#47) from backups into master
Reviewed-on: Aurore/ansible#47
2021-03-18 22:19:39 +01:00
465ab398c0 remove file (copied from utils) 2021-03-17 20:43:55 +01:00
a1533b7efd Fix issues for installing radius-rives (baq package for postgresql-client) 2021-03-17 20:41:46 +01:00
ffbedf6d35 Add new Bornes of EDC 2021-03-16 21:34:41 +01:00
f662e4bd47 Remove bullseye for radius role. Add the oid for temperature of ups 2021-03-16 21:13:45 +01:00
3000f46c46 Randomize borgmatic timer 2021-03-16 15:05:29 +01:00
6f927e30f3 Exclude docker and lxcfs folders from borgbackup 2021-03-16 15:05:07 +01:00
8524b9fa99 Fix typo 2021-03-16 14:13:12 +01:00
37582abfe1 Remove useless tasks from borgmatic_client 2021-03-16 13:47:14 +01:00
96a498c6de Break long lines in borgmatic.service unit 2021-03-16 13:46:46 +01:00
jeltz
d902b71e04 Merge pull request 'Log source port for NGinx' (#46) from fix_logging_src_port into master
Reviewed-on: Aurore/ansible#46
2021-03-16 13:22:58 +01:00
1be92bad62 Log source port for NGinx 2021-03-16 09:43:13 +01:00
01bca6597d Run borgmatic every hour 2021-03-16 09:38:51 +01:00
jeltz
eabd709ec7 Merge pull request 'Add kanboard.auro.re to proxy-ovh.adm.auro.re' (#45) from kanboard into master
Reviewed-on: Aurore/ansible#45
2021-03-15 13:16:36 +01:00
jeltz
2d8897e9f9 Merge pull request 'Add bullseye support in 'prometheus_node'' (#44) from fix_prometheus_bullseye into master
Reviewed-on: Aurore/ansible#44
2021-03-15 10:55:57 +01:00
21a3d5af2a Add bullseye support in 'prometheus_node' 2021-03-15 10:50:40 +01:00
jeltz
4305a60639 Merge pull request 'Backups with borg and borgmatic' (#39) from backups into master
Reviewed-on: Aurore/ansible#39
2021-03-15 07:53:33 +01:00
3f3f688da4 Use 'present' instead of 'latest' (ansible-lint) 2021-03-15 07:51:48 +01:00
6713b550b6 Merge branch 'master' into backups 2021-03-15 07:50:11 +01:00
cb3ec07121 Use 'inventory_hostname' instead of 'ansible_fqdn'
While 'ansible_fdqn' can be changed by a compromised host,
'inventory_hostname' can't (hopefully).

It should therefore no longer be possible for the said host to access
the backups of another host.
2021-03-15 07:25:09 +01:00
243ec1fe9d [borgbackup_client] VaRi0u5 f1X3s 2021-03-15 01:04:42 +01:00
e12f67c920 [borgbackup_client] ignore some Strech machines 2021-03-15 01:03:34 +01:00
f8e5f0cc76 Manually cherrypicked from 65c94d8e84 2021-03-14 23:56:07 +01:00
jeltz
45220cdebd Merge pull request 'Allow root to log as postgres' (#43) from bdd_local_root into master
Reviewed-on: Aurore/ansible#43
2021-03-14 23:55:49 +01:00
f15b222cdc Allow root to log as postgres 2021-03-14 23:45:36 +01:00
a54006c9d4 Various fixes 2021-03-14 23:39:12 +01:00
6f36506a98 rm a _bak file 2021-03-14 22:09:27 +01:00
41eb446114 small fix 2021-03-14 22:08:29 +01:00
7480a7c565 [borgbackup_client] precedence rules and sain defaults for borg config 2021-03-14 22:02:34 +01:00
59f2c94a61 Custom borgbackup configuration for the logs 2021-03-14 21:14:37 +01:00
e570ce67b3 [borgbackup_client] do not backup /var/log/ 2021-03-14 19:23:04 +01:00
b14b359027 [borgbackup_client] add exlude path to conf 2021-03-14 19:21:15 +01:00
33a1ec02f3 [borgbackup_client] update config directory to be homogeneous 2021-03-14 19:07:02 +01:00
ebfc4f2a26 [borgbackup_client] do update cache 2021-03-14 19:03:44 +01:00
0b5562f3f4 Add litl.adm.auro.re 2021-03-14 18:57:44 +01:00
86f8b31159 Delegate facts for borgbackup_client 2021-03-14 18:44:13 +01:00
d9f1104309 Move id_remote to /etc/borgmatic 2021-03-14 18:42:26 +01:00
c6cae75031 [borgbackup_server] fix /borg permissions 2021-03-14 18:29:33 +01:00
46d10022ea [borgbackup_client] fix rentention date to int and list correctly source directories 2021-03-14 18:24:36 +01:00
ff750c5b63 [borgbackup_client] remove 1 minute sleep and fix verbosity 2021-03-14 18:23:44 +01:00
2651432582 [WIP] various fixes 2021-03-14 18:22:52 +01:00
c5afbdbde4 remove borg_host_dir 2021-03-14 18:22:17 +01:00
d928c7f7f0 [borgbackup_client] rename variable correclty 2021-03-14 16:11:40 +01:00
021a5ef1e8 [borgbackup_client] various fixes for ssh keys 2021-03-14 16:11:18 +01:00
c99b611b8f Various fixes 2021-03-14 14:17:36 +01:00
8112788396 [borgbackup_client] Add 'user:' in authorized_key 2021-03-14 13:18:30 +01:00
2f2f71422f [borgbackup_client] Move some handlers to tasks 2021-03-14 13:16:08 +01:00
jeltz
25e05069de Merge pull request 'Monitor more switchs using Prometheus' (#42) from fix_exported_prometheus into master
Reviewed-on: Aurore/ansible#42
2021-03-14 11:53:45 +01:00
ac42401d6d Merge branch 'master' into fix_exported_prometheus 2021-03-14 10:20:05 +01:00
a43a9839f8 Monitor more switchs 2021-03-14 10:19:55 +01:00
jeltz
11578494ec Merge pull request 'Centralisation des journaux (pas encore Elastic)' (#40) from logs-first-phase into master
Reviewed-on: Aurore/ansible#40
2021-03-13 05:06:33 +01:00
637b74a2ad Fix some linter issues 2021-03-13 05:05:30 +01:00
f45cd77510 Merge branch 'master' into logs-first-phase 2021-03-13 05:02:30 +01:00
jeltz
715d332d25 Merge pull request 'Migration des bases de données vers bdd.adm.auro.re' (#41) from bdd-saclay into master
Reviewed-on: Aurore/ansible#41
2021-03-13 04:54:59 +01:00
65c94d8e84 Fix trailing whitespace in the linter
Some checks failed
continuous-integration/drone/push Build is failing
2021-03-13 03:13:43 +01:00
4150a77649 Remove vote from bdd.adm.auro.re
Some checks failed
continuous-integration/drone/push Build is failing
2021-03-13 03:09:21 +01:00
a01a2095d6 Add passwords in all and vault for postgres db for wikijs, gitea, nextcloud, drone 2021-03-13 03:07:35 +01:00
98171e449d Update postgresql variable to match the new scheme in bdd.adm.auro.re 2021-03-13 02:48:16 +01:00
8ec838962d Postgresql is version 13 on bullseye
Some checks failed
continuous-integration/drone/push Build is failing
2021-03-13 02:35:39 +01:00
bdc59049ae Rename file for consistency 2021-03-13 02:35:03 +01:00
f6e1949c21 Adding master VM for Rives and adapt radius role for bullseye
Some checks failed
continuous-integration/drone/push Build is failing
2021-03-12 12:29:52 +01:00
1611f4a93c [utils] move the sudo_upgrade playbook with other utils
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-12 01:59:03 +01:00
904678d1ac [borgbackup_client] Add borg encryption passphrase to vault
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-12 01:49:04 +01:00
965bbe62a4 [borgbackup_client] configure encryption passphrase and storage 2021-03-12 01:46:35 +01:00
d7a4995496 [borgbackup_client] backup the ZFS datasets
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-12 01:06:48 +01:00
d16676bfb6 [borgbackup_client] hostname should also be unique, but more legible than fqdn 2021-03-12 01:05:58 +01:00
cdcfad7ac2 [borgbackup_client] backup /var/ also (for now) 2021-03-12 01:05:19 +01:00
29f2823960 [borgbackup_client] tell borg that a postgresql database lies on re2o-bdd
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-12 00:32:08 +01:00
454bc66ae0 [borgbackup_client] backup /etc/ everywhere 2021-03-12 00:30:00 +01:00
3f8ffbe164 [borgbackup_client] Add borg username and group defaults 2021-03-12 00:01:11 +01:00
4123af6c01 [borgbackup_client] Install client on all machines (servers, vms and lxc containers) 2021-03-11 23:56:07 +01:00
531f7593d2 [borgbackup_client] fix identation
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-11 23:37:55 +01:00
313314a674 [borgbackup_client] fix risky file permission on apt config for pinning version 2021-03-11 23:36:27 +01:00
4642395330 [borgbackup_client] Add initial role defintion
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-11 23:29:57 +01:00
f0f56ecd3f Fix linter-related issues
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-11 20:15:35 +01:00
7cf616f6c7 Add playbook for backups
Some checks failed
continuous-integration/drone/push Build is failing
2021-03-11 20:09:26 +01:00
2ea7f6f9f7 Add host_vars for perceval 2021-03-11 20:09:09 +01:00
db8dbb6c7a Add borgbackup_server role 2021-03-11 20:08:41 +01:00
jeltz
2a6c2b30de Merge pull request 'Rôle pour motd' (#38) from update_motd into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#38
2021-03-11 19:34:41 +01:00
jeltz
7a691882f3 Merge pull request 'Add databases for Grafana and CAS' (#37) from add_bdd_services into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#37
2021-03-11 19:33:24 +01:00
69516012a2 Add databases for Grafana and CAS
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-11 19:28:14 +01:00
bcc492339f Add master Rives VM 2021-03-11 15:38:49 +01:00
pz2891
e5299d8087 Merge pull request 'Merge monitoring of new ups, and adapt threesold' (#33) from monitoring_ups into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#33
Reviewed-by: otthorn <otthorn@noreply.localhost>
Reviewed-by: jeltz <jeltz@noreply.localhost>
2021-03-11 15:09:43 +01:00
pz2891
f6dfd792d3 Merge branch 'master' into monitoring_ups
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-11 15:06:33 +01:00
jeltz
40cd5c71ad Merge pull request 'Fix: keep the logs for 90 days' (#36) from logrotate-fix-90-jours into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#36
2021-03-11 14:38:17 +01:00
pz2891
472feb2dc0 Merge branch 'master' into monitoring_ups
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-11 14:32:11 +01:00
077858724a Merge branch 'master' into logrotate-fix-90-jours
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-11 14:30:48 +01:00
38386fa1a0 Merge branch 'master' into logrotate-fix-90-jours 2021-03-11 14:28:45 +01:00
jeltz
7c7de51903 Merge pull request '[Docker] do not cache pip' (#35) from docker_best_pratices into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#35
2021-03-11 14:25:08 +01:00
otthorn
a31f57e844 Merge branch 'master' into monitoring_ups
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-11 14:23:39 +01:00
jeltz
974fcff1d3 Merge pull request 'Add playbook to deploy sudo update on all machines' (#34) from sudo_update into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#34
2021-03-11 14:22:20 +01:00
6125856c60 Merge branch 'monitoring_ups'
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-11 14:06:38 +01:00
a64864150f Remove services-web from hosts
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is passing
2021-03-11 13:33:03 +01:00
d233fc2759 Update of threesold for warning battery 2021-03-11 13:23:15 +01:00
14532d88db Add kanboard.auro.re to proxy-ovh.adm.auro.re
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-10 20:43:45 +01:00
jeltz
ebb3c894da Merge pull request 'Ansiblesation des VMs de BDD' (#32) from service-bdd-ovh into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#32
2021-03-10 20:18:15 +01:00
df4bee2980 Add kanboard database to bdd-ovh
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 20:14:02 +01:00
6095d9cef9 Add 'no_log' for postgres passwords
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 18:18:08 +01:00
630377edad Create users and databases on bdd-ovh
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 17:21:58 +01:00
b3fa8a455d Add/Update password for postgres db codimd, etherpad and synapse
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 17:13:56 +01:00
5871e1cfb8 Add/Update password for postgres db codimd, etherpad and synapse 2021-03-10 17:13:13 +01:00
d16f444130 Use a dict for HBA hosts
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 15:59:21 +01:00
4f6eda8329 Use /run instead of /var/run to please systemd 2021-03-10 15:57:19 +01:00
628e11488d Switch postgresql to english 2021-03-10 15:22:01 +01:00
bd05b702bb Use '::' in place of '[::]' 2021-03-10 15:19:39 +01:00
06b54d5f89 Use postgresql_privs
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-10 14:27:14 +01:00
40eadf802c Add template and no_log for postgresql_user
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-10 13:58:40 +01:00
8e855d7009 Listen addresses must be quoted
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 13:36:10 +01:00
7a07155237 Install python3-psycopg2 (required by Ansible)
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 13:35:18 +01:00
36b04239fd Rename 'postgresql_db' to 'postgresql_databases' 2021-03-10 13:34:58 +01:00
f919ec689a Fix 'ansible_header' → 'ansible_managed'
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 13:25:36 +01:00
9ef6202fdf Add configuration for users and databases
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 13:23:52 +01:00
879e033857 Fix malformed role definition 2021-03-10 13:21:19 +01:00
ba4db4a835 Fix undefined variable
Some checks failed
continuous-integration/drone/push Build is failing
2021-03-10 12:58:51 +01:00
bbf4ac323c Moniroting of ups environmental temperature 2021-03-10 12:55:11 +01:00
d815434360 Add new ups monitored 2021-03-10 12:53:28 +01:00
76361de3f1 Add playbook for DBs
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 12:52:15 +01:00
69c6d5b55d add and clean bdd hosts
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 12:51:07 +01:00
0656dacbe8 Add config for bdd local
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 12:47:15 +01:00
6951e017b7 bdd config for synapse
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 12:43:08 +01:00
1105ea88c1 rename VM to a simpler name (services-bdd-ovh -> bdd-ovh) 2021-03-10 12:40:17 +01:00
8b9bef865e postgresql listen on pseudo-address
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 12:26:18 +01:00
dbbaf0d26d remove tailling whitespaces
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-10 12:11:02 +01:00
a4c393d3fb fix yaml ci truthy value
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-10 12:10:06 +01:00
d14306a86c fix syntax for CI
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-10 12:08:05 +01:00
a625a58ddd create role postgresql_server
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-10 12:01:32 +01:00
64ae2a8521 configure postgres for services-bdd-ovh 2021-03-10 12:01:16 +01:00
jeltz
452b605fc2 Merge pull request 'Update the list of packages installed via baseconfig' (#30) from add_dnsutils into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#30
2021-03-07 23:39:55 +01:00
2c0727a419 Update the list of packages installed via baseconfig
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-07 21:41:42 +01:00
jeltz
41779fb172 Merge pull request 'Add backup root SSH keys' (#27) from add-ssh-keys into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: Aurore/ansible#27
2021-03-07 21:30:38 +01:00
deb4372588 Merge branch 'master' into add-ssh-keys
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-07 21:29:57 +01:00
2e912fc47a Add recovery SSH keys for ynerant and otthorn
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2021-03-07 21:23:09 +01:00
929baa300f Use 'update_motd' in 'prometheus_federate' (again)
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-06 04:48:39 +01:00
71ee06c9c0 Fix typo
Some checks failed
continuous-integration/drone/push Build is failing
2021-03-06 04:45:00 +01:00
bc2701d8ba Use 'update_motd' in 'prometheus_federate'
Some checks failed
continuous-integration/drone/push Build is failing
2021-03-06 04:43:09 +01:00
2353589da6 Ensures /etc/update-motd.d exists 2021-03-06 04:42:21 +01:00
1d0200a1f0 Use 'update_motd' in 'prometheus' 2021-03-06 04:32:06 +01:00
b81600aef8 Use 'update_motd' in 'baseconfig' 2021-03-06 04:31:20 +01:00
7e92fdfab7 Create an 'update_motd' role 2021-03-06 04:30:32 +01:00
jeltz
e6a86640de Merge pull request 'Fetch switch_snmp jobs' (#29) from fix_exported_prometheus into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#29
2021-03-06 02:44:40 +01:00
cf07de4ec4 Fetch switch_snmp jobs
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-06 02:41:58 +01:00
jeltz
7cc478b1ad Merge pull request 'Use label federated_instance instead of instance' (#28) from fix_exported_prometheus into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: Aurore/ansible#28
2021-03-06 02:09:09 +01:00
b9269f3967 Fix monitoring.yml indentation (yamllint warning)
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-06 02:00:56 +01:00
e5be09656b Monitor yggdrasil from prometheus-aurore
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-06 01:58:02 +01:00
8abca7916f Add switch_snmp job for prometheus 2021-03-06 01:57:32 +01:00
763cc2eb51 Generate targets_switch_snmp.json 2021-03-06 01:57:08 +01:00
eaa0d2e0fc Fix bad indent in snmp.yml.j2 2021-03-06 01:56:18 +01:00
8ae94fa8f8 Rename vault_snmp_switch{s,}_community 2021-03-06 01:08:51 +01:00
21fed6ae3f Add useful lookups for switchs interfaces 2021-03-06 00:58:46 +01:00
52124d2cad Cleanup prometheus_federate's prometheus.yml.j2
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-06 00:46:13 +01:00
7d527be1c0 Remove duplicate alerts from 'prometheus-federate' 2021-03-06 00:45:43 +01:00
32669e1fb1 Don't load Django rules prometheus-federate 2021-03-06 00:44:22 +01:00
4ca7ebd144 Add a unique exported label (useful for federation) 2021-03-06 00:40:44 +01:00
802bfcc698 'prometheus-federate' must not retrieve its own federated metrics 2021-03-06 00:38:36 +01:00
958eaa1bcb Use label federated_instance instead of instance
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-03-05 00:54:44 +01:00
9eeb8ccd73 Remove non-Ansible SSH root keys
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-03-01 16:08:08 +01:00
1fe8d1d28b Remove "Root Aurore" SSH key + add histausse key 2021-03-01 13:28:49 +01:00
c3d24c1cd0 Add SSH key for Jeltz
All checks were successful
continuous-integration/drone/push Build is passing
2021-02-28 21:47:42 +01:00
a35488efdd [Docker] do not cache pip
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is failing
2021-02-18 00:14:12 +01:00
3050a95699 Add playbook to deploy sudo update on all machines
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-01-27 14:36:14 +01:00
85d0dc9621 Fix: keep the logs for 90 days
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-01-23 17:19:50 +01:00
458 changed files with 99695 additions and 4511 deletions

View file

@ -2,9 +2,9 @@ skip_list:
- no-changed-when
- load-failure
- document-start
warn_list:
- experimental # all rules tagged as experimental
- meta-no-info
- ignore-errors
exclude_paths:
- group_vars/all/vault.yml
- group_vars/all/vault.yml
- utils/

View file

@ -5,8 +5,7 @@ name: check
steps:
- name: ansible and yaml linting
pull: never
image: aurore-ansible-lint-image
image: quay.io/ansible/toolset:3.5.0
commands:
- ansible-lint
...

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
*.retry
tmp
ldap-password.txt
__pycache__/

223
README.md
View file

@ -1,9 +1,8 @@
[![Linter Status](https://drone.auro.re/api/badges/Aurore/ansible/status.svg)](https://drone.auro.re/Aurore/ansible)
# Recettes Ansible d'Aurore
Ensemble des recettes de déploiement Ansible pour les serveurs d'Aurore.
Pour les utiliser, vérifiez que vous avez au moins Ansible 2.7.
Dépendances requises :
* Ansible 2.9 ou plus récent.
## Ansible 101
@ -14,8 +13,9 @@ Il contient la définition de chaque machine et le regroupement.
Quand on regroupe avec un `:children` en réalité on groupe des groupes.
Chaque machine est annoncée avec son hostname. Il faut pouvoir SSH sur cette machine
avec ce hostname, car c'est ce qu'Ansible fera.
Chaque machine est annoncée avec son hostname. Il faut pouvoir SSH sur cette
machine avec ce hostname, car c'est ce qu'Ansible fera (sauf pour les switchs,
voir plus bas).
**Playbook** : c'est une politique de déploiement.
Il contient les associations des rôles avec les machines.
@ -36,31 +36,42 @@ déployer un serveur prometheus, déployer une node prometheus…
**Tâche** : un rôle est composé de tâches. Une tâche effectue une et une seule
action. Elle est associée à un module Ansible.
*Exemples de tâche* : installer un paquet avec le module `apt`, ajouter une ligne dans
un fichier avec le module `lineinfile`, copier une template avec le module `template`
*Exemples de tâche* : installer un paquet avec le module `apt`, ajouter une
ligne dans un fichier avec le module `lineinfile`, copier une template avec le
module `template`
Une tâche peut avoir des paramètres supplémentaires pour la réessayer quand elle plante,
récupérer son résultat dans une varible, mettre une boucle dessus, mettre des conditions…
Une tâche peut avoir des paramètres supplémentaires pour la réessayer quand
elle plante, récupérer son résultat dans une variable, mettre une boucle
dessus, mettre des conditions…
N'oubliez pas d'aller lire l'excellent documentation de RedHat sur tous les modules
N'oubliez pas d'aller lire l'excellente documentation de RedHat sur tous les modules
d'Ansible !
### Gestion des groupes de machines
Pour la liste complète, je vous invite à lire le fichier `hosts`.
* pour tester les versions de Debian,
Exemple :
```YAML
ansible_lsb.codename == 'stretch'
```
```yaml
[fleming_vm]
dhcp-fleming.adm.auro.re
dns-fleming.adm.auro.re
prometheus-fleming.adm.auro.re
routeur-fleming.adm.auro.re
* pour tester si c'est un CPU Intel x86_64,
[fleming_pve]
pve1.adm.auro.re
```YAML
ansible_processor[0].find('Intel') != -1
and ansible_architecture == 'x86_64'
```
[fleming:children]
fleming_pve
fleming_vm
```
> NB :
>
> L'exemple a été adapté de la configuration d'Aurore pour des raisons
> pédagogiques.
Pour les fonctions (`proxy-server`, `dhcp-dynamique`…) il a été choisi
de ne pas faire de groupe particulier mais plutôt de sélectionner/enlever
@ -73,27 +84,46 @@ qui peuvent ensuite être utilisés dans des variables.
Pour lister tous les faits qu'Ansible collecte nativement d'un serveur
on peut exécuter le module `setup` manuellement.
```
```bash
ansible proxy.adm.auro.re -m setup --ask-vault-pass
```
Il est notamment possible de :
* tester les versions de Debian,
```YAML
ansible_lsb.codename == 'stretch'
```
* tester si c'est un CPU Intel x86_64,
```YAML
ansible_processor[0].find('Intel') != -1
and ansible_architecture == 'x86_64'
```
## Exécution d'Ansible
### Configurer la connexion au vlan adm
Envoyer son agent SSH peut être dangereux
([source](https://heipei.io/2015/02/26/SSH-Agent-Forwarding-considered-harmful/)).
([source](https://heipei.github.io/2015/02/26/SSH-Agent-Forwarding-considered-harmful/)).
On va utiliser plutôt `ProxyJump`.
Dans la configuration SSH :
```
# Use a proxy jump server to log on all Aurore inventory
Host 10.128.0.* *.adm.auro.re
```text
Host *.adm.auro.re *.pve.auro.re
# Accept new host keys
StrictHostKeyChecking accept-new
# Use passerelle to connect to administration VLANs
ProxyJump passerelle.auro.re
```
Il faut sa clé SSH configurée sur le serveur que l'on déploit.
Il faut sa clé SSH configurée sur le serveur que l'on déploie.
```bash
ssh-copy-id proxy.adm.auro.re
```
@ -103,6 +133,7 @@ ssh-copy-id proxy.adm.auro.re
Il faut `python3-netaddr` sur sa machine.
Pour tester le playbook `base.yml` :
```bash
ansible-playbook --ask-vault-pass base.yml --check
```
@ -112,7 +143,7 @@ Vous pouvez ensuite enlever `--check` si vous voulez appliquer les changements !
Si vous avez des soucis de fingerprint ECDSA, vous pouvez ignorer une
première fois (dangereux !) : `ANSIBLE_HOST_KEY_CHECKING=0 ansible-playbook...`.
### Ajouter tous les empruntes de serveur
### Ajouter toutes les empreintes de serveur
```bash
#!/bin/bash
@ -121,6 +152,10 @@ for ip in `cat hosts|grep .adm.auro.re`; do
done
```
> Remarque :
>
> L'utilisation d'un certificat permet d'éviter d'avoir à ajouter sa clé ssh
> sur les serveurs.
### Passage à Ansible 2.10 (release: 30 juillet)
@ -132,11 +167,141 @@ ansible-galaxy collection install community.general
ansible-galaxy collection install ansible.posix
```
Si vous n'arrivez pas à entrer votre _become password_ (bug dans ansible?), un
Si vous n'arrivez pas à entrer votre *become password* (bug dans ansible?), un
workaround est le suivant :
`$ export ANSIBLE_BECOME_PASS='<votre mot de passe LDAP>'`
Notez l'espace au début pour ne pas log la commande dans votre historique
shell.
## Configuration des switchs depuis Ansible
Afin d'acquérir de l'indépendance vis-à-vis de re2o, un module permettant de
configurer les switchs depuis Ansible a été créé. Il utilise l'api rest des
switchs afin de récupérer et appliquer la configuration voulue.
### Prérequis
Pour utiliser le module, il faut d'abord annoncer à Ansible qu'il ne faut pas
effectuer de connexion ssh et de ne pas récupérer les faits. Cela se fait à
l'aide des variables `connection: httpapi` et `gather_facts: false` à placer
dans le playbook (pour une configuration locale) ou dans ansible.cfg (pour une
configuration globale). Ensuite, l'infrastructure actuelle de Aurore nécessite
l'utilisation d'un proxy. Pour cela, il suffit d'exécuter la commande :
```bash
ssh -D 3000 switchs-manager.adm.auro.re
```
et d'annoncer l'utilisation du proxy dans la configuration en exportant la
variable d'environnement `HTTP_PROXY=socks5://localhost:3000` et en
configurant la variable du module `use_proxy: true`.
Exemple :
```yaml
environment:
HTTP_PROXY: "socks5://localhost:3000"
tasks:
- name: vlans
switch_config:
username: ****
password: ****
port: 80
host: 192.168.1.42
use_proxy: true
config:
path: vlans/42
data:
name: VLAN42
vlan_id: 42
status: VS_PORT_BASED
type: VT_STATIC
```
Le module est alors utilisable, il ne reste plus qu'à le configurer.
### Écrire la configuration
Le module se veut assez libre. Ainsi, l'ensemble de la requête doit être écrite
dans les `tasks`. Voici un exemple pour configurer un vlan :
```yaml
tasks:
- name: vlans
switch_config:
username: ****
password: ****
port: 80
host: 192.168.1.42
config:
path: vlans/42
data:
name: VLAN42
vlan_id: 42
status: VS_PORT_BASED
type: VT_STATIC
```
Le `path` correspond à l'url de l'objet que l'on souhaite éditer et `data`
correspond aux données qui seront envoyées dans une requête `PUT` (au format
`json`). Cependant, la configuration d'un vlan peut nécessiter de le créer.
Pour remédier à ce problème, il est possible d'utiliser la syntaxe suivante :
```yaml
tasks:
- name: vlans
switch_config:
username: ****
password: ****
port: 80
host: 192.168.1.42
config:
path: vlans
create_method: POST
subpath:
- path: 42
data:
name: VLAN42
vlan_id: 42
status: VS_PORT_BASED
type: VT_STATIC
```
Le variable `create_method` correspond au type de la requête pour effectuer une
action de création de l'objet. Il s'agit généralement de `POST`. Dans le cas
où la variable n'est pas définit, la création sera désactivée et ainsi, si
l'url indiquée dans les `subpath` n'existe pas, alors la configuration échouera.
Par conséquent, si le vlan 42 a besoin d'être créé, une requête `POST` sera
effectué sur l'url `vlans` avec les données dans `data`.
Il est également possible d'éxecuter une action de suppression d'un vlan à l'aide
de la variable `delete` :
```yaml
tasks:
- name: vlans
switch_config:
username: ****
password: ****
port: 80
host: 192.168.1.42
config:
path: vlans/42
delete: true
```
Si la variable `delete` est activée, alors une requête `DELETE` sera envoyée
sur l'url indiquée. Pour vérifier si la suppression est déjà effective avant
l'éxecution, le module vérifiera si un `GET` sur l'url retourne une 404.
> Remarque :
>
> Si les variables `delete` et `data` sont définies (dont `delete` à `true`),
> alors il en résultera une action de suppression malgré tout.
Puisque `subpath` est une liste, il est possible de configurer plusieurs requête
en même temps. Cela à l'avantage d'effectuer toutes les modifications à la suite
(sans avoir à se connecter plusieurs sur l'api).

18
all.yml Executable file
View file

@ -0,0 +1,18 @@
#!/usr/bin/env ansible-playbook
---
- import_playbook: playbooks/base.yml
- import_playbook: playbooks/root.yml
- import_playbook: playbooks/ssh.yml
- import_playbook: playbooks/chronyd.yml
- import_playbook: playbooks/kresd.yml
- import_playbook: playbooks/knotd.yml
- import_playbook: playbooks/resolvconf.yml
- import_playbook: playbooks/ifupdown2.yml
- import_playbook: playbooks/systemd_link.yml
- import_playbook: playbooks/keepalived.yml
- import_playbook: playbooks/ip_forward.yml
- import_playbook: playbooks/dhcpd.yml
- import_playbook: playbooks/bird.yml
- import_playbook: playbooks/pve.yml
- import_playbook: playbooks/prometheus.yml
...

View file

@ -1,38 +1,22 @@
# Ansible configuration
[defaults]
jinja2_native = true
# Do not create .retry files
ask_vault_pass = True
roles_path = ./roles
retry_files_enabled = False
# Use inventory
inventory = ./hosts
# Custom header in templates
ansible_managed = Ansible managed, modified on %Y-%m-%d %H:%M:%S by {uid}
# Do not use cows (with cowsay)
stdout_callback = debug
library = ./library
filter_plugins = ./filter_plugins
ansible_managed = Ansible managed
nocows = 1
# Do more parallelism
forks = 15
# Some SSH connection will take time
timeout = 60
[privilege_escalation]
# Use sudo to get priviledge access
become = True
# Ask for password
become_ask_pass = True
remote_user = root
[diff]
# TO know what changed
always = yes
[ssh_connection]
pipelining = True
retries = 3

View file

@ -1,17 +0,0 @@
#!/usr/bin/env ansible-playbook
---
# Put a common configuration on all servers
- hosts: all,!unifi
roles:
- baseconfig
- basesecurity
# Plug LDAP on all servers
- hosts: all,!unifi
roles:
- ldap_client
# Install logrotate
- hosts: all,!unifi,!pve
roles:
- logrotate

View file

@ -1,20 +0,0 @@
#!/bin/bash
set -e
# Grab valid unique hostnames from the Ansible inventory.
HOSTS=$(grep -ve '^[#\[]' hosts \
| grep -F adm.auro.re \
| sort -u)
# Ask password
read -s -p "Hello adventurer, what is your LDAP password? " passwd
echo
for host in $HOSTS; do
echo "[+] Handling host $host"
# sshpass can be used for non-interactive password authentication.
# place your password in ldap-password.txt.
SSHPASS=${passwd} sshpass -v -e ssh-copy-id -i ~/.ssh/id_rsa "$host"
done

View file

@ -1,8 +0,0 @@
---
# Deploy a correclty configured postfix on non mailhost servers
- hosts: all,!unifi
vars:
local_network: 10.128.0.0/16
relay_host: proxy.adm.auro.re
roles:
- postfix_non_mailhost

View file

@ -1,7 +0,0 @@
FROM python:3.9-alpine
LABEL description="Aurore's docker image for ansible-lint"
RUN apk add --no-cache gcc musl-dev python3-dev libffi-dev openssl-dev cargo
RUN pip install "yamllint>=1.26.0,<2.0"
RUN pip install "ansible-lint==5.0.0"
RUN pip install "ansible>=2.10,<2.11"

View file

@ -1,18 +0,0 @@
# Ansible-lint image
In order to build this image when a new version comes out, you need to
1. ssh into the `drone.adm.auro.re` server
2. git pull this repo to the lastest version
3. optionally make the changes if it has not been done yet
4. `sudo docker build -t aurore-ansible-lint-image docker-ansible-lint/`
5. ???
6. enjoy
You can verify that the image was correclty built by running
```
# list the images present
sudo docker image ls
# run your image with an interactive shell
sudo docker run -it --rm aurore-ansible-lint-image /bin/sh
```

16
filter_plugins/enquote.py Normal file
View file

@ -0,0 +1,16 @@
class FilterModule:
def filters(self):
return {
"enquote": enquote,
}
def enquote(string, delimiter='"', escape="\\"):
translation = str.maketrans(
{
delimiter: f"{escape}{delimiter}",
escape: f"{escape}{escape}",
}
)
escaped = string.translate(translation)
return f"{delimiter}{escaped}{delimiter}"

View file

@ -0,0 +1,9 @@
class FilterModule:
def filters(self):
return {
"format_rev": format_rev,
}
def format_rev(text, fmt, *args, **kwargs):
return fmt.format(text, *args, **kwargs)

View file

@ -0,0 +1,68 @@
import ipaddress
from operator import attrgetter
import dns.name
class FilterModule:
def filters(self):
return {
"add_origin": add_origin,
"add_origin_keys": add_origin_keys,
"ip_filter": ip_filter,
"remove_domain_suffix": remove_domain_suffix,
"ipaddr_sort": ipaddr_sort,
}
def first_addr(addresses, ipv4 = True):
version = ipaddress.IPv4Address if ipv4 else ipaddress.IPv6Address
for addr in addresses:
parsed = ipaddress.ip_address(xx)
if isinstance(parsed, version):
return parsed
raise ValueError("missing address")
def ip_filter(addresses, networks):
if isinstance(addresses, dict):
return {k: ip_filter(v, networks) for k, v in addresses.items()}
ip_networks = [ipaddress.ip_network(n) for n in networks]
ip_addresses = [ipaddress.ip_address(a) for a in addresses]
return [str(a) for a in ip_addresses if any(a in n for n in ip_networks)]
def add_origin(name, origin="."):
return dns.name.from_text(name, dns.name.from_text(origin)).to_text()
def add_origin_keys(dct, origin="."):
return {add_origin(k, origin): v for k, v in dct.items()}
def remove_domain_suffix(name):
parent = dns.name.from_text(name).parent()
return parent.to_text()
def ipaddr_sort(addrs, types, unknown_after=True):
check_types = {
"global": attrgetter("is_global"),
"link-local": attrgetter("is_link_local"),
"loopback": attrgetter("is_loopback"),
"multicast": attrgetter("is_multicast"),
"private": attrgetter("is_private"),
"reserved": attrgetter("is_reserved"),
"site_local": attrgetter("is_site_local"),
"unspecified": attrgetter("is_unspecified"),
}
def addr_weight(addr):
if isinstance(addr, str):
addr = ipaddress.ip_address(addr.split("/")[0])
for index, ty in enumerate(types):
if check_types[ty](ipaddress.ip_address(addr)):
return index
return len(types) if unknown_after else -1
return sorted(addrs, key=addr_weight)

9
filter_plugins/suffix.py Normal file
View file

@ -0,0 +1,9 @@
class FilterModule:
def filters(self):
return {
"suffix": suffix,
}
def suffix(value, suffix):
return value + suffix

View file

@ -0,0 +1,38 @@
#!/usr/bin/python
class FilterModule(object):
def filters(self):
return {
'range2list': self.range2list,
}
def range2list(self, port_range):
"""
Convert a range into list
Exemple:
```
>>> FilterModule.range2list("1-10,42")
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 42]
````
"""
port_range = port_range.replace(" ", "").split(",")
ports = []
for r in port_range:
if "-" in r:
try:
a, b = r.split("-")
except:
raise Exception("A range must contain 2 values")
try:
a = int(a)
b = int(b)
except:
raise TypeError("A range must contain integer")
for n in range(a, b+1):
ports.append(n)
else:
try:
ports.append(int(r))
except:
raise TypeError("Value must be integer")
return list(set(ports))

61
flake.lock Normal file
View file

@ -0,0 +1,61 @@
{
"nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1757020766,
"narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1754788789,
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

27
flake.nix Normal file
View file

@ -0,0 +1,27 @@
{
description = "Ansible Aurore";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
flake-parts.url = "github:hercules-ci/flake-parts";
};
outputs =
inputs@{
self,
nixpkgs,
flake-parts,
...
}:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [ "x86_64-linux" ];
perSystem =
{ config, pkgs, ... }:
{
devShells = {
default = pkgs.callPackage ./shell.nix {};
};
};
};
}

4
group_vars/all/bird.yml Normal file
View file

@ -0,0 +1,4 @@
---
bird__as:
aurore: 43619
...

View file

@ -0,0 +1,5 @@
---
chronyd__pools:
- ntp-1.int.infra.auro.re
- ntp-2.int.infra.auro.re
...

View file

@ -0,0 +1,24 @@
---
ifupdown2__wireguard_proto: wireguard
ifupdown2__gateways:
adm:
- 2a09:6840:128::254
- 10.128.0.254
int:
- 2a09:6840:206::1
- 10.206.0.1
ext:
- 2a09:6840:211::1
- 10.211.0.1
monit:
- 2a09:6840:204::1
- 10.204.0.1
isp:
- 2a09:6840:210::1
- 10.210.0.1
pub:
- 2a09:6840:215::1
- 45.66.111.204
ovh:
- 92.222.211.254
...

View file

@ -0,0 +1,10 @@
---
openssh__users_ca_public_key:
"ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAAB\
hBIpT7d7WeR88bs53KkNkZNOzkPJ7CQ5Ui6Wl9LXzAjjIdH+hKJieBMHrKew7+kzxGYaTqXW\
F1fQWsACG6aniy7VZpsdgTaNw7qr9frGfmo950V7IlU6w1HRc5c+3oVBWpg=="
openssh__authorized_principals:
- any
- "{{ inventory_hostname }}"
...

View file

@ -0,0 +1,3 @@
---
prometheus_node__text_dir: /var/run/prometheus-node-exporter
...

View file

@ -0,0 +1,13 @@
---
resolvconf__nameservers:
- 2a09:6840:206::1:1
- 2a09:6840:206::1:2
- 10.206.1.1
- 10.206.1.2
resolvconf__domain: auro.re.
resolvconf__search:
- "{{ inventory_hostname | remove_domain_suffix }}"
- auro.re.
...

5
group_vars/all/root.yml Normal file
View file

@ -0,0 +1,5 @@
---
root__shell: /bin/bash
root__password: "{{ vault_root_password }}"
...

View file

@ -17,9 +17,7 @@ ldap_admin_password: "{{ vault_ldap_admin_password }}"
ldap_admin_hashed_passwd: "{{ vault_ldap_admin_hashed_passwd }}"
# Databases
postgresql_services_url: 'services-bdd.adm.auro.re'
postgresql_synapse_passwd: "{{ vault_postgresql_synapse_passwd }}"
postgresql_codimd_passwd: "{{ vault_postgresql_codimd_passwd }}"
postgresql_services_url: 'bdd-ovh.adm.auro.re'
# Scripts will tell users to go there to manage their account
intranet_url: 'https://re2o.auro.re/'
@ -90,6 +88,21 @@ ipv6_base_prefix: "2a09:6840"
is_aurore_host: "{{ 'aurore_vm' in group_names }}"
# Borgbackup
borg_keep_daily: 7
borg_keep_weekly: 4
borg_keep_monthly: 12
borg_backup_directories:
- /etc
- /var
borg_backup_exclude:
- /var/log
- /var/lib/docker
- /var/lib/lxcfs
borg_encryption_passphrase: "{{ vault_borg_encryption_passphrase }}"
borg_server_host: 10.128.0.4
rsyslog_outputs:
- proto: relp
address: 10.128.0.241

View file

@ -1,179 +1,297 @@
$ANSIBLE_VAULT;1.1;AES256
32313562646230353138303964366135656361616532343933353732313961323339653964353130
3938346666633565356134343835633964626261363365370a663664663938383731343733386136
33356531323762313463326339333963336636353933326537333665313334616563626632336663
6537363033663935660a613366613962626563643035663330343061353836646561623031323236
65313633383063373064613930623530656365396335663363643330636239643937373163623932
61373136303737333739316565323934376433316362353935363637373264616238373831666438
35343135383233653963333237393232353631636566373766366664656666313436323535393736
62323731343261373331393062633030356235313834373861323138663930613332643432386436
38383038616536316465343561643639353434396631643033633537393265646532613161343732
32363265643963386538326639353233363438643833306637336431303533396562613863633537
30303334643137313136633039393463346562306236353566333563633238313865313534326137
33623036376439653532313833633135326631643361333463633162303065623633636331666661
62303636653233666164383463356530633464306564383236373832616263653165373937303030
31323865656436366265303537306438303434613135396166313635656566373539303463393830
65383636363064333730623161316162373734626433346564333835393030616437636665316566
37353937626465383439633534316336313931663561336335653761396230393031393839336264
37623037663032646631656637386366333131356562376665333964393264643133626532653564
32353235633434656334663233303664613865343039613330663833396162646430623735653434
66633466306338373061326636366330643639383632353564353865623637303832306332653131
37343566393965326635613135613134316264616336303233616162313839626235386137343435
33633336636434343531633362633834376135303337363637303039323038313937646236366265
34303434373566313730623664653263653466366133363562333736393836393363326665353434
30333263323366326436623238353335323936346637646130623265366535653737343665373165
63336166633831623464343862353065653162613934646539396364353162633063303332313266
65656163396463363737663931353765376337643065646131303264363961366336343432653537
65306437623535393132343962333666366665316362366536663431646435633166333731303232
63313337353334623330623862386661306333366638306433373437623835636631376231373636
66666539363561313166396438343730656230663532633031353336636565343964366136663466
38316364663936303231633633613832313163646262313238346666336661613236343966353130
62656237663865306632333130653933633332623061633062363964643130383430613864663935
63663765356434626661346165653163626565336437613539653536306432376332616430393737
34366139336363383761366338623236383135373634613239616665343061396633383231663230
63653331336366666234626662356461663263626465663036326162343239373734346661626665
61666231613565356633343030343935393135653261376239303037373634386138393463363239
30356365663133646634333863616230646235656135336330393836353462323630376537366334
31306330363232326661616666623131383837353139643838326430653561346565393762323936
31623136656361383039653763613162356530653933376539336130376237396661663664393733
36396433303339613965316230613237303331646331383239356638333366653961303138343663
33393664303637333863313364356666383836633063643539333262633565623534323866316537
38623630363139643837396330353463303932383231663831363763656537386531383531303165
37366338343063346230656461393832383736636662656666636434363731623437303862636366
33613333393139613637623963373262323637653531336265333033333135613330313166633738
36353935383931363535656539333130653164613431616438613432313532373063353738656162
36616563383133623336396633343762376537663432356238653766666636323232623065313537
39636632326166323130646633626431323831373963313837613465356436326430616433303662
65343834663937306539663330366538643265626665613631323036616463313266303237613938
30613565306636306561643238326138623366343365303934306561623234313332636462383363
30623432326336396364636164366463326533613665333830656564626663383331323661663934
35353135323930656138373830623932396138626335343265623738383532333861306561323430
66333532333961636463656535636132323535313730333762633139306235373031363831363266
33646635316137616663653461393566303432386330623936633330373461333762356532663062
39666437363931313861356331653932303132353364623664656364316430653933653935616230
38376631316463646663626562366233626334323235633235653364623936643131356130343261
36396535393335366532313930623363663032386635396262363430303466373737633739626435
30636136396562336561393936353763383732653166353266376165663233626266353638363131
65323462633039323334613566373434343363633532656534663635363763396265663137636331
38613736353635613437663133616431396666316230393066343431336535626335373437393039
63666135353937313765316134326338376161353862373161653039333631306264343464353035
65353639313134346239646362663836643734373465353866373238613162303336306438376237
35363934333536376136666561333636653136316435316530366461306636333063313739626630
37633333333766613663636466373364663132613266343136376138663461383832356631303132
30363434336161393962363636313364663839383734373533356663343733333731613535646433
64396361643736653931336365313338313633383038306131333863306437386362633263646364
36656566326333333136636566613066623362363263373435356162396431396334386237383231
30326465646334613235666435613462633230353434653666336364646466613066346366376262
66633863333461626631383961663930383663666538613162643730323565653732386330613538
38666164353130386530376332643637333931313661633634303636643639613561643338373331
63333932306634313933366533623837613934366334396637396361623439383964333665383435
62316265356537616137643537366666336634393935613034393737313930333364323031653234
37366561356332666439623462396266623961653039626562393065393336643962373064343563
36346665666338623931343739386531343833386135356164303532643463346565316163656633
32616365623065626139383362613466633332666133313263393062373338653834363830333039
62626230343362393533633061663432363836616539643065643839623065633363393134643534
63343935376537393739333063333333386239663763383435633234376434366362616433363162
34363539633661633333306133363433313761303138363864373266333461303139613362663937
39626332356139396330393361613364643363366164376234316266316164393035386334366362
36373065626530333237636139336163623766623561656234333239646263626164323134633434
63326635393665333533383562633438303036616262366435373739386430353964333265393732
66643838303566626131323834646564613830333937616264383864316666343333396636303836
38633335656536653334626530303835623531666665326533303535313164323836373365636265
65393061363933373931396134623264643065633534313566346336343862346537343437363765
62663264376266326538616330376633353832353234653661613964373231666562326466663934
38393931643736626332623461613737383463663935656263656233306437653331343838343865
64343239636166343134336261656162393938396633376663366466653634373566336165323237
34386137313961653739393231616532346664366138356631353030623236343535363435636462
32323564306339396437633763613535393230386631616166656539373861386633363464653439
34323134626334356631623764356232366337646236313031336138333636633834353463363961
32316664383038633330383765356563353062303133333133336365346561643234386161383461
39323964303061313461386333613961396533646161663230666466616231386239386666306233
39343239323739323738373263313662336237346663663432343861343034633463386163303366
38333537626232663438383230623032623765336164653438653434396362633063333437366338
34373431323539306531323536363238333037643337626131336631356537626237656630393964
38393736633433306632323334613232303162313962616334376130353931336337303462363266
39643137643034396564303531346361336134353461653535336165323032323238663631653935
38366339366436376166333335663230306663633634336434323532316664666134313365323834
31363964346561373262393632366637396633323332393162666166326631383164643265353135
34303664353434373131653530346634386333663732373966613761616261323032336266646163
32663966656464633565356337653534623962663939333033613933633965666339653764663134
38363965393730633638653561393432303835303164396462366435353030643966316665333061
39643634646137626338323537393031356532616637666634333139396630663930636235333735
66336465666439356636623037653564393161393432346534656132346631396462356463336566
30303833386638333866396462633330306439613139636331636331333663386438623461343133
30643164366434353765633738356536643861303232393362343131353730376364623463326361
37363061623333653466636438666465616133396233616430393265626362663736613031383764
63353065306166646461623763643062383738376266353765643134376538393233383663346237
37643639663063383266373536323533343936633134386263616163343637613636303134343037
34626232303335393532643134646132323463396333386664333731646331343937363661323539
65663936366464643162633432666537393439313664643638343237653566613235353165663336
32373037346239356337633036306138343366666463363538373836616530313565613562383433
64616263626165343938363230613039356137643665653734366533393033316363663036363738
66323663663366666162623734363465663939383830396533383665393139633530616263663136
64333132633031623835373831636366643831626235303831313761653734666365386462393534
66303332656561653162636636313439663633396638353638363465663138353866376636326634
63613865613466326230323564323439393061653664393261373531306235333663373434636262
62353132653333313635653633346461323165373862343839316539653038633664353830643234
36633763653738323732386263643461333761306532303534663763323735636563366266653464
66636236393033613736656562663661346162316164616663306465623431613133633130383136
35313434346164653163396137383064656538353766653237646237663639663039663665666236
62346139633234343735303762653030326333333764356562656435623330663066353333326239
39646465393362323537343766366432323765363139643361643037373739643636623437386636
32353233303337623136343062623633306361383737303431613663633163643832343434656335
39633434393466646366376534333865633361333861653366316238626637363537303335363662
61353830303733623665643864333134623062356334616331363565333235666261653732633264
62663238663461343738303764303636366638393830623264613730303635623635626364646464
35623239356235316136343532616638663930313565383264663936633733386663326161623830
62626634313963323866653432343561303233343035353433613731353538356438613033346638
33613466656633626261326465336437613630376335663933303061393731313065636131393762
65613037653363636235613838613535316635613066393436356537633662313539323163613361
36356632323634363335366665376663346565393439313031636331633235333664663830636135
64653266616262336437623731383161383437613461323837653066656233643230663064616432
65383337323333633465316533623465303735396430326334643634626436303263396534356335
34373134653232303866386433643864363536643138353965323130616338353731633434326361
66303133353264343664323435653133383431626263373237613631616235666465616333343937
37323333653565363665376236396232393132336137346461613831623063326631636335333365
65376538396265313732323932383061633464393630393563386163393230623238633938396535
34333330386131353336646361313634353862663762653234373235366565343232306432653731
61383863306632626463653831383735636233623966353130626634366638626236383864316531
37353062336539626531356133313132663330663135393930356565323364353761393439373533
61366465313462313033306631333432646163653832363564313838643362316263353562373262
33343664666230303065373836306663643135303439356362336634346637353438633364306365
30623332363436353865633738663464636132306134386465306164363333386338323433643163
37626235303062393933393363656339636139323464373439363765316266646536316336666163
34306262326238343937623432643262646263666266623933623565363535326235623637396237
64623961663037653033383933333062393932613933303962326538333739303731363137623365
30363030353433646133666166383938356232396331656165343531343232613934663834633464
36353331373233393861636131393238363031383135613633373665613364373466356663376431
66303331383837663261313838363266656164633836623661326331356566653938306266376632
63613238356135373938663030343634393566653963306237303138626461613931356565663835
64386433613937643730396130663333646334386336613864333533626661626166346232333964
66316664346231376639393132613936323261383131633737386331343966363961633237666334
38353363383761333439373437623937393534626435386262383732363833346166656233666332
62636130323536663432633434646666303664393130626437636132316264613535306463623964
30633030613665343631373366363737313130666337326230633631646461356362363963306361
64393639353339303436346438313833333432356666666339613666623132636235383866343838
36666263343538633537303665616366656363373736306235333264336466313939356131303561
33363030653966316232313933323665663330303338366333656536623861623537313266383565
65633866663665393635646531353539623362646663356664333866623432333465333335333333
31616262356537646261373166343665633238633235373335343134393366663462393465643135
35326336613835663132343233386564373462353561333066323631313664373865323233653336
65333731336565633664636562326365343263373263373162653239633964396138616335616230
63376562383064663330363562306338346465666563306365306639353632396633323830353337
65666233376239333436633566623535383065646235353832363030303565623531333539613864
63393339656238323466343564333134636164383062613138656138373936636531636166393062
32613431636233316533353937326234663336343231313630393037313663383034383238346562
36383264626366383835623261643562323037303661383832323939363939623038626664393530
65353061313266633764353331313532383766613735333131373365366336306139343265306634
66313435313965633362356563313763653634643362616138633832633136333362343731346166
34613431653134363732353833643962636431623036393935666237663833373934373438666434
36633538306632383439323465636665303863646532653165666638316137633738363736386633
33303234306531356136316463353232303737323661333430333137636633306131316434376665
64323633383735313536373534626331356631316464643530363866633730353239346633396364
36323437306165363465613365383666353037313333653230316234626439623964343336343762
66343831343133343330336536613134303836626434663731343636613835623364633236653962
63356635363239663533336265306261393337313136313937356662616231636461373230376232
64313738333966633265626166653266313932666134356235373238376530303437646464333364
31613631386335356561363938323831313061373566323638663864393266656361366463353736
63386361373737383837336435633562626566656666373737313464323466313364626466633537
6661656232313066363235616364646663623039386561636332
35353866373931343963333639323431636465303562306166333735383462353032323461613232
3666653438393936356535633661363838613233323932370a656439316234356339613532663237
39373439366432363533303961396466623366323339383735316531653538633264393264353337
3937323861616530640a666361323164353338306336616564663466616630393839613833373933
65613161323164613334656631333336343262363835323962343662333133366561306139636261
61656532666563333063356231636565626631633436623531313938663930396362343031356534
34303565623832366664303561643137626433333164623730623639656439346639616164623865
31613462316439613937313138313830323334373337366630323331393537633437303063353363
66383930353930616137303436383864363439326139643361356231373939306439633332666232
38363061636139346430373263613932336361356262656138663233386464373839366630303765
35343064336533373238396430393536366438653534366565373733313962616364313061626133
37666538313038643865346461626537353930366264643162376530353536623863656236303433
31336561336131383635393238366464653934613130363831306335643935373033303162353534
38353832653664633061646331653634393963333038306635313464636136616366313962333431
39363934643266646131653236303138636163326663373765373761663062656463643162373038
34656163633964626235366539663132396666623363303632363236303831613532393931373761
65613435353162346233323533383537316231363437653239343233636533333966613066343932
30626636306531333736613965396432373130356238313136336434356133353435643065626261
32633732613361376261363831363866333332393132643439626639383438663438366330386534
31303532323461303862346364386532663839323163653366356136666131363839663635343166
38353962326430383561333630623030623536353838633231393763393238316530363939343536
66323562336334376234613436373237303562363831323038366232393161356262653864663037
34363436356332633363363963613635346337613438326436333836386534353738646166643333
65356637366431326132363432663662346638383439383766646531363662356266313961356239
31323236393538363662643662643535623633663738343266636163363835383030646661363966
36366466386666613364313166353366333131343061353135306135656663323461303338346666
32626231613738316233636361633337343635656334336536663865633465326639373966303137
39383731303862353637386438306136303765333136653465663963663930383037343130316466
33343932383033643530323136316632386230366338373362366462666233336530393561353933
36356330386361303562666339306265663539616434336264373832636139313365633065343763
31323633346536366635646562356266373964616338366165376331306561663938396661396164
31363438326439343964666439356339326661666136303461343436303533363630353735633038
38383365363739333034373031326530353962646661343039616230396132323833626162643964
65363165333233643738373638353537343162366265316661353563353862623134663362633261
32343364333236363738333130316538666536306664363661616536336264363438396464666533
37616533363936356335663562366563303564623530303762363034343435326666356162316535
61363133326263653937373037643930343565336166643939663466316232313535333965303737
35313566353963616632313763366561633039626239353236323438383261663066323334333632
62393265396235636461653862383830613634393431396131323439613362366463633239383761
39343361663463633332666666346339363334366330393936373433353034653765323130383335
63336338653333356438323264356162316638336338343033326639303237656663633233383735
34646535633831636238316564373035353635383738356133326664626566623766366535333439
30326437613539373163323464323635316632633930353931303466376661396135623031623133
33653735336230666665616638353561623235343439666135386165313436306666643837616166
37613964663837373137383736393063333037366433643632333963623038623636653639343936
32383532613430623563623565633665663030616530643735653563303035616530313463643431
31663361383835613631336638343338373639613532313561313231353765316237653431663462
65366162326630656566663731316262336536303032386336666263326265316564336339316430
31643066633438663562343730393534663338613165633635356333323635653161346136336261
30313332383065633335396131656136613932346331343632386235643764363235376531376437
61303130316537633830366662366237303934306561333134366463646464386530623631346264
30356536613932613264643835356637356364653038383130366237656232333031313163643332
34393865323162613936613264313864613734373032386266653432616535636464363463633564
37343661623935353365333831623631386439343237383933313337393065653934303065313634
61396163323937643837643636343337343231616265643765313932346462373735323737326663
66316135646663376537613663373432393865623038363239356265303362326161366462356138
65336536626634366363623865656234363335343662333134613835393635623434393036316638
35366431653463626665663861303333363038666131643861646465663761623364333162343761
64396131643136323634643461656339616361323030626166303930623838343438393465653364
66633037616633316534386639306438363863363530376131363332353536656533393161313931
34386636643737353738323265363435636239353261373466383430346461383932323634346466
33666436343130643032626562613165396334323937353663376162643266646539353932313137
62336162646535346631623332376334336538326530356233646239306337633365373562653166
32383639353431666137396631663237313436393434626531316365666335306466363639626663
63643861656537306133343138633535323737346538643063363330383366313362653933383365
34313230663163303730326361303337373136346161353132626362623461343661663964333765
37353165333762346539333730333731366532623531343962333037336464666530396437353666
62313035323234643236343534663434356264643830636433323831313364663762646130306362
32316530643230313230376662383439343639343336633431623135626134353134383030396264
38623933356332336231343434663563653332633237653966663964646232623637313231366638
30363966373362363432376562656436356338356561303133643432303736376234643632663137
34336630356362303132343737376637303939623133363663306133383465613263356632383030
61346138316538353638343833366261366534353963326162303866393430333964653333346539
64386161663435646331613834363336373738396338653263323937623163663236366636343239
36383135343763636139393331663139323431376562353165353662396165653235633464363035
31393233636561366639373566623738636537363235666234633534376238323163363238393237
64316132666530336135353434623866363739643830646463656536336136646334393064303630
65343964613265333934306432313739633134663131666433386630303132663866343532363835
38353237343630653561636365656561313636623065363836333663363934643162656534623864
62373763353961646235613465646630306562386531396364386164633065643763396437316466
32376564616562656136346563383266303963666136663863626137653462373430363363336364
35333133303463363663356365626365613036633835323334653264626637353634373665643036
65663736323235353964326466376163313630323265333631323866663137313665626238396130
64653832626639626633376231326534303530373937396235366239626639356234363238633336
34343064393334613732356332633361613633643039366537623465303739663635626365656631
64343936613536636438313232376564376539623261623539346564303036303131366561643564
61623630393032666636366338336266656264353631393061383162323766616530323734326134
31623962373435323730323830373239363738663164653338623836386636626337623739366566
61663835623038626266653062666264663639363763623139393862633061356164323530666665
31623538333264633735643839376433653934383663333130336133653235313631336163343134
33653533613430323834653730326661323462316338636338393063653866316335626633323137
32653262353964653131343430383661643231383135643332616462343231323266333430373061
62623136393239356166393964323830623239613434636361633365353862646130373865643136
66346336363866393762353633353638663433363332356131626639326166393234313765346138
64613431333139376139343234666664313236633031393938663431376336643133323964303938
64616536613462306363613639613132383361393535333362363630393230636532316634373231
63313839323263663237373937323361373533616465643830396666376661616631646561663130
66376266363338666133313263653733646365653034653538333332623861323833633033393234
39633834343231663166376333633635366261616561643363393137383736303436383339633734
30623939343939373038656461333464353033313632643138393334373565383331326430653263
66343630396135633636366337353061363730333364376664623234333434356661323935626633
63336465343661393636333663306361386432373235313337353361333735373436633832633439
30653766373230383364396638366237643932633364663639643661393438653339393031616338
62396632353063376566333261356662356265373733323631363263396337383631383733393034
65616434356530306661636633363333353138303631626565636637313738353338343334633533
39313232356166623939383864346665626333363132663033326430366565336339306465343337
34613736356534653534363034366431653861613534663261633739366361373134323566376335
31313263313262353162353039623634653534346363323131633362323035633337366536366561
64323432353236383839643662383138373938373834323262386364376162663839366232313433
38643662613065663863636664636162333830353131636238383439323439316363383935623731
62393964636137653935313338343465396633333461643032383730313139396462393936383630
63353166633735623364653264643934666438383739663461373332623631323932333162303630
39353637353437636537613935306539633163613334303833393832616338323061633532303361
63656635333331376561363962386135303963303030396564356534333037623635613963313666
65303664316164613835343930623338326235363933623533343961666664323836316231613465
65373931666331326634316463663134613031363636363434643839386239333164333538393831
65653935623431373238326231343439666635623730393639636131386162373466316164356263
37316539656230316336303265646339303139306262396536633533366261346238393335393765
39376630306639353862323834343830646330643737653631633361326134613666613430323433
64363965653063316432353431386533386661386239636332323139393933653063643865646338
34626433393731343535313766303237313866613166663333616535323661666362613439376166
62626430363661303630346265383863613162356535306165633537383038613131346561306330
61623435626363623762313832313031363665623933656238623131303362326137313266316630
32366664633963626463613562643666383637383831343234666435373564306635343730373665
36643436633066373962303965373663376266323133343233323563393065633162383237323162
38656336306432623330616234373936306163646330313734653864386464646535666331616335
32623163356337326665333731656438393633326638363635353733663861323934333536393338
33656231373166313761643030363437373638366461653038363565623633623035393564643161
38663064356239393034323761386435396437386534633734353938653239323533333531363965
36316636353864626461303936313632663261353437396238363930626239336139323561373133
61366330386135363039303166326231656331653632343261306531653731313465396131643330
35616432613631636264333263363239616435303436653936386165343335356337343032386239
37373230623366653834663031343738643063616661363138316262643635343439333838363632
34353236393730363262303439313132663735336463323432303036366361666338363237313664
39366434303839356163616136336237643061373633343737333036653362643635643536386436
30336636333464626464326332343333656535666431353338336438346335346433313934346231
32326231636262346232636366393361623830316238303537666164626339383061633765333039
30633539666535366539383061396461313437383537656239393131326538636536356536643735
66653336343364346635383761613731666263366465643336636661323263386364653035333062
33616364393664613363383937653530356138316363633335386232336531373835303732383962
65643264656134393663653333346531316365323730383363373564323133333032373330643232
63373239366435643738353130353333646136303530643065383066313035366239326664363830
36626366646264643130326261363536313835356638636139636434333362366363313133316130
61383734636433313433303466323265386132363862643131613666306162396437643166393630
32613464313530316262353938383735336262663939323730626662663235303638303065663939
33636234383033393237303865633961333462663232363562386637333335373565663261363933
31356436613138653765663162646566326134313736316130356336663536643466623331653039
38616465306532666434333534356464666663613263383430336465376133393032623762323237
63343462373834383566393466366332303235323865343730373062343739363265343164623262
38346539343533636435626133306662623865653934666665363063356162326461316561383261
33666362656635323262353066356330616263326134613635336261343438393838326438613435
64343336393034303330323563346233653135633439386465653065633339643032636662313531
38356234326632336161666666353030366238626262353831393532306166363432633939383166
66316136333838653433383439623366333062313833616366656566393965393665613738303833
38326139366330393863623365383963306361613665643962376664636134353533623836643362
39626166353138646666633136363662393565336333393638626534636330313632326333353366
39353133666532306531343137353834353133633165613566323135313362333962303637663965
63383730663562646563333763356135613537666332393537663062653662623938353434323136
39663965616437653232623333363762616233316530303833376332396165616635336532653035
36306331643232336664363733376632323630616139353030343930343166623433616234616539
34393131303363626166383037336262323662393431356463616665343463363432356132313531
37653331336165626435343162663662386662613164336439636465363335386233383065393535
31396466636465336164383563326236356463393831363534656536616664613361346463613837
35366562623432353166303836353261313233663864626665663837336233653237373031393636
64343763386361626232633032316466373161666536313363633765653365656538343130326566
38396534323433343634333139333063633531343631316163346135643037323034633835363963
32343963653263663438666537653963376133633661393562623131636465386266616166366566
36343963623262656162303337366365616263376363366161373236323166353834616262393061
39393239303335623332346236356335393836636533386432653164656334613738393533623764
36363136353034633934323066323335626138353763333537353761303930623930353062373932
30656339663333373431633763366433366266316563393332613334633966633339633230303166
61346264386134623962316532343664386637303738333835343036633038323137323961323837
33376431316465373165663338623538636136343538666235333334373664323463326336336334
32303361393134653338646563643636356361366133633634393731343332313437643731366634
30386466333965356135303732663433316363376438623764653464343564353835626435333230
30646238393266643137373037326136306337306130343739633933626134643364326534386464
65303531623335663766623037663630376366333631363165633762616564396538643866313465
35343265663336303537663962643536653937373839313435383337353036313239653263323061
63653865656461363334646466396135663338383065646464656631636666643030376363633333
30333331636438656238326534656165396233633131306562336263653330396366343964313434
66653862386531306236336339353935653335616638643831393430613533643533626135313835
64313065373564323132663531626436623465663766663566643964353361303336386464386463
38373036613536386436373535323664333231663437643962373339653236393339653064363530
61393835343230356234376630613230326637636534336564383139366663663136306665363363
66373237373530303062333935633634313766316461666439666433616236346434623535343531
30383264303536653236363533383561613636303662663935303761353065336631353735376365
63343162646663623736336638306465666233343031656137393037623035613236373930633131
36366633656131633563336561323835343766356131343038643761663966656364376430366636
36316633633736353436666539303039383231333437653666313435616536626434653833376532
66376130653339643564646139633238643266316633363137313038363061386163613863313733
66633665613537303834393233376463343965343664343564343832376238383064373262336162
61313163303632373261383563363964353731363739306337333161333130656235363631343761
61353265633338336466623830396466646233333039323065333636303035363563373366396334
37366637306430396262376539653134396536643931643563386666623364346635363138373937
61613232386666343033383031363439373335396362643130656235653066376537373062333363
39373737316136303835616639363162363839376635666237353064323433373961326338393263
34343162336336623530653531663136366136353139343561623532633139366533386263316364
36306134356666343230643639303766343466353562643130363063343330393232663161306266
66336435356265396330366566373137323265623431386535396665313335666332616233383664
63656663363366613431366632306230633265306663336439306263646132626631363663643861
30373330653637623733653165336132643965623232383839623535326336643239333133313030
32326634643238333163383562393134623532363561393364616430366532633862396438306433
33653235303639383333633035656533633165653137326130643961393965346266383861616333
37306266393231336666343333643530353230383239343931303838623335303262313130616162
65383962613965646438323065303962663965333231323139303438343631396363666330653330
61323839333863343034356363366433313039383963303063346237366261363861643839396362
31346637303032356463303564303562313639643563396261326538353834363737323235646430
64343230336539663237306235623662333062396238383135616231383837366339376633663938
65313739333065383335323437396232323564363733333437363133613766653334396431333036
38333038656339363132346362333863643261376335666536306231316630303437306231646565
61666334623736373832613366376438323664653531393938353234303030633532653561313665
63613064663564646235373234326661303562646139323330343330343139633462646131353038
62663535393738626432633564663564653663393937656634666137646363643365353930373266
66373162373165653533383862363835346133313234326162393331666566316439633133316633
66393733373333653630363334353833363565336338613361396335326166643630623133303466
31663037663766356531663039386232316138393266333035613364316539353837653763616666
32376431383965633138666536386532663761343537646266643566373132343762383966326233
38373766353962323362366330383564636236363961333535313064313039343933346439396237
66616631633539623537633164363665393239643633663338393765336434653930356662656164
65366533633336313832633166376265376634613635363563643866323730343139306537323863
61373461363237653634666331366436356335306265643639373034666131626238336632346632
34613062346532656530626364343938636162383862653538353563363035346339623839663261
39663438396362383866663336643035653833336466663037313764326434373061626232646333
63336336383366333538613331303863356430373764363930363061383036343836386561663362
63663232373563343461306131333263376437623534346562626536376138393939373064333231
31303464656332383036616661656565313063346231623634356638326239343536316162613335
34663232326438333966313663336465373833646634353934323361343833373661633265313239
62656533656338376562323861396665353166623732623139353431336439386263363235316132
35373933613236616362396363323031633166633837383634313638656430373634383563616463
38353738636631626639636135363561623935646365316161376166653461356430326362623738
64386537373230303239356334313663616336393439623431616639643233353662306265373232
39343066353564316433653361333766363535636533626338386434646531653432313034393134
62653733313636653331356363396531313136346136303661656466333138363366616530306536
66373532626230313739306432363433313736316261383837393737356333326236323261613965
36373064636138373134373530363533613031376362386334393464383062663663313234643432
64363232376137613231313862386561313131376133376466393630383737306666393738613265
66646236646632313832633366333335313239363763326464326361326263346636326332376336
31306230373963636135643235306537623930636164346366623862303838653238373030653035
35653634393532653566323063323761643738616532376262623163393461346334393034643862
62653835363236303732386365626464346131363231336431316233643132383566356531346237
66333933386539396366333565653938396564643464663165323535386262623532666237393630
65336262636630386633626335636231616332353965356335666362313562643738306263376230
63323938633237363431386639613830633765353232313236336233363736363566346237616637
61656234376562323162656432393665393930313736313439316261363264333865356139343233
63636638646332626365383839373765383864346532383236386266656635653333343032313231
65626233313634333533653436626134373632363565653230656161613963323334613262646530
66636331396130613934363939653238343463396639363731393363643830663362373439646337
63396435376637666563333165623338386337613638366339656561366538366635363037366531
32306235666231303762356665613738323336306465613531313964626631313731373963353964
32616632376534316532643531386635386330313866326265393736376538616431323238333562
36373238656361323336383466363563623333306634373164366134376635373262353533653330
38643233363737356564653834316435336439663562343366353866336662356138323566363061
63313336323435343861393164313130346438343862366530363233643266393964316265663535
65323739306536373331326338326132383265343939663336303534633537393637353639636561
64656432313636366434313465626562626638613232653230373530363234306537363665646633
33326163663830353166643662386637323438366334386533303664356631653561323032666265
61333165363636363634353461613039313362373863663739323231663230643635663466323430
37393431333733313134326231313234353930663365646637386639643535316362626232323430
32363631353565323663393235343336663930373439663861613661636433356366633065343935
61356636323039656230353264646166626633316430653162383638336265653865373536643036
35653166333765366231636163666638383262613432646334663430323565333538626665343763
32646663356565646362646261343436383039623635666439643762616463656361386631313637
61616164383734353634306633636338623837356230626263653161616664613266356432653335
30646434346436383565343138623264386630333832386134666463313936383364333364383232
39393066333666653734616463343530643537613437623766313237353033623662336137356534
35303635623232333230363362353137656235373539316163653863326666383237303235316164
34623138346261366238303037653764366537333561623135656236663435316565303931353939
34663932303239393836363663343735313632333639633733323564343039346436343935373430
66313863643361306161373634373738383462313831643161333230646435313261383534396464
39663466643864666433366531323866333935373833663661323833623734646265393035613966
62393165653135643737343333346232356638646437326664396466333063666135653338623266
34663133636164386164636434666231643163343930353863306538333337643762616661366366
63646336613433623862356365633563633235396337356535376335636633636563333738383061
33326136393530353964666639633638643433653736376637386638336561643061323635373565
65393836613638313165313262376166643561623131363836363531616232663333333063393039
35643938626132383439393761623165303730396365323665613663643961663466393937333731
30643662663034616631343336343236613437376362366234343436376563303466633030323465
64626536333465626430333336353038336539313531303933633466333633336364363961353861
31636135303332343733313637326461643264636236313331643438613365393733383764653432
65346533616130396233613863633331613638316462366364346465353234373531393137336165
36666336333036396262663661343962663763316531393765346536646236613331626139383230
32623665353463326633646466376232343333666465616633333033663031643262663732323230
36363439613934643037393562333237636262306330356638666235333361376136623462313736
33373163336134316563353031616339336234623738373230323335623130376265386130333235
64616261633232316131633062623163333135323737376462383539663137366539656261396238
31363232356361376264373863663362346535346136313834623761333037343435326339633735
33656465376264326334356365346437343062343631663430346561656531653662646530316133
64396563376263306533306565623163316238326264306330393465333737303062363030343662
65333633643635643737323231343664613735336230393835346132613331366266336434623937
65616366633734373434333837326465613862633930626435623165633964313732373936346434
30643161633238343435623538316134616161313461616538653161383032313038666638376432
64646564626231656664306235633031356564373432626561386135653136313062383861323130
34393331316439613363636631666262343334393739303631633936623964343938373334623230
39343031663565333431333731363966623730666335346164623662373265643732306662393663
39336137326533643533623865313934336464633634613436616438373531636562313762383666
37386365333361626362

5
group_vars/bdd.yml Normal file
View file

@ -0,0 +1,5 @@
---
borg_keep_hourly: 6
borg_backup_exclude:
- "/var/lib/postgresql/"
...

69
group_vars/dhcp/dhcpd.yml Normal file
View file

@ -0,0 +1,69 @@
---
dhcpd__omapi_key:
algorithm: hmac-sha512
secret: 99XuJO0ofX3VAnWWlyixWbQ5YTagPfgxyh14IbLNBb3/JzEklkWopvQdj/PXVYbfb/sRyFJBhLexPag4dLh7PA==
dhcpd__interfaces:
- client0
- client1
- client2
- client3
- client4
dhcpd__dns_servers:
- 10.128.10.3
- 10.128.10.103
dhcpd__domain_search:
- isp.auro.re.
- auro.re.
dhcpd__subnets:
- network: 100.64.0.0/27
routers:
- 100.64.0.1
start: 100.64.0.4
end: 100.64.0.30
domain_name: client0.isp.auro.re
failover: true
- network: 100.64.0.32/27
routers:
- 100.64.0.31
start: 100.64.0.33
end: 100.64.0.63
domain_name: client1.isp.auro.re
failover: true
- network: 100.64.0.64/27
routers:
- 100.64.0.65
start: 100.64.0.67
end: 100.64.0.95
domain_name: client2.isp.auro.re
failover: true
- network: 100.64.0.96/27
routers:
- 100.64.0.97
start: 100.64.0.99
end: 100.64.0.127
domain_name: client3.isp.auro.re
failover: true
- network: 100.64.0.128/27
routers:
- 100.64.0.129
start: 100.64.0.131
end: 100.64.0.159
domain_name: client4.isp.auro.re
dhcpd__failover:
dhcp-1.isp.infra.auro.re: 10.210.1.1
dhcp-2.isp.infra.auro.re: 10.210.1.2
dhcpd__failover_address: "{{ dhcpd__failover[inventory_hostname] }}"
dhcpd__failover_peer_address: "{{ dhcpd__failover
| dict2items
| selectattr('key', '!=',
inventory_hostname)
| map(attribute='value')
| first }}"
...

24
group_vars/dns/kresd.yml Normal file
View file

@ -0,0 +1,24 @@
---
kresd__listen:
- address: 0.0.0.0
port: 53
kind: dns
- address: "::"
port: 53
kind: dns
- address: 0.0.0.0
port: 853
kind: tls
- address: "::"
port: 853
kind: tls
- address: 0.0.0.0
port: 8453
kind: webmgmt
- address: "::"
port: 8453
kind: webmgmt
tls: false
kresd__cache_size: 512
...

View file

@ -0,0 +1,21 @@
---
keepalived__virtual_router_id: 81
keepalived__interface: back0
keepalived__virtual_addresses:
crans0:
- 185.230.79.254/29
- 2a0c:700:28::2/64
- fe80::1/10
zayo0:
- 2001:1b48:2:103::d7:2/126
- 83.167.52.69/31
- fe80::1/10
oti0:
- 2a00:a4c0:100c:1::b/127
- 77.95.70.11/31
- fe80::1/10
keepalived__main: "{{ inventory_hostname_short == 'edge-1' }}"
...

86
group_vars/infra/bird.yml Normal file
View file

@ -0,0 +1,86 @@
---
bird__kernel:
kernel:
learn: true
import: accept
export: accept
bird__ospf:
limits:
import: 4000
export: 4000
import: accept
export:
protos: kernel
areas:
0:
broadcast:
- back0
stub:
- monit0
- wifi0
- int0
- sw0
- bmc0
- pve0
- isp0
- ext0
- pub0
- th30
- ups0
1:
broadcast:
- vpn0
bird__bgp:
edge1:
local:
address: "{{ bird__bgp_addr.back }}"
as: "{{ bird__as.aurore }}"
neighbor:
address:
- 2a09:6840:203::1:1
- 10.203.1.1
as: "{{ bird__as.aurore }}"
import:
- pref_src: "{{ bird__pref_src_addr }}"
- accept
export: reject
edge2:
local:
address: "{{ bird__bgp_addr.back }}"
as: "{{ bird__as.aurore }}"
neighbor:
address:
- 2a09:6840:203::1:2
- 10.203.1.2
as: "{{ bird__as.aurore }}"
import:
- pref_src: "{{ bird__pref_src_addr }}"
- accept
export: reject
#wg1:
#local:
#address: "{{ bird__bgp_addr.vpn }}"
#as: "{{ bird__as.aurore }}"
#neighbor:
#address:
# - 2a09:6840:213::1:3
# - 10.213.1.3
#as: "{{ bird__as.aurore }}"
#rr_cluster_client: 10.203.1.1
#import: reject
#export: accept
#wg2:
#local:
#address: "{{ bird__bgp_addr.vpn }}"
#as: "{{ bird__as.aurore }}"
#neighbor:
#address:
# - 2a09:6840:213::1:4
# - 10.203.1.4
#as: "{{ bird__as.aurore }}"
#rr_cluster_client: 10.203.1.1
#import: reject
#export: accept
...

View file

@ -0,0 +1,457 @@
---
firewall__zones:
adm-legacy:
addrs:
- 2a09:6840:128::/64
- 10.128.0.0/16
ups:
addrs:
- 2a09:6840:201::/64
- 10.201.0.0/16
back:
addrs:
- 2a09:6840:203::/64
- 10.203.0.0/16
monit:
addrs:
- 2a09:6840:204::/64
- 10.204.0.0/16
wifi:
addrs:
- 2a09:6840:205::/64
- 10.205.0.0/16
int:
addrs:
- 2a09:6840:206::/64
- 10.206.0.0/16
sw:
addrs:
- 2a09:6840:207::/64
- 10.207.0.0/16
bmc:
addrs:
- 2a09:6840:208::/64
- 10.208.0.0/16
pve:
addrs:
- 2a09:6840:209::/64
- 10.209.0.0/16
isp:
addrs:
- 2a09:6840:210::/64
- 10.210.0.0/16
ext:
addrs:
- 2a09:6840:211::/64
- 10.211.0.0/16
pub:
addrs:
- 2a09:6840:215::/64
- 45.66.111.192/27
vpn-clients:
addrs:
- 2a09:6840:212::/64
- 10.212.0.0/16
vpn:
addrs:
- 2a09:6840:213::/64
- 10.213.0.0/16
infra:
zones:
- adm-legacy
- ups
- back
- monit
- wifi
- int
- sw
- bmc
- pve
- isp
- ext
- pub
- vpn
internet:
negate: true
addrs:
- 2a09:6840::/32
- 2a09:6841::/32
- 2a09:6842::/32
- 45.66.108.0/22
- 10.0.0.0/8
- 100.64.0.0/10
prometheus.int:
addrs:
- 2a09:6840:204::1:1
- 10.204.1.1
- 2a09:6840:204::1:2
- 10.204.1.2
grafana.adm:
addrs:
- 2a09:6840:128::98
- 10.128.0.98
re2o-ldap.adm:
addrs:
- 2a09:6840:128::21
- 10.128.0.21
ldap-replica-edc.adm:
addrs:
- 2a09:6840:128::4:249
- 10.128.4.249
nextcloud.adm:
addrs:
- 2a09:6840:128::58
- 10.128.0.58
dns.int:
addrs:
- 2a09:6840:206::1:1
- 10.206.1.1
- 2a09:6840:206::1:2
- 10.206.1.2
ntp.int:
addrs:
- 2a09:6840:206::1:5
- 10.206.1.5
- 2a09:6840:206::1:6
- 10.206.1.6
docker-ovh.adm:
addrs:
- 2a09:6840:128::150
- 10.128.0.150
mx.test:
addrs:
- 2a09:6840:211::1:5
- 45.66.111.208
- 10.128.1.5
proxy.pub:
addrs:
- 2a09:6840:215::1:1
- 45.66.111.206
collabora.ext:
addrs:
- 2a09:6840:211::1:1
- 10.211.1.1
grafana.ext:
addrs:
- 2a09:6840:211::1:7
- 10.211.1.7
ns-1.pub:
addrs:
- 2a09:6840:215::1:2
- 45.66.111.205
ns-2.pub:
addrs:
- 2a09:6840:215::1:3
- 45.66.111.207
ns-master.int:
addrs:
- 2a09:6840:206::1:7
- 10.206.1.7
tor.pub:
addrs:
- 45.66.111.215
- 2a09:6840:215::1:215
jitsi.pub:
addrs:
- 45.66.111.216
- 2a09:6840:215::1:216
log-1.int:
addrs:
- 10.206.1.9
- 2a09:6840:206::1:9
log-2.int:
addrs:
- 10.206.1.10
- 2a09:6840:206::1:10
firewall__input:
- iif:
- back0 # FIXME link-local
- vpn0
verdict: accept
- src:
- back
- vpn
verdict: accept
- src: monit
protocols:
tcp:
dport:
- 9100
- 9700
verdict: accept
- src: monit
protocols:
tcp:
dport: 9324
verdict: accept
- protocols:
icmp: true
verdict: accept
- protocols:
tcp:
dport: 22
verdict: accept
- verdict: drop
firewall__output:
- verdict: accept
firewall__forward:
- src: back
dst: infra
verdict: accept
- src: infra # FIXME: temporary
dst: internet
verdict: accept
- src: monit
dst: bmc
protocols:
icmp: true
verdict: accept
- dst: mx.test
protocols:
icmp: true
verdict: accept
- dst: mx.test
protocols:
tcp:
dport:
- 25
- 465
- 993
verdict: accept
# NS
- dst:
- ns-1.pub
- ns-2.pub
protocols:
tcp:
dport: 53
verdict: accept
- dst:
- ns-1.pub
- ns-2.pub
protocols:
udp:
dport: 53
verdict: accept
- src:
- ns-1.pub
- ns-2.pub
dst: ns-master.int
protocols:
udp:
dport: 53
verdict: accept
- src:
- ns-1.pub
- ns-2.pub
dst: ns-master.int
protocols:
tcp:
dport: 53
verdict: accept
# SNMP
- src: monit
dst:
- sw
- ups
- bmc
protocols:
udp:
dport: 161
verdict: accept
- src: monit
dst:
- sw
- ups
- bmc
protocols:
tcp:
dport: 161
verdict: accept
# Alertmanager
- src: monit
dst: docker-ovh.adm
protocols:
tcp:
dport: 9093
verdict: accept
- src: adm-legacy
dst: bmc
verdict: accept
# Prometheus for Grafana
- src: grafana.adm
dst: prometheus.int
protocols:
tcp:
dport: 9090
verdict: accept
# Prometheus for Grafana nixos
- src: grafana.ext
dst: prometheus.int
protocols:
tcp:
dport: 9090
verdict: accept
- src: grafana.ext
dst: re2o-ldap.adm
protocols:
tcp:
dport: 389
verdict: accept
- src: grafana.ext
dst: ldap-replica-edc.adm
protocols:
tcp:
dport: 389
verdict: accept
# Admin VPN clients
- src: vpn-clients
dst: infra
verdict: accept
# Prometheus node
- src: monit
dst: infra
protocols:
tcp:
dport:
- 9100
- 9700
verdict: accept
# Prometheus bird
- src: monit
dst: back
protocols:
tcp:
dport: 9324
verdict: accept
# Prometheus kresd
- src: monit
dst: dns.int
protocols:
tcp:
dport: 8453
verdict: accept
# Allow DNS from infra to dns-{1,2}
- src: infra
dst: dns.int
protocols:
udp:
dport: 53
verdict: accept
- src: infra
dst: dns.int
protocols:
tcp:
dport: 53
verdict: accept
# Allow NTP from infra to ntp-{1,2}
- src:
- infra
- pub
dst: ntp.int
protocols:
udp:
dport: 123
verdict: accept
# Admin Wireguard
- dst:
- 2a09:6840:211::1:1
- 45.66.111.204
- 10.211.1.1
protocols:
udp:
dport: 5121
verdict: accept
# Proxy web
- dst:
- jitsi.pub
- proxy.pub
protocols:
tcp:
dport:
- 80
- 443
verdict: accept
- src: proxy.pub
dst: grafana.adm
protocols:
tcp:
dport: 3000
verdict: accept
- src: proxy.pub
dst: grafana.ext
protocols:
tcp:
dport: 80
verdict: accept
- src: proxy.pub
dst: nextcloud.adm
protocols:
tcp:
dport: 8080
- src: proxy.pub
dst: adm-legacy
protocols:
tcp:
dport:
- 80
- 443
verdict: accept
# ICMP to public vlan
- dst: pub
protocols:
icmp: true
verdict: accept
# Proxy -> Collabora
- src: proxy.pub
dst: collabora.ext
protocols:
tcp:
dport: 9980
verdict: accept
# Collabora -> Proxy
- src: collabora.ext
dst: proxy.pub
protocols:
tcp:
dport:
- 80
- 443
verdict: accept
# Tor: SSH
- dst: tor.pub
protocols:
tcp:
dport:
- 22
- 4444
verdict: accept
# Jitsi UDP
- dst: jitsi.pub
protocols:
udp:
dport:
- 3478
- 10000
# Jitsi TCP
- dst: jitsi.pub
protocols:
tcp:
dport:
- 5349
firewall__nat:
- src: 10.0.0.0/8
dst: internet
protocols: null
snat:
addr: 45.66.111.200/30
#- src: monit
# dst: adm-legacy
# protocols: null
# snat:
# addr: 10.203.1.3/32
...

View file

@ -0,0 +1,59 @@
---
keepalived__virtual_router_id: 82
keepalived__interface: back0
keepalived__virtual_addresses:
ups0:
- 10.201.0.1/16
- 2a09:6840:201::1/64
- fe80::1/10
monit0:
- 10.204.0.1/16
- 2a09:6840:204::1/64
- fe80::1/10
wifi0:
- 10.205.0.1/16
- 2a09:6840:205::1/64
- fe80::1/10
int0:
- 10.206.0.1/16
- 2a09:6840:206::1/64
- fe80::1/10
sw0:
- 10.207.0.1/16
- 2a09:6840:207::1/64
- fe80::1/10
bmc0:
- 10.208.0.1/16
- 2a09:6840:208::1/64
- fe80::1/10
pve0:
- 10.209.0.1/16
- 2a09:6840:209::1/64
- fe80::1/10
isp0:
- 10.210.0.1/16
- 2a09:6840:210::1/64
- fe80::1/10
ext0:
- 10.211.0.1/16
- 2a09:6840:211::1/64
- fe80::1/10
th30:
- 10.126.0.6/24
- fe80::1/10
pub0:
- 2a09:6840:215::1/64
- 45.66.111.204/27
- fe80::1/10
#keepalived__virtual_routes:
# ext0:
# - 45.66.111.204/30
keepalived__virtual_blackholes:
- 45.66.111.200/30 # NAT
keepalived__main: "{{ inventory_hostname_short == 'infra-1' }}"
...

53
group_vars/isp/bird.yml Normal file
View file

@ -0,0 +1,53 @@
---
bird__kernel:
kernel:
learn: true
import: accept
export: accept
bird__ospf:
limits:
import: 4000
export: 4000
import: accept
export:
protos: kernel
areas:
0:
broadcast:
- back0
stub:
- client0
- client1
- client2
- client3
- client4
bird__bgp:
edge1:
local:
address: "{{ bird__bgp_addr.back }}"
as: "{{ bird__as.aurore }}"
neighbor:
address:
- 2a09:6840:203::1:1
- 10.203.1.1
as: "{{ bird__as.aurore }}"
import:
- pref_src: "{{ bird__pref_src_addr }}"
- accept
export: reject
bird__radv:
rdnss:
- 2a09:6840:206::1:1
- 2a09:6840:206::1:2
interfaces:
client0:
max_interval: 5
prefixes:
- 2a09:6841::/64
dnssl: client0.isp.auro.re
domain_search:
- auro.re
...

View file

@ -0,0 +1,40 @@
---
firewall__zones:
internet:
negate: true
addrs:
- 2a09:6840::/32
- 2a09:6841::/32
- 2a09:6842::/32
- 45.66.108.0/22
- 10.0.0.0/8
- 100.64.0.0/10
clients:
addrs:
- 100.64.0.0/10
non_clients:
negate: true
zones: clients
allowed_clients:
file:
path: /var/run/firewall/allowed_clients.yml
default: []
firewall__input:
- verdict: accept
firewall__output:
- verdict: accept
firewall__forward:
- src: allowed_clients
dst: non_clients
verdict: accept
firewall__nat:
- src: clients
dst: internet
protocols: null
snat:
addr: 45.66.111.220
...

View file

@ -0,0 +1,32 @@
---
keepalived__virtual_router_id: 80
keepalived__interface: back0
keepalived__virtual_addresses:
client0:
- 100.64.0.1/27
- 2a09:6841::1/56
- fe80::1/10
client1:
- 100.64.0.33/27
- 2a09:6841:0:1::1/64
- fe80::1/10
client2:
- 100.64.0.65/27
- 2a09:6841:0:2::1/64
- fe80::1/10
client3:
- 100.64.0.97/27
- 2a09:6841:0:3::1/64
- fe80::1/10
client4:
- 100.64.0.129/27
- 2a09:6841:0:4::1/64
- fe80::1/10
keepalived__virtual_blackholes:
- 45.66.111.220/32
keepalived__main: "{{ inventory_hostname_short == 'isp-1' }}"
...

71
group_vars/ns/knotd.yml Normal file
View file

@ -0,0 +1,71 @@
---
knotd__listen:
- address: 0.0.0.0
- address: "::"
knotd__keys:
xfr:
algorithm: hmac-sha512
secret: "{{ vault_knotd_xfr_key }}"
knotd__remotes:
xfr-master:
address: 2a09:6840:206::1:7
key: xfr
knotd__acl:
notify-master:
address:
- 2a09:6840:206::1:7
- 10.206.1.7
key: xfr
action: notify
knotd__queryacl:
local:
addresses:
- 10.0.0.0/8
knotd__zones:
auro.re:
dnssec_validation: true
acl:
- notify-master
master: xfr-master
test.auro.re:
dnssec_validation: true
acl:
- notify-master
master: xfr-master
infra.auro.re:
dnssec_validation: true
acl:
- notify-master
#queryacl: local
master: xfr-master
108.66.45.in-addr.arpa:
dnssec_validation: false
acl:
- notify-master
master: xfr-master
109.66.45.in-addr.arpa:
dnssec_validation: false
acl:
- notify-master
master: xfr-master
110.66.45.in-addr.arpa:
dnssec_validation: false
acl:
- notify-master
master: xfr-master
111.66.45.in-addr.arpa:
dnssec_validation: false
acl:
- notify-master
master: xfr-master
0.4.8.6.9.0.a.2.ip6.arpa:
dnssec_validation: false
acl:
- notify-master
master: xfr-master
...

View file

@ -0,0 +1,13 @@
---
chronyd__allow_networks:
- 2a09:6840::/32
- 10.0.0.0/8
chronyd__pools:
- 0.pool.ntp.org
- 1.pool.ntp.org
- 2.pool.ntp.org
- 3.pool.ntp.org
chronyd__local_stratum: 10
...

View file

@ -0,0 +1,144 @@
---
prometheus__scraping_bird:
targets: "{{ groups.router }}"
address:
port: 9324
prometheus__rules_bird:
- record: bird:protocol_up:bgp_all
expr:
label_replace(
bird_protocol_up{proto="BGP"},
"group", "$1",
"instance", "^([^0-9\\.]+)-[0-9]+.*"
)
# FIXME: sessions en cours d'installation, pas encore monitorées
- record: bird:protocol_up:bgp
expr:
bird:protocol_up:bgp_all
unless bird:protocol_up:bgp_all{
group="edge",
name=~"^(viarezo|isp[12]|rezel)[46]$"
}
# Sessions qui ne sont volontairement pas redondées
# au sein d'un groupe
- record: bird:protocol_up:bgp:non_redundant
expr:
bird:protocol_up:bgp{
group="edge",
name=~"^(oti|crans|legacy|edge)[46]$"
}
# Sessions qui le sont
- record: bird:protocol_up:bgp:redundant
expr:
bird:protocol_up:bgp
unless
bird:protocol_up:bgp:non_redundant
- alert: BirdBGPRedundancyDegraded
expr:
(
count by (group, name) (
bird:protocol_up:bgp:redundant{state="Established"}
) + (
count by (group, name) (
bird:protocol_up:bgp:redundant{state!="Established"} * 0
)
)
) < 2
for: 0m
labels:
severity: warning
annotations:
Session: !unsafe "{{ $labels.name }}"
Count: !unsafe "{{ $value }}"
Group: !unsafe "{{ $labels.group }}"
- alert: BirdBGPDown
expr:
(
count by (group, name) (
bird:protocol_up:bgp{state="Established"}
) + (
count by (group, name) (
bird:protocol_up:bgp{state!="Established"} * 0
)
)
) == 0
for: 0m
labels:
severity: critical
annotations:
Session: !unsafe "{{ $labels.name }}"
Group: !unsafe "{{ $labels.group }}"
# TODO: warning pour redondant ?
- alert: BirdBGPNoExportedPrefixRedundant
expr:
bird_protocol_prefix_export_count{
export_filter!="REJECT",
} * on (instance, name) group_left (group) (
bird:protocol_up:bgp:redundant{state="Established"}
) == 0
for: 0m
labels:
severity: critical
annotations:
Session: !unsafe "{{ $labels.name }}"
Group: !unsafe "{{ $labels.group }}"
- alert: BirdBGPNoImportedPrefixRedundant
expr:
bird_protocol_prefix_import_count{
import_filter!="REJECT",
} * on (instance, name) group_left (group) (
bird:protocol_up:bgp:redundant{state="Established"}
) == 0
for: 0m
labels:
severity: critical
annotations:
Session: !unsafe "{{ $labels.name }}"
Group: !unsafe "{{ $labels.group }}"
- alert: BirdBGPNoExportedPrefixNonRedundant
expr:
sum by (group) (
bird_protocol_prefix_export_count{
export_filter!="REJECT",
} * on (instance, name) group_left (group) (
bird:protocol_up:bgp:non_redundant{state="Established"}
)
) == 0
for: 0m
labels:
severity: critical
annotations:
Session: !unsafe "{{ $labels.name }}"
Group: !unsafe "{{ $labels.group }}"
- alert: BirdBGPNoImportedPrefixNonRedundant
expr:
sum by (group) (
bird_protocol_prefix_import_count{
import_filter!="REJECT",
} * on (instance, name) group_left (group) (
bird:protocol_up:bgp:non_redundant{state="Established"}
)
) == 0
for: 0m
labels:
severity: critical
annotations:
Session: !unsafe "{{ $labels.name }}"
Group: !unsafe "{{ $labels.group }}"
- alert: BirdOSPFNeighboursChange
expr:
changes(bird_ospf_neighbor_count[5m]) > 0
or changes(bird_ospfv3_neighbor_count[5m]) > 0
for: 0m
labels:
severity: warning
- alert: BirdOSPFDown
expr:
bird_ospf_running == 0
for: 0m
labels:
severity: critical
annotations:
Instance: !unsafe "{{ $labels.name }}"
...

View file

@ -0,0 +1,11 @@
---
prometheus__rules_common:
- alert: CollectorDown
expr:
up == 0
for: 3m
labels:
severity: critical
annotations:
Job: !unsafe "{{ $labels.job }}"
...

View file

@ -0,0 +1,11 @@
---
prometheus__scraping_eaton:
targets: "{{ groups.eaton_ups }}"
address: 127.0.0.1:9116
path: /snmp
params:
module:
- eaton
prometheus__rules_eaton: {}
...

View file

@ -0,0 +1,13 @@
---
prometheus__scraping_ilo:
targets: "{{ groups.ilo }}"
address: 127.0.0.1:9116
path: /snmp
timeout: 180s
interval: 180s
params:
module:
- ilo
prometheus__rules_ilo: {}
...

View file

@ -0,0 +1,6 @@
---
prometheus__scraping_jitsi:
targets: ["jitsi.pub.infra.auro.re"]
address:
port: 9700
...

View file

@ -0,0 +1,23 @@
---
prometheus__rules_keepalived:
- alert: KeepalivedVrrpFault
expr:
keepalived_vrrp_state{state="fault"} > 0
for: 0m
labels:
severity: critical
annotations:
Instance: !unsafe "{{ $labels.instance }}"
- alert: KeepalivedMasterChange
expr:
changes(
keepalived_vrrp_state{
keepalived_vvrp_state="master"
}[1m]
) > 0
for: 0m
labels:
severity: warning
annotations:
Instance: !unsafe "{{ $labels.instance }}"
...

View file

@ -0,0 +1,6 @@
---
prometheus__scraping_kresd:
targets: "{{ groups.dns }}"
address:
port: 8453
...

View file

@ -0,0 +1,28 @@
---
prometheus__alertmanager_targets:
- docker-ovh.adm.auro.re:9093
prometheus__tsdb_retention_time: 90d
prometheus__scraping:
node: "{{ prometheus__scraping_node }}"
prometheus: "{{ prometheus__scraping_prometheus }}"
kresd: "{{ prometheus__scraping_kresd }}"
bird: "{{ prometheus__scraping_bird }}"
quanta: "{{ prometheus__scraping_quanta }}"
ilo: "{{ prometheus__scraping_ilo }}"
snmp: "{{ prometheus__scraping_snmp }}"
eaton: "{{ prometheus__scraping_eaton }}"
jitsi: "{{ prometheus__scraping_jitsi }}"
prometheus__rules:
common: "{{ prometheus__rules_common }}"
switch: "{{ prometheus__rules_switch }}"
prometheus: "{{ prometheus__rules_prometheus }}"
node: "{{ prometheus__rules_node }}"
keepalived: "{{ prometheus__rules_keepalived }}"
quanta: "{{ prometheus__rules_quanta }}"
#ilo: "{{ prometheus__rules_ilo }}"
bird: "{{ prometheus__rules_bird }}"
#eaton: "{{ prometheus__rules_eaton }}"
...

View file

@ -0,0 +1,200 @@
---
prometheus__scraping_node:
targets: "{{ groups.vm + groups.pve }}"
address:
port: 9100
prometheus__rules_node:
- alert: OutOfMemory
expr:
(
node_memory_MemFree_bytes
+ node_memory_Cached_bytes
+ node_memory_Buffers_bytes
) / node_memory_MemTotal_bytes < 0.1
for: 5m
labels:
severity: warning
annotations:
FreeMemory: !unsafe "{{ $value | humanizePercentage }}"
- alert: HostSwapIsFillingUp
expr:
(
1 - (
node_memory_SwapFree_bytes
/ node_memory_SwapTotal_bytes
)
) >= 0.5
for: 3m
labels:
severity: critical
annotations:
UsedSwap: !unsafe "{{ $value | humanizePercentage }}"
- alert: HostPhysicalComponentTooHot
expr:
node_hwmon_temp_celsius > 79
for: 3m
labels:
severity: critical
annotations:
Temperature: !unsafe "{{ $value | humanize }} °C"
Chip: !unsafe "{{ $labels.chip }}"
Sensor: !unsafe "{{ $labels.sensor }}"
- alert: HostNodeOvertemperatureAlarm
expr:
node_hwmon_temp_crit_alarm_celsius == 1
for: 0m
labels:
severity: critical
annotations:
Chip: !unsafe "{{ $labels.chip }}"
Sensor: !unsafe "{{ $labels.sensor }}"
- alert: HostRaidArrayGotInactive
expr:
node_md_state{state="inactive"} > 0
for: 0m
labels:
severity: critical
annotations:
Device: !unsafe "{{ $labels.device }}"
- alert: HostRaidDiskFailure
expr:
node_md_disks{state="failed"} > 0
for: 0m
labels:
severity: critical
annotations:
severity: !unsafe "{{ $labels.md_device }}"
- alert: HostOomKillDetected
expr:
increase(node_vmstat_oom_kill[1m]) > 0
for: 0m
labels:
severity: warning
annotations:
PID: !unsafe "{{ $value }}"
- alert: HostEdacCorrectableErrorsDetected
expr:
increase(node_edac_correctable_errors_total[1m]) > 0
for: 0m
labels:
severity: warning
annotations:
CorrectedErrors: !unsafe "{{ $value }}"
- alert: HostEdacUncorrectableErrorsDetected
expr:
increase(node_edac_uncorrectable_errors_total[1m]) > 0
for: 0m
labels:
severity: warning
annotations:
DetectedErrors: !unsafe "{{ $value }}"
- alert: OutOfDiskSpace
expr:
(
node_filesystem_free_bytes
/ node_filesystem_size_bytes < 0.1
)
and on (instance, device, mountpoint) (
node_filesystem_readonly
) == 0
for: 5m
labels:
severity: critical
annotations:
Mountpoint: !unsafe "{{ $labels.mountpoint }}"
FreeSpace: !unsafe "{{ $value | humanizePercentage }}"
- alert: HostConntrackLimit
expr:
(
node_nf_conntrack_entries
/ node_nf_conntrack_entries_limit
) > 0.8
for: 5m
labels:
severity: warning
annotations:
Filled: !unsafe "{{ $value | humanizePercentage }}"
- alert: HostClockSkew
expr:
(
node_timex_offset_seconds > 0.05
and deriv(node_timex_offset_seconds[5m]) >= 0
) or (
node_timex_offset_seconds < -0.05
and deriv(node_timex_offset_seconds[5m]) <= 0
)
for: 2m
labels:
severity: warning
- alert: HostClockNotSynchronising
expr:
min_over_time(node_timex_sync_status[1m]) == 0
and node_timex_maxerror_seconds >= 16
for: 2m
labels:
severity: warning
- alert: HostRequiresReboot
expr:
node_reboot_required > 0
for: 5m
labels:
severity: warning
- alert: OutOfInodes
expr:
node_filesystem_files_free
/ node_filesystem_files < 0.1
for: 3m
labels:
severity: warning
annotations:
Mountpoint: !unsafe "{{ $labels.mountpoint }}"
FreeInodes: !unsafe "{{ $value | humanizePercentage }}"
- alert: CpuUsage
expr:
(
1 - avg by (instance) (
irate(node_cpu_seconds_total{mode="idle"}[5m])
)
) > 0.75
for: 10m
labels:
severity: warning
annotations:
Usage: !unsafe "{{ $value | humanizePercentage }}"
- alert: SystemdServiceFailed
expr:
node_systemd_unit_state{state="failed"} == 1
for: 10m
labels:
severity: warning
annotations:
Service: !unsafe "{{ $labels.name }}"
- alert: LoadUsage
expr:
node_load1 > 5
for: 2m
labels:
severity: warning
annotations:
Load1: !unsafe "{{ $value | humanize }}"
- alert: UnhealthyDisk
expr:
smartmon_device_smart_healthy < 1
for: 10m
labels:
severity: critical
annotations:
Disk: !unsafe "{{ $labels.disk }}"
- alert: HostCpuStealNoisyNeighbor
expr:
avg by (instance) (
rate(node_cpu_seconds_total{mode="steal"}[5m])
) > 0.1
for: 5m
labels:
severity: warning
annotations:
Disk: !unsafe "{{ $labels.disk }}"
Steal: !unsafe "{{ $value | humanizePercentage }}"
...

View file

@ -0,0 +1,14 @@
---
prometheus__scraping_prometheus:
targets: "{{ groups.prom }}"
address:
port: 9090
prometheus__rules_prometheus:
- alert: PrometheusTsdbCompactionFailed
expr:
increase(prometheus_tsdb_compactions_failed_total[1m]) > 0
for: 0m
labels:
severity: critical
...

View file

@ -0,0 +1,98 @@
---
prometheus__scraping_quanta:
targets: "{{ groups.quanta }}"
address: 127.0.0.1:9116
path: /snmp
timeout: 180s
interval: 180s
params:
module:
- quanta
prometheus__rules_quanta:
- alert: QuantaQueueOverflow
expr:
snAgGblQueueOverflow == 1
for: 0m
labels:
severity: critical
- alert: QuantaCpuUsage
expr:
snAgGblCpuUtil1MinAvg > 50
for: 5m
labels:
severity: warning
annotations:
Usage: !unsafe "{{ $value }} %"
- alert: QuantaCpuUsage
expr:
snAgGblCpuUtil1MinAvg > 80
for: 5m
labels:
severity: critical
annotations:
Usage: !unsafe "{{ $value }} %"
- alert: QuantaMemoryUsage
expr:
100 * (1 - (snAgGblDynMemFree / snAgGblDynMemTotal)) > 50
for: 5m
labels:
severity: warning
annotations:
UsedMemory: !unsafe "{{ $value }} %"
- alert: QuantaMemoryUsage
expr:
100 * (1 - (snAgGblDynMemFree / snAgGblDynMemTotal)) > 80
for: 5m
labels:
severity: alert
annotations:
UsedMemory: !unsafe "{{ $value }} %"
- alert: QuantaFanHealth
expr:
snChasFanOperStatus{snChasFanOperStatus="normal"} == 0
for: 0m
labels:
severity: critical
annotations:
Description: !unsafe "{{ $labels.shChasFanDescription }}"
Status: !unsafe "{{ $labels.snChasFanOperStatus }}"
- alert: QuantaMissingIntakeTemp
expr:
count by (instance) (
snAgentTempValue
) - count by (instance) (
snAgentTempValue{snAgentTempSensorDescr=~".*Intake.*"}
) == 0
for: 0m
labels:
severity: critical
- alert: QuantaIntakeTemp
expr:
0.5 * snAgentTempValue{snAgentTempSensorDescr=~".*Intake.*"} > 60
for: 10m
keep_firing_for: 30m
labels:
severity: warning
annotations:
Temperature: !unsafe "{{ $value }} °C"
Description: !unsafe "{{ $labels.snAgentTempSensorDescr }}"
- alert: QuantaIntakeTemp
expr:
0.5 * snAgentTempValue{snAgentTempSensorDescr=~".*Intake.*"} > 70
for: 10m
keep_firing_for: 30m
labels:
severity: critical
annotations:
Temperature: !unsafe "{{ $value }} °C"
Description: !unsafe "{{ $labels.snAgentTempSensorDescr }}"
- alert: QuantaPowerRedundancyFailure
expr:
count by (instance) (
snChasPwrSupplyOperStatus{snChasPwrSupplyOperStatus="normal"}
) < 2
for: 0m
labels:
severity: warning
...

View file

@ -0,0 +1,6 @@
---
prometheus__scraping_snmp:
targets: "{{ groups.prom }}"
address:
port: 9116
...

View file

@ -0,0 +1,91 @@
---
prometheus__rules_switch:
- alert: SwitchPromiscuousChange
expr:
changes(ifPromiscuousMode[5m]) > 0
for: 0m
labels:
severity: warning
annotations:
Interface: !unsafe "{{ $labels.ifName }}
{{ if $labels.ifAlias }}- {{ $labels.ifAlias }}{{ end }}"
- alert: SwitchInterfaceUpChange
expr:
changes(ifOperStatus{ifOperStatus="up"}[5m]) > 0
for: 0m
labels:
severity: warning
annotations:
Interface: !unsafe "{{ $labels.ifName }}
{{ if $labels.ifAlias }}- {{ $labels.ifAlias }}{{ end }}"
- alert: SwitchInErrors
expr:
irate(ifInErrors[5m]) / (
irate(ifInUcastPkts[5m])
+ irate(ifInNUcastPkts[5m])
) > 0.0001
for: 0m
labels:
severity: warning
annotations:
ErrorRate: !unsafe "{{ $value | humanizePercentage }}"
Interface: !unsafe "{{ $labels.ifName }}
{{ if $labels.ifAlias }}- {{ $labels.ifAlias }}{{ end }}"
- alert: SwitchOutErrors
expr:
irate(ifOutErrors[5m]) / (
irate(ifOutUcastPkts[5m])
+ irate(ifOutNUcastPkts[5m])
) > 0.0001
for: 0m
labels:
severity: warning
annotations:
ErrorRate: !unsafe "{{ $value | humanizePercentage }}"
Interface: !unsafe "{{ $labels.ifName }}
{{ if $labels.ifAlias }}- {{ $labels.ifAlias }}{{ end }}"
- alert: SwitchInLinkUsage
expr:
rate(ifHCInOctets[5m]) / (ifHighSpeed * 1000000 / 8) > 0.5
for: 5m
keep_firing_for: 10m
labels:
severity: warning
annotations:
Usage: !unsafe "{{ $value | humanizePercentage }}"
Interface: !unsafe "{{ $labels.ifName }}
{{ if $labels.ifAlias }}- {{ $labels.ifAlias }}{{ end }}"
- alert: SwitchInLinkUsage
expr:
rate(ifHCInOctets[5m]) / (ifHighSpeed * 1000000 / 8) > 0.8
for: 5m
keep_firing_for: 10m
labels:
severity: critical
annotations:
Usage: !unsafe "{{ $value | humanizePercentage }}"
Interface: !unsafe "{{ $labels.ifName }}
{{ if $labels.ifAlias }}- {{ $labels.ifAlias }}{{ end }}"
- alert: SwitchOutLinkUsage
expr:
rate(ifHCOutOctets[5m]) / (ifHighSpeed * 1000000 / 8) > 0.5
for: 5m
keep_firing_for: 10m
labels:
severity: warning
annotations:
Usage: !unsafe "{{ $value | humanizePercentage }}"
Interface: !unsafe "{{ $labels.ifName }}
{{ if $labels.ifAlias }}- {{ $labels.ifAlias }}{{ end }}"
- alert: SwitchOutLinkUsage
expr:
rate(ifHCOutOctets[5m]) / (ifHighSpeed * 1000000 / 8) > 0.8
for: 5m
keep_firing_for: 10m
labels:
severity: warning
annotations:
Usage: !unsafe "{{ $value | humanizePercentage }}"
Interface: !unsafe "{{ $labels.ifName }}
{{ if $labels.ifAlias }}- {{ $labels.ifAlias }}{{ end }}"
...

View file

@ -0,0 +1,40 @@
---
prometheus_snmp__modules_eaton:
version: 1
auth:
community: "{{ vault_snmp_eaton_community }}"
walk:
- sysUpTime
#- upsBattery
- xupsInput
- xupsOutput
- xupsBypass
- xupsEnvironment
- xupsBattery
- xupsConfig
lookups:
- source_indexes:
- xupsInputPhase
lookup: xupsInputName
- source_indexes:
- xupsOutputPhase
lookup: xupsOutputName
- source_indexes:
- xupsBypassPhase
lookup: xupsBypassName
overrides:
upsBatteryStatus:
type: EnumAsStateSet
xupsInputId:
type: EnumAsStateSet
xupsOutputId:
type: EnumAsStateSet
xupsBypassId:
type: EnumAsStateSet
xupsOutputSource:
type: EnumAsStateSet
xupsBatteryAbmStatus:
type: EnumAsStateSet
xupsContactType:
type: EnumAsStateSet
...

View file

@ -0,0 +1,19 @@
---
prometheus_snmp__modules_ilo:
version: 3
timeout: 10s
retries: 10
auth:
security_level: authPriv
auth_protocol: SHA
username: aurore
password: "{{ vault_snmp_ilo_auth }}"
priv_protocol: AES
priv_password: "{{ vault_snmp_ilo_priv }}"
walk:
- sysUpTime
- cpqHeTemperatureTable
overrides:
cpqHeTemperatureThresholdType:
type: EnumAsStateSet
...

View file

@ -0,0 +1,6 @@
---
prometheus_snmp__modules:
quanta: "{{ prometheus_snmp__modules_quanta }}"
ilo: "{{ prometheus_snmp__modules_ilo }}"
eaton: "{{ prometheus_snmp__modules_eaton }}"
...

View file

@ -0,0 +1,125 @@
---
prometheus_snmp__modules_quanta:
auth:
community: "{{ vault_snmp_quanta_community }}"
timeout: 60s
retries: 3
walk:
- interfaces
- ifXTable
- snAgGblQueueOverflow
- snAgGblDynMemTotal
- snAgGblDynMemFree
- snAgGblCpuUtil1SecAvg
- snAgGblCpuUtil5SecAvg
- snAgGblCpuUtil1MinAvg
- sysUpTime
- snAgentCpuUtilPercent
- snAgent
- snChasFan
- snChasPwr
- snAgentTemp
- snAgentCpu
- snSwInfo
- snSwIfInfoTable
- dot3StatsTable
- dot3HCStatsTable
- dot3Errors
- dot3Tests
- dot3CollTable
- lldpLocChassisId
- lldpRemTable
- lldpLocPortTable
- dot1dBasePort
lookups:
- source_indexes:
- ifIndex
lookup: ifAlias
- source_indexes:
- ifIndex
lookup: ifDescr
- source_indexes:
- ifIndex
lookup: ifName
- source_indexes:
- snChasFanIndex
lookup: snChasFanDescription
- source_indexes:
- snAgentTempSlotNum
- snAgentTempSensorId
lookup: snAgentTempSensorDescr
- source_indexes:
- snSwIfInfoPortNum
lookup: snSwIfName
- source_indexes:
- snSwIfInfoPortNum
lookup: snSwIfDescr
- source_indexes:
- dot3StatsIndex
lookup: ifAlias
- source_indexes:
- dot3StatsIndex
lookup: ifDescr
- source_indexes:
- dot3StatsIndex
lookup: ifName
- source_indexes:
- lldpRemTimeMark
- lldpRemLocalPortNum
- lldpRemIndex
lookup: lldpRemChassisId
#- source_indexes:
# - lldpLocPortNum
# lookup: lldpLocPortIdSubtype
overrides:
ifIndex:
ignore: true
ifAlias:
ignore: true
ifDescr:
ignore: true
ifName:
ignore: true
ifOperStatus:
type: EnumAsStateSet
ifAdminStatus:
type: EnumAsStateSet
snChasFanIndex:
ignore: true
snChasFanDescription:
ignore: true
snChasPwrSupplyIndex:
ignore: true
snAgentTempSensorDescr:
ignore: true
snChasFanOperStatus:
type: EnumAsStateSet
snChasPwrSupplyOperStatus:
type: EnumAsStateSet
snSwIfName:
ignore: true
snSwIfDescr:
ignore: true
snSwIfVlanId:
ignore: true
snSwIfInfoPortNum:
ignore: true
snSwIfInfoMonitorMode:
type: EnumAsStateSet
snSwIfInfoMirrorPorts:
ignore: true
snSwIfInfoMediaType:
type: EnumAsInfo
ifType:
type: EnumAsInfo
dot3StatsIndex:
ignore: true
dot3StatsEtherChipSet:
ignore: true
dot3StatsDuplexStatus:
type: EnumAsStateSet
lldpLocPortIdSubtype:
type: EnumAsInfo
lldpRemPortIdSubtype:
type: EnumAsInfo
...

View file

@ -0,0 +1,31 @@
---
pve_auth__groups:
admin:
- Administrator
pve_auth__pam_users:
root:
enabled: false
pve_auth__users:
elkmaennchen:
password: "{{ vault_pve_passwords.elkmaennchen }}"
groups:
- admin
jeltz:
password: "{{ vault_pve_passwords.jeltz }}"
groups:
- admin
korenstin:
password: "{{ vault_pve_passwords.korenstin }}"
groups:
- admin
otthorn:
password: "{{ vault_pve_passwords.otthorn }}"
groups:
- admin
v-lafeychine:
password: "{{ vault_pve_passwords['v-lafeychine'] }}"
groups:
- admin
...

View file

@ -0,0 +1,17 @@
---
radiusd__guest_vlan: 1000
radiusd__clients:
localhost:
addr: 127.0.0.1
secret: abcdef
type: aurore
wifi-ap-v4:
addr: 10.102.0.0/16
secret: abcdef
type: aurore
wifi-ap-v6:
addr: 2a09:6840:102::/56
secret: abcdef
type: aurore
...

View file

@ -1,3 +1,4 @@
---
loc_nginx:
servers: []

View file

@ -0,0 +1,3 @@
---
prometheus_keepalived__dest: /var/run/prometheus-node-exporter/keepalived.prom
...

3
group_vars/routeur.yml Normal file
View file

@ -0,0 +1,3 @@
---
rsyslog_high_density: true
...

12
group_vars/switch.yml Normal file
View file

@ -0,0 +1,12 @@
---
glob_switch:
loop_protect:
port_disable_timer_in_seconds: 30
transmit_interval_in_seconds: 3
sntp:
operation_mode: SNTP_UNICAST_MODE
poll_interval: 720
servers:
- ip: 10.206.1.5
priority: 1
...

60
group_vars/vpn/bird.yml Normal file
View file

@ -0,0 +1,60 @@
---
bird__tables:
- wg
bird__kernel:
kernel:
learn: true
import: accept
export: accept
vrf:
learn: true
import:
sources:
- "{{ iproute2__custom_protos.wireguard }}"
export: accept
table: wg
kernel: "{{ iproute2__custom_tables.wireguard }}"
bird__ospf:
limits:
import: 4000
export: 4000
table: wg
import: accept
export:
sources:
- "{{ iproute2__custom_protos.wireguard }}"
areas:
1:
broadcast:
- vpn0
bird__bgp:
infra1:
local:
address: "{{ bird__bgp_addr.vpn }}"
as: "{{ bird__as.aurore }}"
neighbor:
address:
- 2a09:6840:213::1:1
- 10.213.1.1
as: "{{ bird__as.aurore }}"
table: wg
import: accept
export: reject
next_hop_self: true
infra2:
local:
address: "{{ bird__bgp_addr.vpn }}"
as: "{{ bird__as.aurore }}"
neighbor:
address:
- 2a09:6840:213::1:2
- 10.213.1.2
as: "{{ bird__as.aurore }}"
table: wg
import: accept
export: reject
next_hop_self: true
...

View file

@ -0,0 +1,16 @@
---
ifupdown2__vrf:
wg-vrf:
table: "{{ iproute2__custom_tables.wireguard }}"
ifupdown2__wireguard:
wg0:
private_key: "{{ vault_wireguard_wg0_private }}"
listen_port: 5121
vrf: wg-vrf
table: "{{ iproute2__custom_tables.wireguard }}"
peer_allowed_addresses:
- 2a09:6840:212::1:1/128
- 10.212.1.1/32
peer_public_key: 0kP/XjaGOpu4p9KHTAoAhkLwXzC8wJUdPIdhdpgeKhY=
...

View file

@ -0,0 +1,7 @@
---
iproute2__custom_tables:
wireguard: 2000
iproute2__custom_protos:
wireguard: 200
...

View file

@ -0,0 +1,12 @@
---
borg_keep_hourly: 6
borg_keep_daily: 7
borg_keep_weekly: 4
borg_keep_monthly: 12
borg_backup_directories:
- "/etc"
- "/var"
- "/data_nextcloud"
- "/data_gitea"
- "/data_mail"
...

View file

@ -0,0 +1,22 @@
---
systemd_link__links:
pub0: ae:ae:ae:2C:60:35
ifupdown2__interfaces:
pub0:
addresses:
- 2a09:6840:128::220/64
- 10.128.0.220/16
gateways: "{{ ifupdown2__gateways.adm }}"
collabora__server_name: office.auro.re
collabora__post_allow_addrs:
- 2a09:6840:215::1:1
- 45.66.111.206
collabora__wopi_groups:
- host: https://cloud.auro.re:443
aliases:
- https://nextcloud.auro.re:443
...

View file

@ -0,0 +1,47 @@
---
systemd_link__links:
isp0: 02:00:00:c6:3f:6f
trunk0: 02:00:00:b1:8d:d6
ifupdown2__interfaces:
isp0:
addresses:
- 2a09:6840:210::1:1/64
- 10.210.1.1/16
gateways: "{{ ifupdown2__gateways.isp }}"
trunk0:
ipv6_addrgen: false
clients0:
bridge_vlan_aware: true
bridge_ports:
- trunk0
bridge_vids:
- 1000-1004
bridge_disable_pvid: true
ipv6_addrgen: false
client0:
addresses:
- 100.64.0.2/27
vlan_id: 1000
vlan_raw_device: clients0
client1:
addresses:
- 100.64.0.34/27
vlan_id: 1001
vlan_raw_device: clients0
client2:
addresses:
- 100.64.0.66/27
vlan_id: 1002
vlan_raw_device: clients0
client3:
addresses:
- 100.64.0.98/27
vlan_id: 1003
vlan_raw_device: clients0
client4:
addresses:
- 100.64.0.130/27
vlan_id: 1004
vlan_raw_device: clients0
...

View file

@ -0,0 +1,47 @@
---
systemd_link__links:
isp0: 04:00:00:8c:d1:36
trunk0: 04:00:00:33:2c:3c
ifupdown2__interfaces:
isp0:
addresses:
- 2a09:6840:210::1:2/64
- 10.210.1.2/16
gateways: "{{ ifupdown2__gateways.isp }}"
trunk0:
ipv6_addrgen: false
clients0:
bridge_vlan_aware: true
bridge_ports:
- trunk0
bridge_vids:
- 1000-1004
bridge_disable_pvid: true
ipv6_addrgen: false
client0:
addresses:
- 100.64.0.3/27
vlan_id: 1000
vlan_raw_device: clients0
client1:
addresses:
- 100.64.0.35/27
vlan_id: 1001
vlan_raw_device: clients0
client2:
addresses:
- 100.64.0.67/27
vlan_id: 1002
vlan_raw_device: clients0
client3:
addresses:
- 100.64.0.99/27
vlan_id: 1003
vlan_raw_device: clients0
client4:
addresses:
- 100.64.0.131/27
vlan_id: 1004
vlan_raw_device: clients0
...

View file

@ -0,0 +1,11 @@
---
systemd_link__links:
int0: 02:00:00:9f:d9:f9
ifupdown2__interfaces:
int0:
addresses:
- 2a09:6840:206::1:1/64
- 10.206.1.1/16
gateways: "{{ ifupdown2__gateways.int }}"
...

View file

@ -0,0 +1,11 @@
---
systemd_link__links:
int0: 04:00:00:3c:c0:5a
ifupdown2__interfaces:
int0:
addresses:
- 2a09:6840:206::1:2/64
- 10.206.1.2/16
gateways: "{{ ifupdown2__gateways.int }}"
...

View file

@ -0,0 +1,39 @@
---
systemd_link__links:
adm0: 02:00:00:9E:3E:21
crans0: 02:00:00:A2:7C:68
zayo0: 02:00:00:35:89:82
rezel0: 02:00:00:8F:4A:AD
back0: 02:00:00:1C:3A:2E
viarezo0: 02:00:00:ED:70:64
router0: 02:00:00:5A:17:7C
oti0: 02:00:00:05:0E:A6
ifupdown2__interfaces:
adm0:
addresses:
- 2a09:6840:128::10:2/64
- 10.128.10.2/16
crans0:
ipv6_addrgen: false
zayo0:
ipv6_addrgen: false
rezel0:
addresses:
- 2a09:6842:19:9116::1/64
- 45.66.111.1/29
back0:
addresses:
- 2a09:6840:203::1:1/64
- 10.203.1.1/16
viarezo0:
addresses:
- 2a0c:b641:2ff::6/125
- 192.159.121.133/29
router0:
addresses:
- 2a09:6840:129::10:2/56
- 10.129.10.2/16
oti0:
ipv6_addrgen: false
...

View file

@ -0,0 +1,39 @@
---
systemd_link__links:
adm0: 04:00:00:F5:69:B9
crans0: 04:00:00:CF:E1:D0
zayo0: 04:00:00:67:7B:12
rezel0: 04:00:00:C6:05:B7
back0: 04:00:00:DE:22:E6
viarezo0: 04:00:00:45:FA:E6
router0: 04:00:00:AD:D7:71
oti0: 02:00:00:05:0E:A6
ifupdown2__interfaces:
adm0:
addresses:
- 2a09:6840:128::10:102/64
- 10.128.10.102/16
crans0:
ipv6_addrgen: false
zayo0:
ipv6_addrgen: false
rezel0:
addresses:
- 2a09:6842:19:9116::3/64
- 45.66.111.3/29
back0:
addresses:
- 2a09:6840:203::1:2/64
- 10.203.1.2/16
viarezo0:
addresses:
- 2a0c:b641:2ff::7/125
- 192.159.121.134/29
router0:
addresses:
- 2a09:6840:129::10:102/56
- 10.129.10.102/16
oti0:
ipv6_addrgen: false
...

View file

@ -0,0 +1,63 @@
---
systemd_link__links:
ups0: 02:00:00:fe:6f:0e
back0: 02:00:00:f8:93:22
monit0: 02:00:00:da:97:7f
wifi0: 02:00:00:8c:c5:bf
int0: 02:00:00:75:40:3e
sw0: 02:00:00:ca:e8:d1
bmc0: 02:00:00:47:d1:b9
pve0: 02:00:00:b3:35:e7
isp0: 02:00:00:6b:53:14
ext0: 02:00:00:32:86:60
vpn0: 02:00:00:52:5f:85
th30: 02:00:00:23:a7:d3
pub0: 02:00:00:7d:34:06
ifupdown2__interfaces:
back0:
addresses:
- 2a09:6840:203::1:3/64
- 10.203.1.3/16
- 45.66.111.210/32 # secondary
ups0:
ipv6_addrgen: false
monit0:
ipv6_addrgen: false
wifi0:
ipv6_addrgen: false
int0:
ipv6_addrgen: false
sw0:
ipv6_addrgen: false
bmc0:
ipv6_addrgen: false
pve0:
ipv6_addrgen: false
isp0:
ipv6_addrgen: false
ext0:
ipv6_addrgen: false
pub0:
ipv6_addrgen: false
vpn0:
addresses:
- 2a09:6840:213::1:1/64
- 10.213.1.1/16
th30:
ipv6_addrgen: false
bird__router_id: 10.203.1.3
bird__bgp_addr:
back:
- 2a09:6840:203::1:3
- 10.203.1.3
vpn:
- 2a09:6840:213::1:1
- 10.213.1.1
bird__pref_src_addr:
- 2a09:6840:203::1:3
- 45.66.111.210
...

View file

@ -0,0 +1,63 @@
---
systemd_link__links:
ups0: 04:00:00:6d:97:83
back0: 04:00:00:46:ba:f9
monit0: 04:00:00:72:0b:2d
wifi0: 04:00:00:ee:42:0f
int0: 04:00:00:21:fd:d0
sw0: 04:00:00:2e:5b:16
bmc0: 04:00:00:bb:5a:a6
pve0: 04:00:00:0b:2b:82
isp0: 04:00:00:f4:4c:5d
ext0: 04:00:00:1d:0e:83
vpn0: 04:00:00:02:ba:dd
th30: 04:00:00:9e:8d:4f
pub0: 04:00:00:f8:3b:9b
ifupdown2__interfaces:
back0:
addresses:
- 2a09:6840:203::1:4/64
- 10.203.1.4/16
- 45.66.111.211/32 # secondary
ups0:
ipv6_addrgen: false
monit0:
ipv6_addrgen: false
wifi0:
ipv6_addrgen: false
int0:
ipv6_addrgen: false
sw0:
ipv6_addrgen: false
bmc0:
ipv6_addrgen: false
pve0:
ipv6_addrgen: false
isp0:
ipv6_addrgen: false
ext0:
ipv6_addrgen: false
vpn0:
addresses:
- 2a09:6840:213::1:2/64
- 10.213.1.2/16
th30:
ipv6_addrgen: false
pub0:
ipv6_addrgen: false
bird__router_id: 10.203.1.4
bird__bgp_addr:
back:
- 2a09:6840:203::1:4
- 10.203.1.4
vpn:
- 2a09:6840:213:1:2
- 10.213.1.2
bird__pref_src_addr:
- 2a09:6840:203::1:4
- 45.66.111.211
...

View file

@ -0,0 +1,59 @@
---
systemd_link__links:
adm0: 02:00:00:D8:37:45
back0: 02:00:00:BF:10:4C
trunk0: 02:00:00:E9:BA:15
ifupdown2__interfaces:
adm0:
addresses:
- 2a09:6840:128::10:5/64
- 10.128.10.5/16
gateways: "{{ ifupdown2__gateways.adm }}"
back0:
addresses:
- 2a09:6840:203::1:5/64
- 45.66.111.211/32
- 10.203.1.5/16
trunk0:
ipv6_addrgen: false
clients0:
bridge_vlan_aware: true
bridge_ports:
- trunk0
bridge_vids:
- 1000-1004
bridge_disable_pvid: true
ipv6_addrgen: false
client0:
vlan_id: 1000
vlan_raw_device: clients0
ipv6_addrgen: false
client1:
vlan_id: 1001
vlan_raw_device: clients0
ipv6_addrgen: false
client2:
vlan_id: 1002
vlan_raw_device: clients0
ipv6_addrgen: false
client3:
vlan_id: 1003
vlan_raw_device: clients0
ipv6_addrgen: false
client4:
vlan_id: 1004
vlan_raw_device: clients0
ipv6_addrgen: false
bird__router_id: 10.203.1.5
bird__bgp_addr:
back:
- 2a09:6840:203::1:5
- 10.203.1.5
bird__pref_src_addr:
- 2a09:6840:203::1:5
- 45.66.111.211
...

View file

@ -0,0 +1,47 @@
---
systemd_link__links:
adm0: 04:00:00:85:C3:5D
back0: 04:00:00:FE:2D:67
trunk0: 04:00:00:D8:F5:4D
ifupdown2__interfaces:
adm0:
addresses:
- 2a09:6840:128::10:105/64
- 10.128.10.105/16
gateways: "{{ ifupdown2__gateways.adm }}"
back0:
addresses:
- 2a09:6840:203::1:6/64
- 10.203.1.6/16
trunk0:
ipv6_addrgen: false
clients0:
bridge_vlan_aware: true
bridge_ports:
- trunk0
bridge_vids:
- 1000-1004
bridge_disable_pvid: true
ipv6_addrgen: false
client0:
vlan_id: 1000
vlan_raw_device: clients0
ipv6_addrgen: false
client1:
vlan_id: 1001
vlan_raw_device: clients0
ipv6_addrgen: false
client2:
vlan_id: 1002
vlan_raw_device: clients0
ipv6_addrgen: false
client3:
vlan_id: 1003
vlan_raw_device: clients0
ipv6_addrgen: false
client4:
vlan_id: 1004
vlan_raw_device: clients0
ipv6_addrgen: false
...

View file

@ -0,0 +1,16 @@
---
systemd_link__links:
adm0: 02:00:00:38:c2:52
int0: 02:00:00:fe:a8:54
ifupdown2__interfaces:
adm0:
addresses:
- 2a09:6840:128::10:8/64
- 10.128.10.8/16
int0:
addresses:
- 2a09:6840:206::1:3/64
- 10.206.1.7/16
gateways: "{{ ifupdown2__gateways.int }}"
...

View file

@ -0,0 +1,16 @@
---
systemd_link__links:
adm0: 04:00:00:f7:1c:47
int0: 04:00:00:e4:83:d2
ifupdown2__interfaces:
adm0:
addresses:
- 2a09:6840:128::10:108/64
- 10.128.10.108/16
int0:
addresses:
- 2a09:6840:206::1:4/64
- 10.206.1.8/16
gateways: "{{ ifupdown2__gateways.int }}"
...

View file

@ -1,9 +1,16 @@
---
borg_backup_directories:
- "/etc/"
- "/var/"
borg_backup_exclude: []
rsyslog_collector_base_dir: /var/log/remote
rsyslog_inputs:
- proto: relp
port: 20514
- proto: udp
port: 514
- proto: tcp
port: 6514
rsyslog_outputs: []
...

View file

@ -0,0 +1,38 @@
---
dovecot__auth_default_realm: test.auro.re
dovecot__auth_users:
jeltz@test.auro.re: "{plain}password"
lafeych@test.auro.re: "{plain}password"
toto@test.auro.re: "{plain}password"
root@test.auro.re: "{plain}L9yXSrCbbafMlMls5q7WWMKC612XNbXL"
dovecot__lmtp_postmaster_address: postmaster@test.auro.re
ifupdown2__interfaces:
ext0:
addresses:
- 2a09:6840:211::1:5/64
- 10.211.1.5/16
- 45.66.111.208/30
gateways: "{{ ifupdown2__gateways.ext }}"
postfix__hostname: mx.test.auro.re
postfix__sasl_local_domain: test.auro.re
postfix__virtual_aliases:
postmaster@test.auro.re: root@test.auro.re
dmarc@test.auro.re: root@test.auro.re
postfix__virtual_mailbox_domains:
- infra.test.auro.re
- test.auro.re
postfix__virtual_mailboxes:
jeltz@test.auro.re: jeltz@test.auro.re
root@test.auro.re: root@test.auro.re
toto@test.auro.re: toto@test.auro.re
vincent.lafeychine@test.auro.re: lafeych@test.auro.re
systemd_link__links:
ext0: ae:ae:ae:1d:c8:b2
...

View file

@ -0,0 +1,11 @@
---
systemd_link__links:
pub0: 02:00:00:ad:62:64
ifupdown2__interfaces:
pub0:
addresses:
- 2a09:6840:215::1:2/64
- 45.66.111.205/27
gateways: "{{ ifupdown2__gateways.pub }}"
...

View file

@ -0,0 +1,11 @@
---
systemd_link__links:
pub0: 04:00:00:1b:0a:3a
ifupdown2__interfaces:
pub0:
addresses:
- 2a09:6840:215::1:3/64
- 45.66.111.207/27
gateways: "{{ ifupdown2__gateways.pub }}"
...

View file

@ -0,0 +1,29 @@
---
systemd_link__links:
adm0: 96:77:96:91:e3:6c
ovh0: 02:00:00:97:78:6d
ifupdown2__interfaces:
adm0:
addresses:
- 2a09:6840:128::109/64
- 10.128.0.109/16
ovh0:
addresses:
- 92.222.211.194/24
gateways: "{{ ifupdown2__gateways.ovh }}"
# TODO: remove as soon as the VPN works
knotd__remotes:
xfr-master:
address: 2a09:6840:128::110
key: xfr
knotd__acl:
notify-master:
address:
- 2a09:6840:128::110
- 10.128.0.110
key: xfr
action: notify
...

View file

@ -0,0 +1,617 @@
---
knotd__listen:
- address: 0.0.0.0
- address: "::"
knotd__keys:
xfr:
algorithm: hmac-sha512
secret: "{{ vault_knotd_xfr_key }}"
ksk-infra:
algorithm: hmac-sha512
secret: "{{ vault_knotd_ksk_infra_key }}"
update-acme-challenge:
algorithm: hmac-sha512
secret: "{{ vault_certbot_dns_secret }}"
knotd__remotes:
xfr-ns-1:
address: 2a09:6840:215::1:2
key: xfr
xfr-ns-2:
address: 2a09:6840:215::1:3
key: xfr
xfr-ns-3:
address: 10.128.0.109
key: xfr
ksk-infra:
address: ::1
key: ksk-infra
knotd__policies:
public:
algorithm: ECDSAP256SHA256
reproducible_signing: true
# Je n'ai pas trouvé de façon de pousser les records automatiquement
# sur .re, donc pour éviter d'oublier de le faire manuellement, la
# KSK n'expire pas
ksk_lifetime: 0
zsk_lifetime: 30d
nsec3: true
infra:
algorithm: ECDSAP256SHA256
ksk_lifetime: 365d
zsk_lifetime: 30d
nsec3: on
ds-push: ksk-infra
cds-cdnskey-publish: rollover
ksk-submission: infra
ripe:
algorithm: ECDSAP256SHA256
ksk_lifetime: 365d
zsk_lifetime: 30d
nsec3: on
ds-push: ksk-ripe
cds-cdnskey-publish: rollover
ksk-submission: ripe
knotd__acl:
xfr:
addresses:
- 2a09:6840:128::109
- 10.128.0.109
- 2a09:6840:215::1:2
- 45.66.111.205
- 2a09:6840:215::1:3
- 45.66.111.207
action: transfer
key: xfr
ksk-infra:
addresses:
- 127.0.0.1
- ::1
key: ksk-infra
action: update
update_types:
- DS
update_owner: name
update_owner_match: equal
update_owner_name:
- infra
update-acme-challenge:
addresses:
- 10.128.0.0/16
- 2a09:6840:128::/48
key: update-acme-challenge
action: update
update_types:
- TXT
update_owner: name
update_owner_match: equal
update_owner_name:
- _acme-challenge.auro.re.
knotd__queryacl:
local:
addresses:
- 10.0.0.0/8
knotd__soa_rname: root@auro.re.
knotd__hosts:
auro.re:
proxy-ovh:
- 92.222.211.195
horus:
- 92.23.218.136
ns-1:
- 45.66.111.205
- 2a09:6840:215::1:2
ns-2:
- 92.222.211.194
serge:
- 92.222.211.196
lama:
- 185.230.78.220
- 2a0c:700:12:0:67:e5ff:fee9:108
vpn-ovh:
- 92.222.211.197
passerelle:
- 45.66.111.254
- 2a09:6840:111::254
proxy:
- 45.66.111.61
- 2a09:6840:111::61
camelot:
- 45.66.111.59
- 2a09:6840:111::59
mail:
- 45.66.111.62
- 2a09:6840:111::62
galene:
- 45.66.111.65
- 2a09:6840:111::65
aclyas:
- 45.66.111.231
- 2a09:6840:111::231
jitsi:
- 45.66.111.55
- 2a09:6840:111::55
jitsi-ng:
- 45.66.111.216
- 2a09:6840:215::1:216
portail-fleming:
- 10.13.0.247
- 2a09:6840:13::247
portail-pacaterie:
- 10.23.0.247
- 2a09:6840:23::247
portail-rives:
- 10.33.0.247
- 2a09:6840:33::247
portail-edc:
- 10.43.0.247
- 2a09:6840:43::247
portail-gs:
- 10.53.0.247
- 2a09:6840:53::247
adh.auro.re:
paon:
- 45.66.110.10
- 2a09:6840:110:0:231:92ff:fe1b:ae22
lyshyga0:
- 45.66.110.113
- 2a09:6840:110:0:6af7:28ff:fe91:e8d9
pz28910:
- 45.66.110.114
vinsing0:
- 45.66.110.123
- 2a09:6840:110:0:1e1b:dff:fe90:7d81
osc-routeur:
- 45.66.110.125
- 2a09:6840:110:0:ba27:ebff:fe2d:c1a1
odroid:
- 45.66.110.154
- 2a09:6840:110:0:21e:6ff:fe49:e00
amau0:
- 45.66.110.164
- 2a09:6840:110:0:3e7c:3fff:fec3:27d1
regulus:
- 45.66.110.180
- 2a09:6840:110:0:2ef0:5dff:fe2a:1530
toaster:
- 45.66.110.188
- 2a09:6840:110:0:5246:5dff:fe9a:f70
rpijutax:
- 45.66.110.190
- 2a09:6840:110:0:ba27:ebff:fe76:a9bc
polaris:
- 45.66.110.245
- 2a09:6840:110:0:dea6:32ff:feb4:d033
lafeychine:
- 92.91.154.45
infra.auro.re:
services-1.ceph:
- 2a09:6840:214::1:1
- 10.214.1.1
services-2.ceph:
- 2a09:6840:214::1:2
- 10.214.1.2
services-3.ceph:
- 2a09:6840:209::1:3
- 10.214.1.3
services-1.pve:
- 2a09:6840:209::2:1
- 10.209.2.1
services-2.pve:
- 2a09:6840:209::2:2
- 10.209.2.2
network-1.pve:
- 2a09:6840:209::1:1
- 10.209.1.1
network-2.pve:
- 2a09:6840:209::1:2
- 10.209.1.2
services-3.pve:
- 2a09:6840:209::2:3
- 10.209.2.3
caradoc.bmc:
- 2a09:6840:208::1:1
- 10.208.1.1
services-1.bmc:
- 2a09:6840:208::1:2
- 10.208.1.2
services-2.bmc:
- 2a09:6840:208::1:3
- 10.208.1.3
services-3.bmc:
- 2a09:6840:208::1:4
- 10.208.1.4
perceval.bmc:
- 2a09:6840:208::1:5
- 10.208.1.5
chapalux.bmc:
- 2a09:6840:208::1:6
- 10.208.1.6
loki.bmc:
- 2a09:6840:208::1:7
- 10.208.1.7
network-1.bmc:
- 2a09:6840:208::1:8
- 10.208.1.8
network-2.bmc:
- 2a09:6840:208::1:9
- 10.208.1.9
escalope.bmc:
- 2a09:6840:208::1:10
- 10.208.1.10
edge-1.back:
- 2a09:6840:203::1:1
- 10.203.1.1
edge-2.back:
- 2a09:6840:203::1:2
- 10.203.1.2
isp-1.back:
- 2a09:6840:203::1:5
- 10.203.1.5
isp-2.back:
- 2a09:6840:203::1:6
- 10.203.1.6
infra-1.back:
- 2a09:6840:203::1:3
- 10.203.1.3
infra-2.back:
- 2a09:6840:203::1:4
- 10.203.1.4
ns-master.int:
- 2a09:6840:128:0::110
- 10.128.0.110
log-1.int:
- 2a09:6840:206::1:9
- 10.206.1.9
log-2.int:
- 2a09:6840:206::1:10
- 10.206.1.10
dns-1.int:
- 2a09:6840:206::1:1
- 10.206.1.1
dns-2.int:
- 2a09:6840:206::1:2
- 10.206.1.2
nis2.int:
- 2a09:6840:206::2:1
- 10.206.2.1
ldap-1.int:
- 10.128.10.8
- 2a09:6840:128::10:8
ldap-2.int:
- 10.128.10.108
- 2a09:6840:128::10:108
ntp-1.int:
- 2a09:6840:206::1:5
- 10.206.1.5
ntp-2.int:
- 2a09:6840:206::1:6
- 10.206.1.6
wg-1.vpn:
- 2a09:6840:213::1:3
- 10.213.1.3
wg-2.vpn:
- 2a09:6840:213::1:4
- 10.213.1.4
dhcp-1.isp:
- 2a09:6840:210::1:1
- 10.210.1.1
dhcp-2.isp:
- 2a09:6840:210::1:2
- 10.210.1.2
radius-1.isp:
- 2a09:6840:210::1:3
- 10.210.1.3
radius-2.isp:
- 2a09:6840:210::1:4
- 10.210.1.4
prometheus-1.monit:
- 2a09:6840:204::1:1
- 10.204.1.1
prometheus-2.monit:
- 2a09:6840:204::1:2
- 10.204.1.2
ff-1.core.sw:
- 10.207.1.1
ff-2.core.sw:
- 10.207.1.2
fl-1.core.sw:
- 10.207.1.3
fl-2.core.sw:
- 10.207.1.4
fd-1.core.sw:
- 10.207.1.5
ff-3.core.sw:
- 10.207.1.6
gk-1.core.sw:
- 10.207.2.1
eb-1.core.sw:
- 10.207.3.1
r3-1.core.sw:
- 10.207.4.1
eb-1.ups:
- 2a09:6840:201::3:1
- 10.201.3.1
ec-1.ups:
- 2a09:6840:201::3:2
- 10.201.3.2
mx.test:
- 2a09:6840:211::1:5
- 10.211.1.5
collabora.ext:
- 2a09:6840:211::1:1
- 10.211.1.1
grafana.ext:
- 2a09:6840:211::1:7
- 10.211.1.7
proxy.pub:
- 2a09:6840:215::1:1
- 45.66.111.206
ns-1.pub:
- 2a09:6840:215::1:2
- 45.66.111.205
ns-2.pub:
- 2a09:6840:215::1:3
- 45.66.111.207
ns-3.ovh:
- 92.222.211.194
tor.pub:
- 45.66.111.215
- 2a09:6840:215::1:215
jitsi.pub:
- 45.66.111.216
- 2a09:6840:215::1:216
knotd__zones:
auro.re:
dnssec_policy: public
notify:
- xfr-ns-1
- xfr-ns-2
- xfr-ns-3
acl:
- update-acme-challenge
- ksk-infra
- xfr
soa:
mname: ns-master.int.infra
ns:
- target:
- ns-1.pub.infra
- ns-2.pub.infra
- name: infra
target:
- ns-1.pub.infra
- ns-2.pub.infra
- name: test
target:
- ns-1.pub.infra
- ns-2.pub.infra
- name: adm
target:
- serge
- lama
- name: ups
target:
- serge
- lama
- name: switch
target:
- serge
- lama
- name: borne
target:
- serge
- lama
mx:
- exchange: mail
preference: 5
- exchange: proxy-ovh
preference: 10
txt:
- data: v=spf1 mx -all
a:
- address: 92.222.211.195
cname:
- name:
- gisti
- gistiti
target: jitsi
- name:
- element
- riot
- auth
- rss
- codimd
- hedgedoc
- grist
- kanboard
- www
- pad
- privatebin
- zero
- paste
target: proxy-ovh
- name:
- grafana
- grafana-ng
- nextcloud
- cloud
- office
target: proxy.pub.infra
- name:
- netbox
- wiki
- matrix
- drone
- gitea
- re2o
- vote
target: proxy
- name: intranet
target: re2o
- name:
- smtp
- imap
target: mail
- name:
- prometheus-paul.adh
- pma-paul.adh
- nextcloud-paul.adh
- grafana-paul.adh
- jellyfin.adh
- monitoring.adh
- beta-mpp.adh
- pz28.adh
target: lucepaul.myvnc.com.
- name:
- services-1.pve
target: services-1.pve.infra
- name:
- services-2.pve
target: services-2.pve.infra
- name:
- services-3.pve
target: services-3.pve.infra
hosts: "{{ knotd__hosts['auro.re']
| combine(knotd__hosts['adh.auro.re']
| add_origin_keys('adh.auro.re.')) }}"
test.auro.re:
dnssec_policy: public
notify:
- xfr-ns-1
- xfr-ns-2
- xfr-ns-3
acl:
- xfr
soa:
mname: ns-master.int.infra.auro.re.
txt:
- data: v=spf1 mx -all
- name: _dmarc
data: v=DMARC1;p=quarantine;pct=100;rua=mailto:postmaster@test.auro.re;ruf=mailto:postmaster@test.auro.re
ns:
- target:
- ns-1.pub.infra.auro.re.
- ns-2.pub.infra.auro.re.
mx:
- exchange: mx
preference: 5
cname:
- name:
- www1
- www2
- www3
target: proxy.pub.infra.auro.re.
hosts:
mx:
- 2a09:6840:211::1:5
- 45.66.111.205
infra.auro.re:
dnssec_policy: infra
notify:
- xfr-ns-1
- xfr-ns-2
- xfr-ns-3
acl:
- xfr
#queryacl: local
soa:
mname: ns-master.int
ns:
- target:
- ns-1.pub.infra.auro.re.
- ns-2.pub.infra.auro.re.
hosts: "{{ knotd__hosts['infra.auro.re'] }}"
108.66.45.in-addr.arpa:
dnssec_policy: ripe
notify:
- xfr-ns-1
- xfr-ns-2
- xfr-ns-3
acl:
- xfr
soa:
mname: ns-master.int.infra.auro.re.
ns:
- target:
- ns-1.pub.infra.auro.re.
- ns-2.pub.infra.auro.re.
109.66.45.in-addr.arpa:
dnssec_policy: ripe
notify:
- xfr-ns-1
- xfr-ns-2
- xfr-ns-3
acl:
- xfr
soa:
mname: ns-master.int.infra.auro.re.
ns:
- target:
- ns-1.pub.infra.auro.re.
- ns-2.pub.infra.auro.re.
110.66.45.in-addr.arpa:
dnssec_policy: ripe
notify:
- xfr-ns-1
- xfr-ns-2
- xfr-ns-3
acl:
- xfr
soa:
mname: ns-master.int.infra.auro.re.
ns:
- target:
- ns-1.pub.infra.auro.re.
- ns-2.pub.infra.auro.re.
reverse_hosts: "{{ knotd__hosts['adh.auro.re']
| ip_filter(['45.66.110.0/24'])
| add_origin_keys('adh.auro.re.') }}"
111.66.45.in-addr.arpa:
dnssec_policy: ripe
notify:
- xfr-ns-1
- xfr-ns-2
- xfr-ns-3
acl:
- xfr
soa:
mname: ns-master.int.infra.auro.re.
ns:
- target:
- ns-1.pub.infra.auro.re.
- ns-2.pub.infra.auro.re.
reverse_hosts: "{{ knotd__hosts['auro.re']
| ip_filter(['45.66.111.0/24'])
| add_origin_keys('auro.re.') }}"
0.4.8.6.9.0.a.2.ip6.arpa:
dnssec_policy: ripe
notify:
- xfr-ns-1
- xfr-ns-2
- xfr-ns-3
acl:
- xfr
soa:
mname: ns-master.int.infra.auro.re.
ns:
- target:
- ns-1.pub.infra.auro.re.
- ns-2.pub.infra.auro.re.
reverse_hosts: "{{ knotd__hosts['auro.re']
| ip_filter(['2a09:6840::/32'])
| add_origin_keys('auro.re.')
| combine(knotd__hosts['adh.auro.re']
| ip_filter(['2a09:6840::/32'])
| add_origin_keys('adh.auro.re.')) }}"
...

View file

@ -0,0 +1,16 @@
---
systemd_link__links:
int0: 02:00:00:e3:36:c8
adm0: 42:17:a7:d1:bd:6a
ifupdown2__interfaces:
adm0:
addresses:
- 2a09:6840:128::110/64
- 10.128.0.110/16
int0:
addresses:
- 2a09:6840:206::1:7/64
- 10.206.1.7/16
gateways: "{{ ifupdown2__gateways.int }}"
...

View file

@ -0,0 +1,11 @@
---
systemd_link__links:
int0: 02:00:00:74:71:83
ifupdown2__interfaces:
int0:
addresses:
- 2a09:6840:206::1:5/64
- 10.206.1.5/16
gateways: "{{ ifupdown2__gateways.int }}"
...

View file

@ -0,0 +1,11 @@
---
systemd_link__links:
int0: 04:00:00:31:be:50
ifupdown2__interfaces:
int0:
addresses:
- 2a09:6840:206::1:6/64
- 10.206.1.6/16
gateways: "{{ ifupdown2__gateways.int }}"
...

View file

@ -0,0 +1,3 @@
---
borg_server_backups_dir: /borg
...

View file

@ -0,0 +1,11 @@
---
systemd_link__links:
monit0: 02:00:00:a8:6b:51
ifupdown2__interfaces:
monit0:
addresses:
- 2a09:6840:204::1:1/64
- 10.204.1.1/16
gateways: "{{ ifupdown2__gateways.monit }}"
...

View file

@ -0,0 +1,11 @@
---
systemd_link__links:
monit0: 04:00:00:a6:93:5a
ifupdown2__interfaces:
monit0:
addresses:
- 2a09:6840:204::1:2/64
- 10.204.1.2/16
gateways: "{{ ifupdown2__gateways.monit }}"
...

View file

@ -13,6 +13,8 @@ loc_reverseproxy:
to: auro.re
- from: 92.222.211.195
to: auro.re
- from: codimd.auro.re
to: hedgedoc.auro.re
reverseproxy_sites:
- from: phabricator.auro.re
@ -27,6 +29,9 @@ loc_reverseproxy:
- from: passbolt.auro.re
to: 10.128.0.53
- from: auth.auro.re
to: 10.128.0.150:8089
- from: riot.auro.re
to: "10.128.0.150:8080"
- from: element.auro.re
@ -34,8 +39,6 @@ loc_reverseproxy:
- from: chat.auro.re
to: "10.128.0.150:8080"
- from: codimd.auro.re
to: "10.128.0.150:8081"
- from: hedgedoc.auro.re
to: "10.128.0.150:8081"
@ -56,5 +59,10 @@ loc_reverseproxy:
- from: cas.auro.re
to: "10.128.0.150:8085"
- from: rss.auro.re
to: 10.128.0.150:8090
- from: status.auro.re
to: "10.128.0.150:8086"
- from: "kanboard.auro.re"
to: "10.128.0.150:8088"
...

View file

@ -41,9 +41,6 @@ loc_reverseproxy:
- from: intranet.auro.re
to: 10.128.0.20
- from: bbb.auro.re
to: 10.128.0.54
- from: nextcloud.auro.re
to: "10.128.0.58:8080"
@ -64,3 +61,15 @@ loc_reverseproxy:
- from: wikijs.auro.re
to: "10.128.0.66:3000"
- from: wiki.auro.re
to: "10.128.0.66:3000"
- from: netbox.auro.re
to: 10.128.0.97
- from: grafana.auro.re
to: "10.128.0.98:3000"
- from: office.auro.re
to: "10.128.0.220"

View file

@ -0,0 +1,103 @@
---
systemd_link__links:
pub0: ae:ae:ae:3a:71:0b
ifupdown2__interfaces:
pub0:
addresses:
- 2a09:6840:215::1:1/64
- 45.66.111.206/27
gateways: "{{ ifupdown2__gateways.pub }}"
caddy__matrix_headers:
access-control-allow-headers: "Origin, X-Requested-With, Content-Type, Accept, Authorization"
access-control-allow-methods: "GET, POST, PUT, DELETE, OPTIONS"
access-control-allow-origin: "*"
caddy__routes_https:
www1.test.auro.re:
- root: /var/www/auro.re
- path: /.well-known/matrix/server
headers: "{{ caddy__matrix_headers }}"
body: '{"m.server": "matrix.auro.re:8448"}'
status: 200
- path: /.well-known/matrix/client
headers: "{{ caddy__matrix_headers }}"
body: '{"m.homeserver": {"base_url": "https://matrix.auro.re"}}'
status: 200
www2.test.auro.re:
headers:
location: "https://auro.re{http.request.uri}"
status: 301
www3.test.auro.re:
reverse:
- "[2a09:6840:128::198]:3000"
- 10.128.0.198:3000
grafana.auro.re:
reverse:
- "[2a09:6840:128::98]:3000"
- 10.128.0.98:3000
grafana-ng.auro.re:
reverse:
- "[2a09:6840:211::1:7]:80"
- 10.211.1.7:80
office.auro.re:
reverse:
- "[2a09:6840:211::1:1]:9980"
- 10.211.1.1:9980
nextcloud.auro.re:
headers:
location: "https://cloud.auro.re{http.request.uri}"
status: 301
cloud.auro.re:
- path: /.well-known/carddav
headers:
location: /remote.php/dav/
status: 301
- path: /.well-known/caldav
headers:
location: /remote.php/dav/
status: 301
- path: /.well-known/webfinger
headers:
location: /index.php/.well-known/webfinger
status: 301
- path: /.well-known/nodeinfo
headers:
location: /index.php/.well-known/nodeinfo
status: 301
- path: /remote/*
rewrite: /remote.php
- path: /ocm-provider/*
rewrite: /index.php
- path: "*.mjs"
headers:
content-type: text/javascript
- reverse:
- "[2a09:6840:128::58]:8080"
- 10.128.0.58:8080
headers:
x-robots-tag: noindex, nofollow
referrer-policy: no-referrer
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-xss-protection: "1; mode=block"
caddy__contact_email: tech.aurore@lists.crans.org
caddy__errors:
- root: "{{ caddy__error_dir }}"
- rewrite: /error.html
- file_server: true
templates: true
caddy__servers:
https:
listen: ":443"
routes: "{{ caddy__routes_https }}"
errors: "{{ caddy__errors }}"
http:
listen: ":80"
...

View file

@ -0,0 +1,11 @@
---
systemd_link__links:
isp0: 02:00:00:6a:3e:f4
ifupdown2__interfaces:
isp0:
addresses:
- 2a09:6840:210::1:3/64
- 10.210.1.3/16
gateways: "{{ ifupdown2__gateways.isp }}"
...

View file

@ -0,0 +1,11 @@
---
systemd_link__links:
isp0: 04:00:00:29:6d:c9
ifupdown2__interfaces:
isp0:
addresses:
- 2a09:6840:210::1:4/64
- 10.210.1.4/16
gateways: "{{ ifupdown2__gateways.isp }}"
...

93
host_vars/sw-ec-1.yml Normal file
View file

@ -0,0 +1,93 @@
---
switch_vars:
name: sw-ec-1
location: "Local_de_Brassage_EdC"
host: 10.130.4.11
port: 80
username: "{{ vault_switch.username }}"
password: "{{ vault_switch.password }}"
delete_vlans: []
vlans:
- id: 40
name: "Filaire_EDC"
tagged: "{{ '9-10,12,14,16,18,20,22-25' | range2list }}"
- id: 41
name: "Wifi_EDC"
tagged: "{{ '5-10,12,14,16,18,20,22-25' | range2list }}"
- id: 42
name: "Banni_EDC"
tagged: "{{ '5-10,12,14,16,18,20,22-25' | range2list }}"
- id: 43
name: "Accueil_EDC"
tagged: "{{ '5-10,12,14,16,18,20,22-25' | range2list }}"
- id: 110
name: "Adherents_IP_Publiques"
tagged: "{{ '9-10,12,14,16,18,20,22-25' | range2list }}"
- id: 111
name: "Serveurs_IP_Publiques"
tagged: "{{ '25' | range2list }}"
- id: 131
name: "Onduleurs"
tagged: [25]
- id: 144
name: "Bornes_Wifi_EDC"
tagged: [25]
untagged: "{{ '5-8,12,14,16,18,20,22-24' | range2list }}"
ports:
- id: 1
name: "Room_Ouest_363"
- id: 2
name: "Room_Ouest_364"
- id: 3
name: "Room_Principale_Foyer_1"
- id: 4
name: "Room_Principale_Foyer_2"
- id: 5
name: "Borne_Principale_0_1"
- id: 6
name: "Borne_Principale_1_1"
- id: 7
name: "Borne_Principale_1_2"
- id: 8
name: "Borne_Principale_1_3"
- id: 9
name: "Room_Ouest_352"
- id: 10
name: "Borne_Adh_Ouest_252"
- id: 11
name: "Room_Ouest_273"
- id: 12
name: "Borne_Adh_Est_231"
- id: 13
name: "Room_Ouest_261"
- id: 14
name: "Borne_Adh_Ouest_272"
- id: 15
name: "Room_Ouest_262"
- id: 16
name: "Room_Est_225"
- id: 17
name: "Room_Ouest_263"
- id: 18
name: "Room_Ouest_76"
- id: 19
name: "Room_Ouest_264"
- id: 20
name: "Borne_Adh_Ouest_58"
- id: 21
name: "Room_Ouest_265"
- id: 22
name: "Not_used"
- id: 23
name: "Room_Ouest_158"
- id: 24
name: "Borne_Adh_Ouest_267"
# id: 25
# name: "Uplink_sw-ec-core"
- id: 26
name: "Not_used"
- id: 27
name: "Not_used"
- id: 28
name: "Not_used"
...

228
host_vars/sw-ec-2.yml Normal file
View file

@ -0,0 +1,228 @@
---
switch_vars:
name: sw-ec-2
location: Local de Brassage EdC
host: 10.130.4.12
port: 80
username: "{{ vault_switch.username }}"
password: "{{ vault_switch.password }}"
delete_vlans: []
vlans:
- id: 40
name: "Filaire_edc"
tagged: [49]
- id: 41
name: "Wifi_edc"
tagged: [49]
- id: 42
name: "Banni_edc"
tagged: [49]
- id: 43
name: "Accueil_edc"
tagged: [49]
- id: 110
name: "Adherents_ip_publiques"
tagged: [49]
- id: 111
name: "Serveurs_ip_publiques"
tagged: [49]
- id: 131
name: "Onduleurs"
tagged: [49]
- id: 144
name: "Bornes_wifi_edc"
tagged: [49]
ports:
- id: 1
name: "Room_edc_Aile_Principale_115"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 2
name: "Room_edc_Aile_Principale_103"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 3
name: "Room_edc_Aile_Principale_114"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 4
name: "Room_edc_Aile_Principale_102"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 5
name: "Room_edc_Aile_Principale_113"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 6
name: "Room_edc_Aile_Principale_101"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 7
name: "Room_edc_Aile_Principale_112"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 8
name: "Room_edc_Aile_Principale_100"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 9
name: "Room_edc_Aile_Principale_111"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 10
name: "Room_edc_Aile_Principale_215"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 11
name: "Room_edc_Aile_Principale_110"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 12
name: "Room_edc_Aile_Principale_214"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 13
name: "Room_edc_Aile_Principale_207"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 14
name: "Room_edc_Aile_Est_24"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 15
name: "Room_edc_Aile_Principale_206"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 16
name: "Room_edc_Aile_Est_25"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 17
name: "Room_edc_Aile_Principale_205"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 18
name: "Room_edc_Aile_Est_26"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 19
name: "Room_edc_Aile_Principale_204"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 20
name: "Room_edc_Aile_Est_27"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 21
name: "Room_edc_Aile_Principale_203"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 22
name: "Room_edc_Aile_Est_28"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 23
name: "Room_edc_Aile_Principale_202"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 24
name: "Room_edc_Aile_Est_29"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 25
name: "Room_edc_Aile_Principale_201"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 26
name: "Room_edc_Aile_Est_30"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 27
name: "Room_edc_Aile_Principale_200"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 28
name: "Room_edc_Aile_Est_31"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 29
name: "Room_edc_Aile_Est_20"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 30
name: "Room_edc_Aile_Est_32"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 31
name: "Room_edc_Aile_Est_21"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 32
name: "Room_edc_Aile_Est_33"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 33
name: "Room_edc_Aile_Est_22"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 34
name: "Room_edc_Aile_Est_34"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 35
name: "Room_edc_Aile_Est_23"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 36
name: "Room_edc_Aile_Est_120"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 37
name: "Room_edc_Aile_Principale_109"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 38
name: "Room_edc_Aile_Principale_213"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 39
name: "Room_edc_Aile_Principale_108"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 40
name: "Room_edc_Aile_Principale_212"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 41
name: "Room_edc_Aile_Principale_107"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 42
name: "Room_edc_Aile_Principale_211"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 43
name: "Room_edc_Aile_Principale_106"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 44
name: "Room_edc_Aile_Principale_210"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 45
name: "Room_edc_Aile_Principale_105"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 46
name: "Room_edc_Aile_Principale_209"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 47
name: "Room_edc_Aile_Principale_104"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 48
name: "Room_edc_Aile_Principale_208"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
...

220
host_vars/sw-ec-3.yml Normal file
View file

@ -0,0 +1,220 @@
---
switch_vars:
name: sw-ec-3
location: Local de Brassage EdC
host: 10.130.4.13
port: 80
username: "{{ vault_switch.username }}"
password: "{{ vault_switch.password }}"
delete_vlans: []
vlans:
- id: 40
name: "Filaire_edc"
tagged: [49]
- id: 41
name: "Wifi_edc"
tagged: [49]
- id: 42
name: "Banni_edc"
tagged: [49]
- id: 43
name: "Accueil_edc"
tagged: [49]
- id: 110
name: "Adherents_ip_publiques"
tagged: [49]
- id: 111
name: "Serveurs_ip_publiques"
tagged: [49]
- id: 131
name: "Onduleurs"
tagged: [49]
- id: 144
name: "Bornes_wifi_edc"
tagged: [49]
ports:
- id: 1
name: "Room_edc_Aile_Est_121"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 2
name: "Room_edc_Aile_Est_133"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 3
name: "Room_edc_Aile_Est_122"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 4
name: "Room_edc_Aile_Est_134"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 5
name: "Room_edc_Aile_Est_123"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 6
name: "Room_edc_Aile_Est_135"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 7
name: "Room_edc_Aile_Est_124"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 8
name: "Room_edc_Aile_Est_136"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 9
name: "Room_edc_Aile_Est_125"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 10
name: "Room_edc_Aile_Est_137"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 11
name: "Room_edc_Aile_Est_126"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 12
name: "Room_edc_Aile_Est_138"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 14
name: "Room_edc_Aile_Est_237"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 15
name: "Room_edc_Aile_Est_226"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 16
name: "Room_edc_Aile_Est_238"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 17
name: "Room_edc_Aile_Est_227"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 18
name: "Room_edc_Aile_Est_239"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 19
name: "Room_edc_Aile_Est_228"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 20
name: "Room_edc_Aile_Est_333"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 21
name: "Room_edc_Aile_Est_229"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 22
name: "Room_edc_Aile_Est_332"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 24
name: "Room_edc_Aile_Est_331"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 25
name: "Room_edc_Aile_Est_231"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 26
name: "Room_edc_Aile_Est_330"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 27
name: "Room_edc_Aile_Est_232"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 28
name: "Room_edc_Aile_Est_329"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 29
name: "Room_edc_Aile_Est_233"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 30
name: "Room_edc_Aile_Est_328"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 31
name: "Room_edc_Aile_Est_234"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 32
name: "Room_edc_Aile_Est_327"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 33
name: "Room_edc_Aile_Est_235"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 34
name: "Room_edc_Aile_Est_326"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 35
name: "Room_edc_Aile_Est_236"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 36
name: "Room_edc_Aile_Est_325"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 37
name: "Room_edc_Aile_Est_127"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 38
name: "Room_edc_Aile_Est_139"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 39
name: "Room_edc_Aile_Est_128"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 40
name: "Room_edc_Aile_Est_220"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 41
name: "Room_edc_Aile_Est_129"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 42
name: "Room_edc_Aile_Est_221"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 43
name: "Room_edc_Aile_Est_130"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 44
name: "Room_edc_Aile_Est_222"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 45
name: "Room_edc_Aile_Est_131"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 46
name: "Room_edc_Aile_Est_223"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 47
name: "Room_edc_Aile_Est_132"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 48
name: "Room_edc_Aile_Est_224"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
...

224
host_vars/sw-ec-4.yml Normal file
View file

@ -0,0 +1,224 @@
---
switch_vars:
name: sw-ec-4
location: Local de Brassage EdC
host: 10.130.4.14
port: 80
username: "{{ vault_switch.username }}"
password: "{{ vault_switch.password }}"
delete_vlans: []
vlans:
- id: 40
name: "Filaire_edc"
tagged: [49]
- id: 41
name: "Wifi_edc"
tagged: [49]
- id: 42
name: "Banni_edc"
tagged: [49]
- id: 43
name: "Accueil_edc"
tagged: [49]
- id: 110
name: "Adherents_ip_publiques"
tagged: [49]
- id: 111
name: "Serveurs_ip_publiques"
tagged: [49]
- id: 131
name: "Onduleurs"
tagged: [49]
- id: 144
name: "Bornes_wifi_edc"
tagged: [49]
ports:
- id: 1
name: "Room_edc_Aile_Est_324"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 2
name: "Room_edc_Aile_Ouest_57"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 3
name: "Room_edc_Aile_Est_323"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 4
name: "Not_used"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 5
name: "Room_edc_Aile_Est_322"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 6
name: "Room_edc_Aile_Ouest_59"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 7
name: "Room_edc_Aile_Est_321"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 8
name: "Room_edc_Aile_Ouest_60"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 9
name: "Room_edc_Aile_Est_320"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 10
name: "Room_edc_Aile_Ouest_61"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 11
name: "Room_edc_Aile_Ouest_50"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 12
name: "Room_edc_Aile_Ouest_62"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 13
name: "Room_edc_Aile_Ouest_69"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 14
name: "Room_edc_Aile_Ouest_153"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 15
name: "Room_edc_Aile_Ouest_70"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 16
name: "Room_edc_Aile_Ouest_154"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 17
name: "Room_edc_Aile_Ouest_71"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 18
name: "Room_edc_Aile_Ouest_155"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 19
name: "Room_edc_Aile_Ouest_72"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 20
name: "Room_edc_Aile_Ouest_156"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 21
name: "Room_edc_Aile_Ouest_73"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 22
name: "Room_edc_Aile_Ouest_157"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 23
name: "Room_edc_Aile_Ouest_74"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 25
name: "Room_edc_Aile_Ouest_75"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 26
name: "Room_edc_Aile_Ouest_159"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 27
name: "Room_edc_Aile_Ouest_76"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 28
name: "Room_edc_Aile_Ouest_160"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 29
name: "Room_edc_Aile_Ouest_77"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 30
name: "Room_edc_Aile_Ouest_161"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 31
name: "Room_edc_Aile_Ouest_150"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 32
name: "Room_edc_Aile_Ouest_162"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 33
name: "Room_edc_Aile_Ouest_151"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 34
name: "Room_edc_Aile_Ouest_163"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 35
name: "Room_edc_Aile_Ouest_152"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 36
name: "Room_edc_Aile_Ouest_164"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 37
name: "Room_edc_Aile_Ouest_51"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 38
name: "Room_edc_Aile_Ouest_63"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 39
name: "Room_edc_Aile_Ouest_52"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 40
name: "Room_edc_Aile_Ouest_64"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 41
name: "Room_edc_Aile_Ouest_53"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 42
name: "Room_edc_Aile_Ouest_65"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 43
name: "Room_edc_Aile_Ouest_54"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 44
name: "Room_edc_Aile_Ouest_66"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 45
name: "Room_edc_Aile_Ouest_55"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 46
name: "Room_edc_Aile_Ouest_67"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 47
name: "Room_edc_Aile_Ouest_56"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
- id: 48
name: "Room_edc_Aile_Ouest_68"
lldp: "LPAS_TX_AND_RX"
loop_protect: true
...

Some files were not shown because too many files have changed in this diff Show more