-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathseapath-cluster.yaml
187 lines (163 loc) · 6.36 KB
/
seapath-cluster.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# This inventory describes a SEAPATH cluster with two hypervisors and one observer.
# It contains all required variables to configure and run your cluster.
# Replace all the TODOs to fit your physical machines.
# More informations on SEAPATH Wiki: https://lf-energy.atlassian.net/wiki/x/lIblAQ
---
cluster_machines:
children:
hypervisors:
hosts:
hypervisor1:
# TODO : Replace the variable by your IP or interfaces
# Admin network settings
ansible_host: 192.168.200.125
network_interface: eno1
# Cluster network settings
team0_0: "eno2"
team0_1: "eno3"
cluster_next_ip_addr : "192.168.55.2"
cluster_previous_ip_addr : "192.168.55.3"
cluster_ip_addr: "192.168.55.1"
# PTP configuration.
# Optional, remove if the machine is not synchronised with PTP
ptp_interface: "eno12419"
hypervisor2:
# TODO : Replace the variables by your IP or interfaces
# Admin network settings
ansible_host: 192.168.200.126
network_interface: eno1
# Cluster network settings
team0_0: "eno2"
team0_1: "eno3"
cluster_next_ip_addr : "192.168.55.3"
cluster_previous_ip_addr : "192.168.55.1"
cluster_ip_addr: "192.168.55.2"
# PTP configuration.
# Optional, remove if the machine is not synchronised with PTP
ptp_interface: "eno12419"
vars:
livemigration_user: livemigration
isolcpus: "4-N" # TODO : Put the list of cpus to isolate.
# This variable is only used on Debian.
# On Yocto, it is configured in yocto-bsp
observers:
hosts:
observer:
# TODO : Replace the variables by your IP or interfaces
# Admin network settings
ansible_host: 192.168.200.10
network_interface: enp0s20f0u3u2
# Cluster network settings
team0_0: "enp2s0"
team0_1: "enp3s0"
cluster_next_ip_addr : "192.168.55.1"
cluster_previous_ip_addr : "192.168.55.2"
cluster_ip_addr: "192.168.55.3"
br_rstp_priority: 12288 # Do not modify
# This value is needed only on third machine for the RSTP to work
# PTP configuration.
ptp_interface: "eno12419"
vars:
# Ansible vars
ansible_connection: ssh
ansible_python_interpreter: /usr/bin/python3
ansible_remote_tmp: /tmp/.ansible/tmp
ansible_user: ansible # TODO: Put the name of your ansible user
# By default, this user is "ansible" on Debian and "admin" on Yocto
# Debian specific, remove if you use Yocto
admin_user: admin
# Main network configuration
gateway_addr: "192.168.200.1" # TODO : Put your gatway address
dns_servers: "192.168.200.1" # TODO : Put your dns address
ip_addr: "{{ ansible_host }}"
apply_network_config: true
# systemd-networkd is used by default to configure the network
# netplan can also be used to sum up complex network in one yaml file
# See the wiki for more informations : TODO put link
# NTP time synchronisation
ntp_servers:
- "185.254.101.25" # public ntp server
- "51.145.123.29" # public ntp serve
# Hardening (Debian only)
# TODO : Put the password hash for the grub password
# It can be generated with the following command: grub-mkpasswd-pbkdf2
grub_password: grub.pbkdf2.sha512.10000.666FF16D5587509B2B3340B2388CB798BEF9553A9666CECA6282E0D822C1529F94AF693CC6738C1F757B868D8090F24FD48D8F56486C70C545D559CB4BAAAA3E.9718E767036BDB71CC1B82BCFC906610F8772DD4757F6F075D82A23E70DA46FBED372A3E5143E5C2D40AA888C6B884E4AA437488D82008383C54ED79D68A42CF
# ------------------------------------------------------------------------------
# ------------------- Ceph configuration part ----------------------------------
# ------------------------------------------------------------------------------
# This part contains SEAPATH default ceph configuration
# Change only the TODOs, Do not change the other variables, unless you know
# exactly what you are doing.
ceph_origin: distro
cluster_network: "192.168.55.0/24" # TODO : Replace by the IP range of your cluster
public_network: "{{ cluster_network }}"
monitor_address: "{{ cluster_ip_addr }}"
configure_firewall: false
ntp_service_enabled: false
dashboard_enabled: false
ceph_conf_overrides:
global:
osd_pool_default_size: "{{ groups['hypervisors'] | length }}"
osd_pool_default_min_size: 2 # TODO
# Set to the minimum number of osd needed to run the cluster
# You probably want 2 in case of a three hypervisors configuration
# And 1 in case of a two hypervisors and one observer
osd_pool_default_pg_num: 128
osd_pool_default_pgp_num: 128
osd_crush_chooseleaf_type: 1
mon_osd_min_down_reporters: 1
mon:
auth_allow_insecure_global_id_reclaim: false
osd:
osd memory target: 8076326604
# Ceph monitor. All machines in the cluster must be part of mons groups
mons:
hosts:
hypervisor1:
hypervisor2:
observer:
# Ceph OSD. Machines that will be used as OSDs (which will store data)
osds:
hosts:
hypervisor1:
hypervisor2:
vars:
ceph_osd_disk: "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:1:0" # TODO
# Set this to the path of the disk that will contains ceph data.
# The path can be found in "/dev/disk/by-path/"
devices: "{{ ceph_osd_disk }}"
# Ceph clients. All machines in the cluster must be part of clients groups
clients:
hosts:
hypervisor1:
hypervisor2:
observer:
vars:
user_config: true
rbd:
name: "rbd"
application: "rbd"
pg_autoscale_mode: on
target_size_ratio: 1
pools:
- "{{ rbd }}"
keys:
- name: client.libvirt
caps:
mon: 'profile rbd, allow command "osd blacklist"'
osd: "allow class-read object_prefix rbd_children, profile rbd pool=rbd"
mode: "{{ ceph_keyring_permissions }}"
# ------------------------------------------------------------------------------
# ----------------------- Empty groups, prevent warnings -----------------------
# ------------------------------------------------------------------------------
grafana-server:
iscsigws:
iscsi-gws:
mdss:
mgrs:
nfss:
rbdmirrors:
rgwloadbalancers:
rgws:
standalone_machine:
...