设为首页 收藏本站
查看: 1118|回复: 0

[经验分享] openstack 之 使用ansible安装部署试验

[复制链接]

尚未签到

发表于 2017-11-14 11:03:56 | 显示全部楼层 |阅读模式
前期一直使用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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407107-1-1.html 上篇帖子: openstack 之 使用virtualbox 脚本自动安装mirantis openstack 下篇帖子: Openstack 之 ubuntu16使用kolla部署实验
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表