上面左边是我的个人微信,如需进一步沟通,请加微信。  右边是我的公众号“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安装部署试验相关推荐

  1. ansible安装部署和配置、常用模块整理

    今天心情不错~~~~第25个生日了,又遇昨晚百年难得一见的蓝月亮,所以昨晚连夜整理了文档, 会分为两部分发出去,ansible批量化部署在工作中是非常实用,建议呢 整理大量常用模块去练习 1.1.1  ...

  2. ansible安装部署_运维日记|使用ansible批量部署crontab定时删归档任务

    在某个下午,测试同事突然找过来说,之前测试服务器搭的几套oracle数据库忘记部署删除归档脚本了,要让小编都给部署一下. ​ 数了数,有接近十套呢,一部部登陆上去,部署一个删归档脚本,然后再到cron ...

  3. ansible安装部署CDH集群,与手动安装部署CDH集群,及CM配置和用户权限配置

    前言 CDH大数据平台 CDH是Cloudera发布的一个自己封装的Hadoop商业版软件发行包,里面不仅包含了Cloudera的商业版Hadoop,能够十分方便地对Hadoop集群进行安装,部署和管 ...

  4. nagios 安装部署试验

    RH5.3 + VMware +Nagios 11 + 环境 虚拟机vmware + 操作系统 linux rh5.3 步骤 rpm -q gcc glibc glibc-common gd gd-d ...

  5. Ansible自动部署(基础篇)

    Ansible自动部署(基础篇) 一.ansible简介 1.ansible介 Ansible这个名字来源于科幻小说,是一种超光速通讯设备.在Linux中,ansible是新出现的自动化运维工具,基于 ...

  6. Openstack 安装部署指南翻译系列 之 概况

      上面左边是我的个人微信,如需进一步沟通,请加微信.  右边是我的公众号"Openstack私有云",如有兴趣,请关注. 概况 Openstack项目是支持所有类型的云环境的一个 ...

  7. linux下安装部署ansible

    linux下安装部署ansible 介绍 Ansible是一种批量部署工具,现在运维人员用的最多的三种开源集中化管理工具有:puppet,saltstack,ansible,各有各的优缺点,其中sal ...

  8. Ansible简单介绍及安装部署详解

    ansible简单介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...

  9. 《Ansible权威指南》一1.7 Ansible的安装部署

    本节书摘来自华章出版社<Ansible权威指南>一书中的第一章,第1.7节,作者 李松涛 魏 巍 甘 捷 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.7 ...

最新文章

  1. 【错误记录】Android Studio 编译报错 ( Cannot use connection to Gradle distribution . as it has been stopped. )
  2. python-学习 协程函数 模块与包
  3. time时间格式输出转换
  4. 51nod 1118 机器人走方格 解题思路:动态规划 1119 机器人走方格 V2 解题思路:根据杨辉三角转化问题为组合数和求逆元问题
  5. SAP 电商云 Spartacus UI Quick Order 的路由和 CMS 实现
  6. js 删除服务器文件,Node.js复制/删除服务器端文件到指定目录文件夹下,并且预判是否存在该目录,如果没有,则递归创建该文件夹目录...
  7. 阿里云学生轻量级应用服务器安装MySQL
  8. 单行溢出文本显示省略号的方法(兼容IE FF)
  9. sqlserver触发器如何将一个库中的数据插入到另外一个库中
  10. 海思Hi3798处理器参数,Hi3798芯片详细信息介绍
  11. 丁向荣单片机pdf_《单片微机原理与接口技术--基于STC15系列单片机》,丁向荣主编.doc...
  12. 再写轮播图——两张图切换,一张充当背景并且模糊,一张做展示图
  13. 激活工具也带毒,一批携带病毒的“小马激活工具”被火绒拦截
  14. php进程是什么,PHP的进程模型是什么
  15. Android App混合开发
  16. 微信小程序区分开发版、体验版和正式版
  17. python培训课程-python培训课程
  18. 部署高校房屋管理系统可以实现哪些目标?
  19. oracle 查询指定时间范围
  20. Rust模板引擎Tera中文英文对照官方文档

热门文章

  1. JBOSS优化--比较有用的生产环境配置
  2. 让你的silverlight更炫(三):让BusyIndicator更炫
  3. 从JVM看类的加载过程与对象实例化过程
  4. LeetCode算法题1:判断整数数组是否存在重复元素
  5. 组策略 从入门到精通 (一) 组策略的还原与备份和汇入
  6. PowerBI新功能: 自定义数据连接器(Data Connector)
  7. vi/vim 中批量在行插入或删除指定字符
  8. 《告别失控:软件开发团队管理必读》一一第1章 程序员为何难以管理
  9. Git中的AutoCRLF与SafeCRLF换行符问题
  10. 自助用户选择VM Network