2013年12月11日 星期三

[Cloudfoundry] 修改 api.vcap.me to new domain

Cloudfoundry預設domain使用 api.vcap.me這個domain,當push app時,會透過cloud controller 隨機分配到一台空DEA來執行,所以說...被push的app不論是IP還是Port都會是random的,所以必須透過URL(eg: test.vcap.me)再請Cloud Controller幫忙導向到正確的DEA上,這樣的好處還可以做到loadbanlance的機制。但問題來了,在沒有CloudController的機器,就無法處理URL的解析,這時只要搭配一台DNS,就可以解這個問題
  1. 安裝DNS 套件
    apt-get install bind9
  2. 加入一個zone
    vim /etc/bind/named.conf.default-zones
  3. 圖一
  4. 加入要解析的網址
    vim /etc/bind/db.vcap.me
  5. 圖二
  6. 只要修改DNS後,就可以直接開啟Browser連線(eg.test.vcap.me) 
如果要使用自己的網域,以下提供兩種方法(以下使用DDNS解釋)

方法一:
  1. 先取得一組DNS Domain ( eg. test.no-ip.org )
  2. 修改cloudfoundry config
    cd /root/cloudfoundry/.deployments/rest/config/
    sed -i 's/vcap.me/no-ip.org/g' *.yml
  3. 加入 domain to /etc/hosts
    echo "127.0.0.1 api.no-ip.org > /etc/hosts"
  4. 重啟 cloudfoudry
    /root/cloudfoundry/vcap/dev_setup/bin/vcap_dev restart
  5. 重新連接target
    vmc target api.no-ip.org
  6. 重新push app,然後直接開啟browser連到 test.no-ip.org即可
方法二: (使用external uris)
  1. 先取得一組DNS Domain ( eg. test.no-ip.org )
  2. 修改cloud_contorller.yml
    vim   /root/cloudfoundry/.deployments/rest/config/cloud_controller.yml
  3. ...(ignore)
    app_uris:
      # Allow applications to register URIs that are outside your domain.
      allow_external: true
    #  reserved_file:
    #  reserved_list: [www, test, dash, register, foo, bar]
    #  reserved_length: 3
    ...(ignore)
  4. 重啟 cloudfoudry
    /root/cloudfoundry/vcap/dev_setup/bin/vcap_dev restart
  5. map to new uri
    vmc map test test.no-ip.org
  6. 重新push app,然後直接開啟browser連到 test.no-ip.org即可

沒有留言:

張貼留言