classify
Название роли
Роль, которая упрощает простую классификацию на основе ansible_facts.
Классификация Proxmox p24.xlarge
означает хост Proxmox
с количеством процессоров ansible_processor_count
, равным 24
, и общим объемом памяти ansible_memtotal_mb
, превышающим 32456
.
Классификация Raspberry a4.large
обозначает хост Arm
с количеством процессоров ansible_processor_count
, равным 4
, и общим объемом памяти ansible_memtotal_mb
, находящимся в диапазоне от 4096
до 8096
.
Классификация Generic g4.nano
означает хост Generic
с количеством процессоров ansible_processor_count
, равным 4
, и общим объемом памяти ansible_memtotal_mb
, находящимся в диапазоне от 4096
до 8096
.
В примере с Proxmox первая буква основана на ansible_kernel
следующим образом:
- name: Проксимокс Гипервизор
set_fact:
type: p
type_desc: "{{ ansible_distribution }} Proxmox"
when: '"pve" in ansible_kernel'
Эти карты генерируются на основе двух переменных: size_map
и type_map
, которые можно найти в defaults/main.yml.
Требования
Любые предварительные условия, которые могут не быть покрыты самим Ansible или ролью, должны быть упомянуты здесь. Например, если роль использует модуль EC2, будет полезно указать, что пакет boto необходим.
Переменные роли
Описание настраиваемых переменных для этой роли должно находиться здесь, включая любые переменные из defaults/main.yml, vars/main.yml, и любые переменные, которые могут/должны быть заданы через параметры роли. Любые переменные, которые читаются из других ролей и/или глобальной области (например, hostvars, group vars и т.д.), также должны быть упомянуты здесь.
Зависимости
Список других ролей, размещенных на Galaxy, должен находиться здесь, а также любые детали, касающиеся параметров, которые могут потребоваться для других ролей, или переменных, используемых из других ролей.
Пример плейбука
С включением примера использования вашей роли (например, с переданными в качестве параметров переменными) будет полезно для пользователей:
Используя стандартную таблицу:
- hosts: servers
roles:
- pbicskei.classify
Используя пользовательскую таблицу:
- hosts: servers
roles:
- pbicskei.classify
vars:
type_map:
- { name: "Гипервизор", letter: "hv", kernel_match: "pve" }
- { name: "Вычисление(ARM)", letter: "a", kernel_match: "raspi" }
- { name: "Общий", letter: "g", kernel_match: "default" }
size_map:
- { name: "нанит", min: 1, max: 1024 }
- { name: "микроб", min: 1024, max: 2048 }
- { name: "насекомое", min: 2048, max: 4092 }
- { name: "хомяк", min: 4092, max: 8184 }
- { name: "собака", min: 8184, max: 16368 }
- { name: "лошадь", min: 16368, max: 32736 }
- { name: "слон", min: 32736, max: 65472 }
- { name: "кит", min: 65472, max: 130944 }
roles:
- pbicskei.classify
Лицензия
BSD
Информация об авторе
Необязательный раздел для авторов роли, чтобы указать контактную информацию или веб-сайт (HTML не допускается).
ansible-galaxy install pbicskei/ansible-role-classification