Ansible Proxmox — различия между версиями
Mikheeva (обсуждение | вклад) (Новая страница: «Ansible Proxmox») |
Mikheeva (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| − | + | Для установки потребуется следующее: | |
| + | #Управляющий компьютер (УК), с которого будет выполняться установка | ||
| + | #Ноды с чисто установленным Proxmox (последняя версия) (PVE) | ||
| + | #Полностью подключенные ноды: публичная и приватные сети, а так же 10Gb коммутатор | ||
| + | |||
| + | Пункты установки: | ||
| + | #Подключиться к УК | ||
| + | #Скопировать директорию \\192.168.10.24\nasprogrammers\repository\proxmox_ansible на УК | ||
| + | #На УК установить ansible (>=2.8.0) командой: <code>pip install ansible</code> | ||
| + | #Находясь в директории anisble_project получить приватные ключи с каждой ноды, сделать это можно командой: | ||
| + | <code>scp root@<ip_address> ./priv_keys/<ip_address>.id_rsa</code> | ||
| + | #Заполняем переменные в файле hosts: !вместо <some_text> записываем значения переменных! | ||
| + | |||
| + | [cluster] | ||
| + | <host_name> ansible_host=<ip_address> ansible_private_key_file=priv_keys/<host_name|ip_address>.id_rsa ansible_private_ip_addr=<private_ip_address> | ||
| + | |||
| + | <hostname>: | ||
| + | Узнать host_name c каждой ноды можно командой находясь на УК: | ||
| + | ssh root@<ip_address> 'hostname' | ||
| + | Или на каждой ноде в отдельности: | ||
| + | hostname | ||
| + | |||
| + | <ip_address>: | ||
| + | IP адрес компьютера, который был указан при установке PVE | ||
| + | |||
| + | <private_ip_address>: | ||
| + | IP адрес внутренней 10Gb сети | ||
| + | |||
| + | |||
| + | [cluster:vars] | ||
| + | # ntp servers | ||
| + | ntp_servers=['<ntp_ip_address>'] | ||
| + | |||
| + | <ntp_ip_address>: | ||
| + | IP адрес сервера времени | ||
| + | |||
| + | |||
| + | # pve cluster | ||
| + | ansible_ssh_pass="<ssh_pass>" | ||
| + | cluster_name="<cluster_name>" | ||
| + | |||
| + | <ssh_pass>: | ||
| + | пароль от пользователя root, который был указан при установке PVE | ||
| + | |||
| + | |||
| + | # private network | ||
| + | ansible_private_interface="<10Gb_interface_name>" | ||
| + | ansible_private_ip_mask="<mask>" | ||
| + | ansible_private_ip_pref="<prefix_format>" | ||
| + | ansible_private_ip_network="<network>" | ||
| + | |||
| + | <10Gb_interface_name>: | ||
| + | Название интерфейса внутренней 10Gb сети, например: enp2s0f0 | ||
| + | |||
| + | <mask>: | ||
| + | Маска внутренней 10Gb сети | ||
| + | |||
| + | <prefix_format>: | ||
| + | Короткая запись маски внутренней 10Gb сети, он же префикс | ||
| + | |||
| + | <network>: | ||
| + | Явное указание сети внутренней 10Gb сети | ||
| + | |||
| + | |||
| + | # osds | ||
| + | osd_disks=['<disk1_name>', <disk2_name>] | ||
| + | osd_type="<filestore|bluestore>" | ||
| + | |||
| + | <disk1_name>: | ||
| + | Имя блочного устройства, которое будет использовано для OSD, например sdb | ||
| + | |||
| + | <filestore|bluestore>: | ||
| + | Тип OSD, рекомендуется использовать filestore | ||
| + | |||
| + | |||
| + | # pool | ||
| + | pool_name="<poolname>" | ||
| + | min_size="<int 1-7>" | ||
| + | pg_num="<int>" | ||
| + | size="<int 1-7>" | ||
| + | |||
| + | pool_name="<poolname>": | ||
| + | Название пула с будущими данными | ||
| + | |||
| + | min_size="<int 1-7>": | ||
| + | Минимальное количество реплик одного объекта, например для 3-х нод min_size=2 | ||
| + | |||
| + | size="<int 1-7>": | ||
| + | Количество реплик одного объекта, например для 3-х нод min_size=3 | ||
| + | |||
| + | pg_num="<int>": | ||
| + | Количество плейсмент групп в пуле, расчет этого показателя по следующей формуле: | ||
| + | (( количество OSD )x ( 100 )) / ( size ) | ||
| + | |||
| + | |||
| + | 6) Находясь в директории anisble_project перепроверяем hosts ещё раз и выполняем команду: | ||
| + | ansible-playbook pve.yml ceph.yml | ||
| + | |||
| + | Если все прошло без ошибок, то проверяем работу кластера. | ||
Версия 14:08, 21 июня 2019
Для установки потребуется следующее:
- Управляющий компьютер (УК), с которого будет выполняться установка
- Ноды с чисто установленным Proxmox (последняя версия) (PVE)
- Полностью подключенные ноды: публичная и приватные сети, а так же 10Gb коммутатор
Пункты установки:
- Подключиться к УК
- Скопировать директорию \\192.168.10.24\nasprogrammers\repository\proxmox_ansible на УК
- На УК установить ansible (>=2.8.0) командой:
pip install ansible - Находясь в директории anisble_project получить приватные ключи с каждой ноды, сделать это можно командой:
scp root@<ip_address> ./priv_keys/<ip_address>.id_rsa
- Заполняем переменные в файле hosts: !вместо <some_text> записываем значения переменных!
[cluster] <host_name> ansible_host=<ip_address> ansible_private_key_file=priv_keys/<host_name|ip_address>.id_rsa ansible_private_ip_addr=<private_ip_address>
<hostname>: Узнать host_name c каждой ноды можно командой находясь на УК: ssh root@<ip_address> 'hostname' Или на каждой ноде в отдельности: hostname
<ip_address>: IP адрес компьютера, который был указан при установке PVE
<private_ip_address>: IP адрес внутренней 10Gb сети
[cluster:vars]
- ntp servers
ntp_servers=['<ntp_ip_address>']
<ntp_ip_address>: IP адрес сервера времени
- pve cluster
ansible_ssh_pass="<ssh_pass>" cluster_name="<cluster_name>"
<ssh_pass>: пароль от пользователя root, который был указан при установке PVE
- private network
ansible_private_interface="<10Gb_interface_name>" ansible_private_ip_mask="<mask>" ansible_private_ip_pref="<prefix_format>" ansible_private_ip_network="<network>"
<10Gb_interface_name>: Название интерфейса внутренней 10Gb сети, например: enp2s0f0
<mask>: Маска внутренней 10Gb сети
<prefix_format>: Короткая запись маски внутренней 10Gb сети, он же префикс
<network>: Явное указание сети внутренней 10Gb сети
- osds
osd_disks=['<disk1_name>', <disk2_name>] osd_type="<filestore|bluestore>"
<disk1_name>: Имя блочного устройства, которое будет использовано для OSD, например sdb
<filestore|bluestore>: Тип OSD, рекомендуется использовать filestore
- pool
pool_name="<poolname>" min_size="<int 1-7>" pg_num="<int>" size="<int 1-7>"
pool_name="<poolname>": Название пула с будущими данными
min_size="<int 1-7>": Минимальное количество реплик одного объекта, например для 3-х нод min_size=2
size="<int 1-7>": Количество реплик одного объекта, например для 3-х нод min_size=3
pg_num="<int>": Количество плейсмент групп в пуле, расчет этого показателя по следующей формуле: (( количество OSD )x ( 100 )) / ( size )
6) Находясь в директории anisble_project перепроверяем hosts ещё раз и выполняем команду:
ansible-playbook pve.yml ceph.yml
Если все прошло без ошибок, то проверяем работу кластера.