Keepalived

主要是想試著用 vagrant 搭建 keepalived 環境來練習。

環境需要四台機器:

  • keepalived: 兩台,一台 master,一台 slave,這兩台同時也會安裝 HAProxy。
    • 主機名稱:master, 192.168.60.11
    • 主機名稱:slave: 192.168.60.12
  • Apache: 一台,當作是 HAProxy 的 backend。
    • 主機名稱:u3
  • Bastion: 一台,當作是客戶端,用來存取 VIP。
    • 主機名稱:u4

因為 Vagrantfile 裏面是針對每一台主機去指定 provisioner 使用 Ansible,所以是個別去執行 ansible playbook。這裡有三台主機指定了 provisioner,所以會執行三次。

這也會影響到 playbook 的寫法,這邊我是儘量把共用的部份抽取出來,然後使用 include_tasks: xxx.yml 來包含共用的部份。

整份程式碼放在 elleryq/vagrant-keepalived-demo: Demo keepalived with Vagrant

這裡不多做贅述,只紀錄這次比較印象深刻的幾個模組用法:

  1. seport: 要使用這個模組,在 RHEL8/CentOS8 裡要安裝 python3-libselinux 跟 python3-policycoreutils。
  2. firewalld: 要立即生效,記得加上 immediate: yes