corosync
Ansible Corosync (готовый к OpenStack)
Эта роль предоставляет поддержку настройки кластера Corosync.
Эта роль поддерживает следующие протоколы:
- Мультикаст (udp)
- Уникаст (udpu)
- Несколько колец
Поддерживаемые дистрибутивы:
- CentOS 7.x
- RedHat EL 7.x
- Debian 8.x
- Ubuntu 14.x / 15.x / 16.x
Работает с демоном firewalld
и SELinux.
Поскольку версия 1 Corosync больше не поддерживается, эта роль предоставляет поддержку только для версии 2 Corosync.
Требования
Эта роль требует как минимум 3 узла и Ansible 2.x.
Для генерации авторизационного ключа Corosync вам потребуется энтропия. Если задача Генерация файла /etc/corosync/authkey
зависла, это означает, что у вас недостаточно энтропии. Решение - сгенерировать энтропию с помощью демона haveged
, включите эту опцию:
corosync_haveged: true
Если corosync_firewalld
установлено в true
, убедитесь, что пакет firewalld
установлен и служба запущена.
Если corosync_selinux
установлено в true
, убедитесь, что пакет policycoreutils-python
установлен.
Переменные роли
Описание всех опций доступно здесь: http://manpages.ubuntu.com/manpages/wily/man5/corosync.conf.5.html
corosync_crypto_cipher | default('aes256')
corosync_crypto_hash | default('sha256')
corosync_rrp_mode
corosync_netmtu | default(1500)
corosync_vsftype | default('ykb')
corosync_transport
corosync_cluster_name | default('uoi')
corosync_config_version
corosync_ip_version | default('ipv4')
corosync_token | default(1000)
corosync_token_retransmit
corosync_hold
corosync_token_retransmits_before_loss_const
corosync_join
corosync_send_join
corosync_consensus
corosync_merge
corosync_downcheck
corosync_fail_recv_const
corosync_seqno_unchanged_const
corosync_heartbeat_failures_allowed
corosync_max_network_delay
corosync_window_size
corosync_max_messages
corosync_miss_count_const
corosync_rrp_problem_count_timeout
corosync_rrp_problem_count_threshold
corosync_rrp_problem_count_mcast_threshold
corosync_rrp_token_expired_timeout
corosync_rrp_autorecovery_check_timeout
corosync_provider | default('corosync_votequorum')
corosync_expected_votes
corosync_timestamp | default ('off')
corosync_fileline | default('off')
corosync_to_stderr | default('on')
corosync_to_logfile | default('off')
corosync_to_syslog | default('on')
corosync_logfile
corosync_logfile_priority | default('info')
corosync_syslog_facility | default('daemon')
corosync_syslog_priority | default('info')
corosync_debug | default('off')
corosync_subsys | default('QUORUM')
corosync_subsys_debug | default('off')
corosync_subsys_tags
corosync_ipc_type | default('native')
Зависимости
Нет.
Пример плейбука
Следующий пример создаст кластер Corosync, используя мультикаст
, если используется мультикаст
, вам необходимо определить переменную corosync_expected_votes
(3 для трех узлов).
Как указано выше, если вы хотите настроить правила firewalld
, убедитесь, что corosync_firewalld
установлено в true
.
Есть возможность использовать официальные backports Debian, чтобы получить последнюю версию Corosync, просто активируйте это через corosync_debian_backports
установив в true
.
Параметр corosync_force_regenerate_authkey
позволяет вам перегенерировать файл /etc/corosync/authkey
.
Мультикаст (1 кольцо)
---
corosync_firewalld: true
corosync_selinux: true
corosync_haveged: true
corosync_force_regenerate_authkey: false
corosync_debian_backports: true
corosync_expected_votes: 3
corosync_interfaces:
- bindnetaddr: 192.168.56.0
mcastaddr: 226.94.1.1
mcastport: 5405
ttl: 1
Следующий пример создаст кластер Corosync, используя мультикаст
с двумя кольцами.
Мультикаст (2 кольца)
---
corosync_firewalld: true
corosync_selinux: true
corosync_haveged: true
corosync_force_regenerate_authkey: false
corosync_debian_backports: true
corosync_expected_votes: 3
corosync_interfaces:
- bindnetaddr: 192.168.56.0
mcastaddr: 226.94.1.1
mcastport: 5405
ttl: 1
- bindnetaddr: 10.14.130.0
mcastaddr: 227.94.1.1
mcastport: 5407
ttl: 100
Уникаст (1 кольцо)
Следующий пример создаст кластер Corosync, используя уникаст
с одним кольцом.
Если используется уникаст
, вам необходимо определить corosync_transport: udpu
и затем определить corosync_node_list
как массив.
---
corosync_firewalld: true
corosync_selinux: true
corosync_haveged: true
corosync_force_regenerate_authkey: false
corosync_debian_backports: true
corosync_node_list:
- ctrl01
- ctrl02
- ctrl03
corosync_transport: 'udpu'
corosync_interfaces:
- bindnetaddr: 192.168.56.0
mcastport: 5405
Следующий пример создаст кластер Corosync, используя уникаст
с двумя кольцами.
Уникаст (2 кольца)
---
corosync_firewalld: true
corosync_selinux: true
corosync_haveged: true
corosync_force_regenerate_authkey: false
corosync_debian_backports: true
corosync_node_list:
- ctrl01
- ctrl02
- ctrl03
corosync_transport: 'udpu'
corosync_interfaces:
- bindnetaddr: 192.168.56.0
mcastaddr: 226.94.1.1
mcastport: 5405
members:
- 226.94.1.10
- 226.94.1.11
- 226.94.1.12
- bindnetaddr: 10.14.130.0
mcastaddr: 227.94.1.1
mcastport: 5407
members:
- 227.94.1.10
- 227.94.1.11
- 227.94.1.12
Лицензия
Apache
Информация об авторе
Эта роль была создана в 2016 году Гаэтаном Треллю (goldyfruit).
Deploy a Corosync cluster, support unicast and multicast with mutilple rings
ansible-galaxy install uoi-io/ansible-corosync