使用 haproxy 角色

  1. 在 ansible 目錄下新增 roles.yml,在 webservers 群組主機使用角色 apache,安裝 httpd 網頁服務,另在 balancers 群組主機使用角色 balancer 安裝負載平衡代理伺服器 haproxy。
    [deyu1@kvm19 ansible]$ cat roles.yml
    ---
    - name: install httpd
      hosts: webservers
      roles:
      - apache
    
    - name: use balancer
      hosts: balancers
      roles:
      - balancer
    
  2. ansible-playbook 執行腳本 roles.yml。
    [deyu1@kvm19 ansible]$ ansible-playbook roles.yml 
    
    PLAY [install httpd] ***********************************************************
    
    TASK [Gathering Facts] *********************************************************
    ok: [kvm14]
    ok: [kvm13]
    
    TASK [apache : install the latest version of Apache] ***************************
    ok: [kvm14]
    ok: [kvm13]
    
    TASK [apache : Start service httpd] ********************************************
    ok: [kvm14]
    ok: [kvm13]
    
    TASK [apache : firewalld] ******************************************************
    ok: [kvm13]
    ok: [kvm14]
    
    TASK [apache : Template a file] ************************************************
    ok: [kvm13]
    ok: [kvm14]
    
    PLAY [use balancer] ************************************************************
    
    TASK [Gathering Facts] *********************************************************
    ok: [kvm15]
    
    TASK [haproxy : Download and install haproxy] **********************************
    changed: [kvm15]
    
    TASK [haproxy : Configure the haproxy cnf file with hosts] *********************
    changed: [kvm15]
    
    TASK [haproxy : Start the haproxy service] *************************************
    changed: [kvm15]
    
    RUNNING HANDLER [haproxy : restart haproxy] ************************************
    changed: [kvm15]
    
    PLAY RECAP *********************************************************************
    kvm13 : ok=5 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
    kvm14 : ok=5 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
    kvm15 : ok=5 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
    
  3. kvm15 的 selinux 沒處理,還不能連線。
    [deyu1@kvm19 ansible]$ curl http://kvm15/
    curl: (7) Failed to connect to kvm15 port 80: No route to host
    
  4. 登入 kvm15 測試連線負載平衡器主機 kvm15,第一次回應來自 kvm13,再連線一次,回應來自 kvm14,確定 haproxy 工作正常。
    [root@kvm15 ~]# curl http://kvm15/
    Welcome to kvm13.deyu.wang on 192.168.122.13
    [root@kvm15 ~]# curl http://kvm15/
    Welcome to kvm14.deyu.wang on 192.168.122.14