Ansible Proxmox

Материал из Integra-S Wiki
Версия от 15:03, 21 июня 2019; Mikheeva (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Подготовка к установке

Для установки потребуется следующее:

  1. Управляющий компьютер (УК), с которого будет выполняться установка.
  2. Ноды с чисто установленным Proxmox (последняя версия) (PVE).
  3. Полностью подключенные ноды: публичная и приватные сети, а также 10Gb коммутатор.

Установка

Пункты установки:

1. Подключиться к УК.
2. Скопировать директорию \\192.168.10.24\nasprogrammers\repository\proxmox_ansible на УК.
3. На УК установить ansible (>=2.8.0) командой: pip install ansible.
4. Находясь в директории anisble_project получить приватные ключи с каждой ноды, сделать это можно командой: scp root@<ip_address> ./priv_keys/<ip_address>.id_rsa.
5. Заполняем переменные в файле 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

Если все прошло без ошибок, то проверяем работу кластера.