2016-04-13 83 views
0

在我關於Avi Vantage的最後一個問題(Does the avi networks controller work on VMware Fusion 7 or 8 on OS X?)中,我被指示執行一個基於docker的啓動腳本。我稍微修改了它以利用最新的Avi docker圖像(見下文)。如何配置服務引擎以連接到Avi Vantage 16.1中的控制器?

我可以通過基於Web的管理界面啓動控制器並進行配置。但是,服務引擎(SE)從未連接到控制器。我已經確認SE碼頭容器正在運行,但Controller似乎沒有看到它。有誰知道如何解決Avi服務引擎連接問題?

這裏是我稍微修改安裝和啓動腳本:

#!/bin/sh 
set -e 

controller_image="avinetworks/controller:16.1.1-9019-20160330.183143" 
se_image="avinetworks/se:16.1.1-9019-20160330.183143" 

# Quit the script if the user failed to provide the right password 
if [ $? -ne 0 ] ; then 
    echo "Script is exiting because you failed to give root's password" 
    exit 1 
fi 

command_exists() { 
    command -v "[email protected]" > /dev/null 2>&1 
} 

avi_install_ubuntu() { 
    echo -n "Starting Avi-Installation...\n" 
    ###################################### 
    #### Installing Docker 
    ##################################### 
    if command_exists docker && [ -e /var/run/docker.sock ]; then { 
     echo -n "Skipping docker install\n" 
    } 
    else { 
     echo -n "Proceedig with docker install\n" 
     distro=$(awk '/DISTRIB_ID=/' /etc/*-release | sed 's/DISTRIB_ID=//' | tr '[:upper:]' '[:lower:]') 
     if [ "$distro" = "ubuntu" ]; then { 
      apt-get -y update 
      apt-get -y install curl 
      curl -sSL https://get.docker.com/ | sh 
     } else { 
      systemctl disable firewalld 
      systemctl stop firewalld 
      yum -y install docker 
      service docker start 
     } fi 
    } 
    fi 

     ###################################### 
     #### Starting avi Controller 
     ##################################### 
    echo -n "Starting Avi Controller container\n" 
    int_name=`ip route|grep default|cut -d' ' -f 5` 
    mgmt_ip=$(ip addr show $int_name | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) 
     /usr/bin/docker run --name=avi_controller --privileged=true -p 80:80 -p 443:443 -p 8443:8443 -p 5098:5098 -d -t -e MANAGEMENT_IP=$mgmt_ip -v /var/lib/controller/var/log:/var/log -v /var/lib/controller/var/lib/postgresql:/var/lib/postgresql -v /var/lib/controller/var/lib/avi:/var/lib/avi -v /var/run/docker.sock:/var/run/docker.sock ${controller_image} 

    echo -n "Starting Avi Service Engine container\n" 
    /usr/bin/docker run -d --net=host -e NTHREADS=1 -e SEMEMMB=2048 -e "CONTROLLERIP=$mgmt_ip" --privileged=true ${se_image} 

} 

avi_install_ubuntu 

exit 0 

回答

1

控制器和ServiceEngine之間的通信由缺省的安全。除此之外,控制器還執行准入控制,並只允許其瞭解的服務引擎。

在這種情況下,您可以做幾件事: - 將ControllerProperties對象中的「allow_unauthenticated_nodes」設置爲True以禁用初始准入控制。使用的API是「/ api/controllerproperties」,CLI是「配置控制器屬性」 - 或 - - 您可以檢出安全令牌並將其插入到服務引擎中。要生成令牌,可以使用API​​「/ api/securetoken-generate」並從響應的JSON有效內容中提取「auth_token」。然後,您可以將此令牌值複製到ServiceEngine中的/ var/lib/avi/certs/sc_auth_token。

請注意。讓我們知道這是否適合你。

謝謝, Anand。

+0

謝謝!我會試一試。 –

+0

好的。我已經完成了所有這些,但它仍然沒有連接。我在啓動腳本(上面發佈)中發現了CONTROLLERIP環境變量未正確設置的另一個問題。修復並確保CONTROLLERIP變量設置正確後,服務引擎仍未連接。解決此問題的最佳方法是什麼?服務引擎容器中是否有一些日誌可以查看發生了什麼? –

+0

好的。我又去了一次。現在將'allow_unauthenticated_nodes'設置爲true讓SE成功連接到控制器。不幸的是,現在我不知道如何設置VIP。關於如何配置主機和/或控制器/服務器容器的任何建議,以便服務引擎可以響應VIP上的流量? –

0

我假設你指的是Avi控制器中的VirtualService配置。然後,Avi控制器會將虛擬服務放置在服務引擎上,從而激活與此虛擬服務相對應的數據路徑。

我附上一些文件涉及到這一點,你可以看看虛擬服務配置:

請致電讓我知道這是否有用。

+0

排序,但不是真的。我會在另一個線程中詢問更具體的問題。 –

+0

我決定這個問題保證自己的線程:http://stackoverflow.com/questions/36876251/how-to-setup-the-vip-in-avi-vantage-on-a-linux-cloud –

相關問題