hifis.haproxy
HAProxy 角色
:warning: 此项目已归档! :warning:
该角色已迁移到我们的 hifis.toolkit
集合中:
- https://github.com/hifis-net/ansible-collection-toolkit
- https://galaxy.ansible.com/ui/repo/published/hifis/toolkit/
这是一个设置 HAProxy 作为高可用性和可扩展性环境中负载均衡器的角色。
当前支持的平台(见 [meta/main.yml])为:
- Ubuntu 22.04 LTS
- Ubuntu 20.04 LTS
该角色是在 HAProxy 的两个最新 LTS 版本下进行测试的。 目前,这意味着对 HAProxy 发布系列的官方支持:
2.6
2.4
其他版本已知也能正常工作,但未进行自动测试。
需求
无。
角色变量
必填变量(默认未设置)
后端 GitLab IP 地址
指定后端的名称和 IP 地址列表(端口是可选的,默认为 80
):
haproxy_backends:
- backend_name: 'backend_server_1'
backend_ip: '192.168.33.10'
backend_port: '80'
前端浮动 IP 地址
指定前端的浮动 IP 地址:
haproxy_frontend_ip: '192.168.33.100'
必填变量(默认设置,但需要调整)
HAProxy 使用的处理器数量
设置 HAProxy 使用的处理器数量:
haproxy_nbproc: '1'
HAProxy 使用的线程数量
设置 HAProxy 使用的线程数量:
haproxy_nbthread: '2'
HAProxy 多线程的 CPU 映射
将线程映射到 CPU 核心:
haproxy_cpumap: 'auto:1/1-2 0-1'
启用/禁用统计信息
变量来启用或禁用统计信息:
haproxy_stats_enable: 'enable'
统计管理员用户名
变量用来保存统计管理员用户名:
haproxy_stats_admin_user: 'admin'
统计管理员用户密码
变量用来保存统计管理员用户密码:
haproxy_stats_admin_user_password: 'changeme'
所有其他默认变量
HAProxy 可执行文件路径
指向 HAProxy 可执行文件位置的路径变量:
haproxy_executable_path: '/usr/sbin/haproxy'
HAProxy PPA 版本
将 PPA 版本固定为某个特定值的变量:
haproxy_ppa_version: 'ppa:vbernat/haproxy-2.6'
HAProxy 版本
将 HAProxy 版本固定为某个特定值的变量:
haproxy_version: '2.6.*'
HAProxy 用户
指定 HAProxy 系统用户的变量:
haproxy_user: 'haproxy'
HAProxy 组
指定 HAProxy 系统组的变量:
haproxy_group: 'haproxy'
要安装的 HAProxy 依赖项
要安装的 HAProxy 依赖项列表:
haproxy_dependencies:
- 'software-properties-common'
HAProxy 二进制文件名称
HAProxy 二进制文件名称:
haproxy_name: 'haproxy'
HAProxy 配置模板
提供 HAProxy 配置模板的路径:
haproxy_config_template: 'haproxy.cfg.j2'
HAProxy 配置目录路径
给出 HAProxy 配置目录的路径:
haproxy_conf_dir: '/etc/haproxy/'
HAProxy 配置文件路径
给出 HAProxy 配置文件的路径:
haproxy_conf_file_path: "/etc/haproxy/haproxy.cfg"
HAProxy 日志套接字路径
给出 HAProxy 日志套接字的路径:
haproxy_log_socket: '/dev/log'
HAProxy 日志级别
指定 HAProxy 的日志级别。
可能的值有:
emerg, alert, crit, err, warning, notice, info, debug
。
haproxy_log_level: 'info'
HAProxy 套接字文件路径
给出 HAProxy 套接字文件的路径:
haproxy_socket: '/run/haproxy/admin.sock'
HAProxy 自签名 SSL 证书创建
是否创建自签名 SSL 证书:
haproxy_create_self_signed_cert: true
SSL 证书的国家名称
设置用于 SSL 证书的国家:
haproxy_country_name: 'DE'
SSL 证书的州名称
设置用于 SSL 证书的州:
haproxy_state_or_province_name: 'Saxony'
SSL 证书的地方名称
设置用于 SSL 证书的地方:
haproxy_locality_name: 'Dresden'
SSL 证书的组织名称
设置用于 SSL 证书的组织:
haproxy_organization_name: 'Helmholtz-Zentrum Dresden-Rossendorf (HZDR)'
SSL 证书的组织单位名称
设置用于 SSL 证书的组织单位:
haproxy_organizational_unit_name: 'FWCC / Computational Science'
SSL 证书的电子邮件地址
设置用于 SSL 证书的电子邮件地址:
haproxy_email_address: '[email protected]'
SSL 证书的通用名称
设置用于 SSL 证书的通用名称:
haproxy_common_name: 'Helmholtz Association'
HAProxy SSL 目录路径
给出 HAProxy SSL 目录的路径:
haproxy_ssl_certificate_dir: '/etc/haproxy/ssl'
HAProxy 私钥文件路径
给出 HAProxy 私钥文件的路径:
haproxy_ssl_certificate_key_file: "/etc/haproxy/ssl/haproxy.key"
HAProxy 证书签名请求文件路径
给出 HAProxy 证书签名请求文件的路径:
haproxy_ssl_certificate_csr_file: '/etc/haproxy/ssl/haproxy.csr'
HAProxy 证书文件路径
给出 HAProxy 证书文件的路径:
haproxy_ssl_certificate_crt_file: "/etc/haproxy/ssl/haproxy.crt"
HAProxy PKCS12 文件路径
给出 HAProxy PKCS12 文件的路径:
haproxy_ssl_certificate_pkcs12_file: "/etc/haproxy/ssl/haproxy.p12"
HAProxy 证书链文件路径
给出 HAProxy 证书链文件的路径:
haproxy_ssl_certificate_chain_file: "/etc/haproxy/ssl/haproxy.pem"
HAProxy 证书链源文件路径
给出 HAProxy 证书链源文件在控制节点的路径,将复制到远程主机:
haproxy_ssl_cert_chain_src_file_path: "haproxy.pem"
注意: 当 haproxy_create_self_signed_cert
设置为 false
时,此变量为必填项。文件应为 PEM 格式,至少包括公钥证书和私钥。
HAProxy DH 参数文件路径
给出 DH 参数文件的路径:
haproxy_ssl_dhparam_file: "/etc/haproxy/ssl/dhparam.pem"
HAProxy DH 参数大小
生成的 DH 参数大小(以位为单位):
haproxy_ssl_dhparam_size: 4096
依赖项
无。
注意:这个角色旨在与 hifis.keepalived 角色一起使用,但不限于此。
示例剧本
- hosts: loadbalancers
roles:
- role: hifis.haproxy
vars:
haproxy_frontend_ip: '192.168.33.100'
haproxy_backends:
- backend_name: 'backend_server_1'
backend_ip: '192.168.33.10'
backend_port: 80
许可证
作者信息
贡献者
我们要感谢并给予以下贡献者对本项目的贡献:
Install and configure HAProxy to be used for load-balancing in a high availability and scalability context.
ansible-galaxy install hifis.haproxy