openstack 之 使用ansible安装部署试验
?
?上面左邊是我的個人微信,如需進一步溝通,請加微信。 ?右邊是我的公眾號“Openstack私有云”,如有興趣,請關注。
????前期一直使用Mirantis公司的fuel工具進行安裝部署openstack,但是在實際使用當中,發現fuel對于定制化的需求還是做得不夠好,如果中間部署出錯,你找不出原因,同時如果資源緊張,需要同時在一個物理節點上同時部署多個組件,fuel的支持不是很好。我在試驗環境下測試了controller和cinder復用一臺物理主機,controller與ironic復用,都失敗了,而且鑒于查找解決辦法,還需要深入了解fuel本身的結構,因此后面發現只有簡單環境下使用fuel是順利的,稍微靈活一點的部署,fuel就不合適了。另外,我猜想這也有可能是Mirantis公司的策略,如果fuel在很多場景下都可以正常使用的話,那別人也不會購買他們的服務了(僅僅是個人猜測)。另外提一句,目前為止,我測試fuel,成功的有3節點的,即1個controller,1個compute,1個cinder;5個節點的:3個controller的ha,1個compute,1個cinder。
????實驗過程參考了openstack官網的OpenStack-Ansible Deployment Guide ,網址是:?
????http://docs.openstack.org/project-deploy-guide/openstack-ansible/newton/
????過程總結一下:
????1. 首先建一個虛擬機安裝ubuntu16.04版本的操作系統(基礎版,,賬號ywb密碼ywb123),配置了4個網卡,其中一塊網卡是橋接到物理網卡,并且能夠上網,運行apt-get update 和?apt-get dist-upgrade 更新安裝源,以及執行apt-get install aptitude build-essential git ntp ntpdate ?openssh-server python-dev sudo 安裝必要的軟件包;完成后將這個虛擬機作為模板。
????2. 復制上面建好的虛擬機模板,分別建ansible主機,controller主機,compute主機,cinder主機;
????3. 根據官網的操作手冊進行后面的安裝配置。
????
????第一階段實驗規劃:
? ? 1個ansible部署節點,1個控制節點/1個計算節點/1個cinder存儲節點,共4個節點,每個虛擬機3塊網卡,第一塊用于管理,第二塊用于ansible部署以及內部的存儲/管理/私有網絡,第三塊直接橋接到外部網絡;
相關的網絡平面規劃如下:
host-only, enp0s3:部署平面: ?10.20.0.0/24
bridge, enp0s8: 管理平面: ?172.29.236.0/22 ?整個網段 ? vlan tag: 10
?存儲平面: ?172.29.244.0/22 ?整個網段 ? vlan tag: ?30?
?私有網絡平面:172.29.240.0/22 ?整個網段 ? 網關:172.29.240.1 ?vlan tag: ?20
bridge,enp0s9: 連到外網 ?192.168.170.0/24
????
? ? 4臺虛擬機的主機名和ip地址規劃如下:
????主機名:ansible????????部署平面:?10.20.0.201
???????????????????????????公共平面: ?192.168.170.201
? ? 主機名:controller1 ? ?部署平面:?10.20.0.211
???????????????????????????公共平面: ?192.168.170.211
? ? ? ? ? ? ? ? ? ? ? ? ? ?管理平面: ?172.29.236.211
? ? ? ? ? ? ? ? ? ? ? ? ? ?存儲平面: ?172.29.244.211
? ? ? ? ? ? ? ? ? ? ? ? ? ?私有網絡平面: ?172.29.240.211
? ? 主機名:compute1 ? ?部署平面:?10.20.0.212
? ? ? ? ? ? ? ? ? ? ? ? ? ?公共平面: ?192.168.170.212
? ? ? ? ? ? ? ? ? ? ? ? ? ?管理平面: ?172.29.236.212
? ? ? ? ? ? ? ? ? ? ? ? ? ?存儲平面: ?172.29.244.212
? ? ? ? ? ? ? ? ? ? ? ? ? ?私有網絡平面: ?172.29.240.212
? ? 主機名:cinder ? ? 部署平面:?10.20.0.213
? ? ? ? ? ? ? ? ? ? ? ? ? ?公共平面: ?192.168.170.213
? ? ? ? ? ? ? ? ? ? ? ? ? ?管理平面: ?172.29.236.213
? ? ? ? ? ? ? ? ? ? ? ? ? ?存儲平面: ?172.29.244.213
? ? ? ? ? ? ? ? ? ? ? ? ? ?私有網絡平面: ?172.29.240.213
? ? 部署過程除了按照官網的進行配置之外,還需要做下面步驟:
1.由于需要bridge支持,因此需要安裝bridge-utils 包,否則br-mgmt網卡起不來,運行下面的命令:
?sudo apt-get install bridge-utils
?echo '8021q' >> /etc/modules
2.git clone -b TAG https://git.openstack.org/openstack/openstack-ansible /opt/openstack-ansible ?改為:
git clone -b stable/newton https://github.com/openstack/openstack-ansible /opt/openstack-ansible
即選擇newton版本的安裝
git clone -b stable/mitaka https://github.com/openstack/openstack-ansible /opt/openstack-ansible
即選擇mitaka版本的安裝
3.配置ssh信任關系:
在ansible上執行ssh-keygen ,在目錄 ~/.ssh/生成id_rsa.pub ,將這個文件里面密鑰拷貝到所有target服務器中的 authorized_keys文件中
然后測試:
ssh 172.29.236.11
ssh 172.29.236.12
ssh 172.29.236.13
4.到/etc/openstack_deploy 目錄,拷貝openstack_user_config.yml.test.example文件到/etc/openstack_deploy/openstack_user_config.yml
安裝目標服務器target host,按照官網的進行配置,其中配置cinder的cider_volume,磁盤類型選擇為8e,Linux LVM 類型
修改/etc/openstack_deploy/openstack_user_config.yml 配置文件中參數external_lb_vip_address: openstack.example.com ?,實際安裝過程中需要改為實際controller外網地址網卡地址
external_lb_vip_address: 10.20.0.211
5.配置代理,配置/etc/openstack_deploy/user_variables.yml 文件中的下面幾個參數,其中 proxy_env_url: http://192.168.170.249:8118/ 是使用192.168.170.249上的8118口,請參考《shadowsocks和redsocks消息轉發設置.txt》:
proxy_env_url: http://192.168.170.249:8118/
no_proxy_env: "localhost,127.0.0.1,` internal_lb_vip_address `,` external_lb_vip_address `,{% for host in groups['all_containers'] %}{{ hostvars[host]['container_address'] }}{% if not loop.last %},{% endif %}{% endfor %}"
global_environment_variables:
? HTTP_PROXY: "` proxy_env_url `"
? HTTPS_PROXY: "` proxy_env_url `"
? NO_PROXY: "` no_proxy_env `"
? http_proxy: "` proxy_env_url `"
? https_proxy: "` proxy_env_url `"
? no_proxy: "` no_proxy_env `"
配置代理服務器:
export http_proxy="http://192.168.170.249:8118/"
export https_proxy="http://192.168.170.249:8118/"
如果安裝還未完成,服務器中途重啟,重啟后需要重新檢查網絡是否正常,是否可以訪問外網;
修改 /etc/ansible/roles/haproxy_server/tasks/haproxy_install_hatop.yml ?,增加validate_certs : 0
安裝galera組件的時候,連接haproxy提供的repo對外端口8181,發現haproxy沒有正常啟動,增加系統核心參數: ?
vi /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1
并生效: ?sysctl -p
并手動增加VIP地址:
ip a add 172.29.236.10 ?dev br-mgmt
ip a add 10.20.0.210 dev enp0s3
6. ?安裝完openstack組件之后,檢查組件運行情況,發現有幾個問題:
? 1)使用命令 ?openstack user list ,提示錯誤,通過pip重新安裝openstackclient后正常:
pip install python-openstackclient
2)登陸網頁10.20.0.211檢查horizon,首頁出不來,檢查是haproxy服務啟動失敗
3)修改 /etc/apache2/ports.conf
Listen 80
Listen 443
Listen 8888
Listen 35357
Listen 5000
然后重啟apache2: ? systemctl restart apache2
7.修改默認路由:
route del default gw 172.29.236.1
route add default gw 192.168.170.254
轉載于:https://blog.51cto.com/yuweibing/1897117
總結
以上是生活随笔為你收集整理的openstack 之 使用ansible安装部署试验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Quartus11中新建工程
- 下一篇: linux yum源安装