Ansible Proxmox — различия между версиями

Материал из Integra-S Wiki
Перейти к: навигация, поиск
(Новая страница: «Ansible Proxmox»)
 
Строка 1: Строка 1:
Ansible Proxmox
+
Для установки потребуется следующее:
 +
#Управляющий компьютер (УК), с которого будет выполняться установка
 +
#Ноды с чисто установленным 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

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

  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

  1. Заполняем переменные в файле 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]

  1. ntp servers

ntp_servers=['<ntp_ip_address>']

<ntp_ip_address>: IP адрес сервера времени


  1. pve cluster

ansible_ssh_pass="<ssh_pass>" cluster_name="<cluster_name>"

<ssh_pass>: пароль от пользователя root, который был указан при установке PVE


  1. 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 сети


  1. osds

osd_disks=['<disk1_name>', <disk2_name>] osd_type="<filestore|bluestore>"

<disk1_name>: Имя блочного устройства, которое будет использовано для OSD, например sdb

<filestore|bluestore>: Тип OSD, рекомендуется использовать filestore


  1. 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

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