# ex-lb 节点成员不能同时是 kube-node 节点,因为它们都需要安装 haproxy - name: fail info1 fail: msg="an 'ex-lb' node CAN NOT be a 'kube-node' node at the same time" when: "inventory_hostname in groups['kube-node']" # 自动设置LB节点变量'LB_IF' - name: 注册变量 LB_IF_TMP shell: "ip a|grep '{{ inventory_hostname }}/'|awk '{print $NF}'" register: LB_IF_TMP tags: restart_lb - name: 设置变量 LB_IF set_fact: LB_IF={{ LB_IF_TMP.stdout }} tags: restart_lb - name: apt更新缓存刷新 apt: update_cache=yes cache_valid_time=72000 when: 'ansible_distribution in ["Ubuntu","Debian"]' - name: 安装 haproxy package: name=haproxy state=present - name: 创建haproxy配置目录 file: name=/etc/haproxy state=directory - name: 修改centos的haproxy.service template: src=haproxy.service.j2 dest=/usr/lib/systemd/system/haproxy.service when: 'ansible_distribution in ["CentOS","RedHat","Amazon"]' tags: restart_lb - name: 配置 haproxy template: src=haproxy.cfg.j2 dest=/etc/haproxy/haproxy.cfg tags: restart_lb - name: 安装 keepalived package: name=keepalived state=present - name: 创建keepalived配置目录 file: name=/etc/keepalived state=directory - name: 配置 keepalived 主节点 template: src=keepalived-master.conf.j2 dest=/etc/keepalived/keepalived.conf when: LB_ROLE == "master" tags: restart_lb - name: 配置 keepalived 备节点 template: src=keepalived-backup.conf.j2 dest=/etc/keepalived/keepalived.conf when: LB_ROLE == "backup" tags: restart_lb - name: daemon-reload for haproxy.service shell: systemctl daemon-reload tags: restart_lb - name: 开机启用haproxy服务 shell: systemctl enable haproxy ignore_errors: true - name: 重启haproxy服务 shell: systemctl restart haproxy tags: restart_lb - name: 开机启用keepalived服务 shell: systemctl enable keepalived ignore_errors: true - name: 重启keepalived服务 shell: systemctl restart keepalived tags: restart_lb