1  openstack 概述
openstack概述 :
OpenStack是一个NASA美国国家航空航天局和Rackspace合作研发 的,以Apache许可证授权,并且是一个自由软件和开放源代码项目。
Open是开放,Stack则是堆砌之意,合起来就是将众多的功能服务堆积起来的集合,让人们通过Openstack云计算项目,能够将诸如计算能力、存储、网络和软件等资源抽象成服务,以便让用户可以通过互联网远程来享用,付费的形式也变得因需而定,调整方便,拥有极强的虚拟可扩展性,是公共和私有云的建设与管理软件中的优秀开源项目。
2 openstack的作用
openstack的作用:
OpenStack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。 2.1 IaaS(Infrastructure as a Service),即基础设施即服务。
先生,你用过这个服务吗?
消费者通过Internet 可以从完善的计算机基础设施获得服务。这类服务称为基础设施即服务。基于 Internet 的服务(如存储和数据库)是 IaaS的一部分。
2.2 PaaS是Platform-as-a-Service的缩写,意思是开发平台即服务。 把服务器平台作为一种服务提供的商业模式。
2.3 SaaS是Software-as-a-Service(软件即服务)的简称
2.4 按拥有者分类:
公有云(Public Cloud)、私有云(Private Cloud)、混合云(Hybrid Cloud)
按照技术厂商分类:
VMware vSphere、微软云计算解决方案、亚马逊AWS、OpenStack等
注:国内云平台使用opensctack二次开发比较多。
3    openstack核心组成主要有:
     核心组件
Keystone(身份认证)
Nova(计算)
Neutron(网络)
Glance(镜像存储)
Cinder(块存储)
Swift(对象存储)
Horizon(web UI界面)
Ceilometer(计量)
Heat(部署编排)
Trove(数据库)
4.   OpenStack部署方法,主要有以下5种:
社区手册
http://docs.openstack.org
RDO
https://www.rdoproject.org(http://openstack.redhat.com)
RedHat Enterprise Linux OpenStack Platform (E210 考试)
http://www.redhat.com/en/technologies/linux-platforms/openstack-platform
Mirantis(Fuel)
https://www.mirantis.com
高级定制
Puppet、Chef
kolla 基于docker安装openstack ,把openstack每个组件做成docker实例
5.    Kolla概述和openstack所有结点linux系统初始配置
kolla是openstack下面用于自动化部署的一个项目,它基于docker和ansible来实现,docker主要负责镜像制作,容器管理。而ansible主要负责环境的部署和管理。
Kolla实际上是分为两大块的,一部分,Kolla提供了生产环境级别的镜像,涵盖了Openstack用到的各个服务,另一部分是自动化的部署,也就是上面说的ansible部分。最开始两个部分是在一个项目中的(也就是Kolla),从O版本开始将两个部分独立开来,Kolla项目用来构建所有服务的镜像,Kolla-ansible用来执行自动化部署. 5.1 关闭selinux和防火墙firewalld
5.2 安装epel源,配置hostname
yum install -y epel-release
修改/etc/hostname
doupo
vim /etc/hosts
服务器外网ip doupo.cn doupo
5.3 时间同步
yum install ntp
systemctl enable ntpd.service
systemctl startntpd.service
配置pip镜像源,方便快速下载python库
mkdir /root/.pip/ ---> vim /root/.pip/pip.config
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
5.4 配置网卡信息
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ./ifcfg-eth1
TYPE="Ethernet"
BOOTPROTO="none"
NAME="eth2"
DEVICE="eth2"
ONBOOT="yes"
重启之后检查下网卡配置文件是否有变化
5.5 安装基础包和docker服务
yum install python-devel libffi-devel gcc openssl-devel git python-pip -y
pip install -U pip #升级一下pip,不然后,后期安装会报警告
yum install -y yum-utils device-mapper-persistent-data lvm2 #安装必要的一些系统工具
5.6 添加docker yum 源安装docker
systemctl stop libvirtd.service && systemctl disable libvirtd.service && systemctl status libvirtd.service
如果有的话,卸载旧的Docker,否则可能会不兼容:
yum remove docker* python-docker-py mariadb* httpd*(后期检查部署环境的时候,会报错一定要卸载掉)
            报错如下:fatal: [doupo]: FAILED! => {"changed": false, "elapsed": 1, "msg": "Timeout when waiting for 

122.114.73.247:3306 to stop."} 
                    添加docker-ce yum源配置文件并安装docker
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker-CE社区版本 yum install -y docker-ce
systemctl start docker && systemctl enable docker && systemctl status docker
设置docker volume卷挂载方式
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
注:加上MountFlags=shared后,当docker宿主机新增分区时,docker服务不用重启。如果不加docker服务服务重启,docker中的实例才可以使用新加的磁盘或分区。 添加这个参考后,后期在openstack中使用cinder存储服务时,新加磁盘比较方便
6. 指定docker 镜像加速器
mkdir /etc/docker ---> vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://e9yneuy4.mirror.aliyuncs.com"]
}
注:如果需要使用自己的本地私有仓库,写成如下:
{
"registry-mirrors": ["https://e9yneuy4.mirror.aliyuncs.com"]
"insecure-registries": ["122.114.73.247:4000"]
}
systemctl daemon-reload #修改了启动脚本,需要执行
7. 安装kolla-ansible
yum install -y ansible
下载kolla-ansible代码
cd /root -->git clone http://git.trystack.cn/openstack/kolla-ansible -b stable/pike #下载pike版本的openstack
安装kolla-ansible依赖包
cd /root/kolla-ansible
pip install .
复制kolla-ansible的相关配置文件
cp -r etc/kolla /etc/kolla/ cp ansible/inventory/* /etc/kolla/
ls /etc/kolla
all-in-one globals.yml multinode passwords.yml
注:all-in-one #安装单节点openstack的ansible自动安装配置文件
multinode #安装多节点openstack的ansible自动安装配置文件
globals.yml #openstack 部署的自定义配置文件
passwords.yml #openstack中各个服务的密码
修改虚拟机类型为qemu
注:如果是在虚拟机里装kolla,希望可以启动再启动虚拟机,那么你需要把virt_type=qemu,默认是kvm。如果vmware开了“虚拟化Intel VT”功能,就不用写这个了。
mkdir -p /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=qemu
cpu_mode = none
EOF
8.  自定义kolla-ansible安装openstack的相关配置文件
自动生成openstack各服务的密码文件
kolla-genpwd
vim /etc/kolla/passwords.yml
keystone_admin_password: HsPbEQHxTqmewKYNoRPpIOyQNdEYpHy36OX67TG3
keystone_admin_password:密码
注:这是登录Dashboard,admin使用的密码,你可以根据自己需要进行修改 编辑 /etc/kolla/globals.yml 自定义openstack中部署事项
#kolla_base_distro: "centos" #选择下载的镜像为基于centos版本的镜像
kolla_base_distro: "centos"
#kolla_install_type: "binary" #去了前面的#号,使用yum安装二进制包安装,源码安装,指的是使用git clone源码安装
#openstack_release: "" 改为:openstack_release: "pike" #指定安装pike版本的openstack,后期下载的openstack相关的docker镜像的tag标记也都为pike
#node_custom_config: "/etc/kolla/config" #去掉前面的#
kolla_internal_vip_address: "122.114.73.247" # 我们没有启用高可用,所以这里的IP可以和ens33一样,也可以独立写一个和ens33同网段的IP。
注:如果配置了高可用,这里要使用一个没被占用的IP。这个IP是搭建HA高可用的浮动IP。 此IP将由keepalived管理以提供高可用性,应设置为和network_interface eth0 同一个网段的地址。
network_interface: "eth0" # Kolla-Ansible需要设置一些网络选项。 我们需要设置OpenStack使用的网络接口。设置的第一个接口是“network_interface”。 这是openstack内部多个管理类型网络的默认接口。
neutron_external_interface: "eth1" #所需的第二个接口专用于Neutron外部(或公共)网络,可以是vlan或flat,取决于网络的创建方式。 此接口应在没有IP地址的情况下处于活动 如果不是,openstack云平台中的云主机实例将无法访问外部网络。 只要网卡启动着,就可以了,不要给IP,有IP时br-ex桥接就不成功了。
#enable_cinder: "no" #先不开启cinder
#enable_haproxy: "yes" #去了前面的#号,改yes为no。关闭高可用
9.  基于kolla-ansible安装openstack私有云
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub root@doupo
vim /etc/kolla/all-in-one #把localhost替换成doupo
开始部署openstack
kolla-ansible -i /etc/kolla/all-in-one prechecks #对主机进行预部署检查,如果检查到那个端口异常,需把改服务卸载掉
没报错之后可以进行拉去镜像
kolla-ansible -i /etc/kolla/all-in-one pull
docker images | wc -l
部署openstack
kolla-ansible -i /etc/kolla/all-in-one deploy 如报以下错:
RUNNING HANDLER [common : Initializing toolbox container using normal user] ****
fatal: [xuegod63]: FAILED! => {"changed": false, "cmd": ["docker", "exec", "-t", "kolla_toolbox", "/usr/bin/ansible", "--version"], "delta": "0:00:01.251727", "end": "2018-08-29 22:52:03.283733", "msg": "non-zero return code", "rc": 126, "start": "2018-08-29 22:52:02.032006", "stderr": "", "stderr_lines": [], "stdout": "OCI runtime exec failed: exec failed: container_linux.go:348
kolla-ansible -i /etc/kolla/all-in-one deploy #再运行一下。就自行解决了
kolla-ansible -i /etc/kolla/all-in-one post-deploy 验证部署是否成功
cat admin-openrc.sh #查看openstack登录帐号
访问:122.114.73.247 使用admin-openrc.sh账号密码登录

  

Kolla部署Pike版本的OpenStack-allinone云平台的更多相关文章

  1. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip

    之前在测试环境(centos7.2)上部署了openstack云平台(完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建),openstack在neutron组网 ...

  2. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置

    继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...

  3. 英国电信选择由 Canonical 开发的 Ubuntu OpenStack 作为云平台

    英国电信(简称 BT,British Telecom)宣布,选择由 Canonical 开发的 Ubuntu OpenStack 作为云平台,该平台将有助于支持引入 5G 和光纤到户的连接. 作为 U ...

  4. OpenStack(三)——allinone云平台的使用方法

    接着OpenStack(二)——使用Kolla部署OpenStack-allinone云平台继续操作. 特别感谢https://www.cnblogs.com/openstackteam/p/5519 ...

  5. 使用packstack安装pike版本的openstack

    最近由于工作需要,需要调研安装pike版本的gnocchi.由于ceilometer与gnocchi版本的强相关性,所以需要部署一个同一版本的openstack环境,在同事的推荐下使用了packsta ...

  6. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

    公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...

  7. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像

    在部署openstack云平台环境的时候,需要上传镜像到glance. 首先下载iso镜像,这里下载了centos6.5镜像,放到/usr/local/src目录下然后用OZ工具制作openstack ...

  8. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(6)--在线调整虚拟机的大小

    前面提到过openstack环境部署及创建虚拟机的完整过程,然后有时候会发现创建的虚拟机规格太小,满足不了业务需求:亦或是虚拟机规格太大,容易造成资源浪费.于是就有了在线拉伸虚拟机规格的需求.所以,今 ...

  9. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(5)--问题解决

    一.[root@openstack-server ~]# nova listERROR (CommandError): You must provide a username or user id v ...

随机推荐

  1. Java学习day10

    在类内定义的类就称为内部类.内部类可以访问外部类的所有成员,外部类要访问内部类,必须先建立对象 内部类分为成员内部类和局部内部类 外界创建public修饰的成员内部类对象的格式:外部类名.内部类名 对 ...

  2. 日常使用mobx的小技巧

    日常使用mobx的小技巧 由于自己开发的项目都是中小型项目,所以在技术选型上使用了mobx.但是使用过程中发现关于mobx的技术文章并不多.于是萌发出写这篇文章的想法.请轻喷. 更新控制store渲染 ...

  3. php第一次实验个人博客网站的设计编写①

    先上效果图: 网页代码:index.html <!DOCTYPE html> <html lang="en"> <head>     <m ...

  4. 2021.12.08 [SHOI2009]会场预约(平衡树游码表)

    2021.12.08 [SHOI2009]会场预约(平衡树游码表) https://www.luogu.com.cn/problem/P2161 题意: 你需要维护一个 在数轴上的线段 的集合 \(S ...

  5. 简单了解 TiDB 架构

    一.前言 大家如果看过我之前发过的文章就知道,我写过很多篇关于 MySQL 的文章,从我的 Github 汇总仓库 中可以看出来: 可能还不是很全,算是对 MySQL 有一个浅显但较为全面的理解.之前 ...

  6. “如何实现集中管理、灵活高效的CI/CD”研讨会报名即将截止

    如何实现集中管理.灵活高效的CI/CD ZOOM中文在线研讨会将于 2022年3月29日,星期二,下午3:00-5:00, 也就是 明天 举行, 如果您还未注册,点击按钮,立即注册此次研讨会(注册即可 ...

  7. LintCode-1173 · 反转字符串 III-题解(istringstream简单使用)

    题目链接:https ://www.lintcode.com/problem/1173/?_from=collection&fromId=208描述:给定一个字符串句子,反转句子中每一个单词的 ...

  8. AliIAC 智能音频编解码器:在有限带宽条件下带来更高质量的音频通话体验

    随着信息技术的发展,人们对实时通信的需求不断增加,并逐渐成为工作生活中不可或缺的一部分.每年海量的音视频通话分钟数对互联网基础设施提出了巨大的挑战.尽管目前全球的互联网用户绝大多数均处于良好的网络状况 ...

  9. C++进阶实例2--员工分组

    C++进阶实例2--员工分组 1 #include<iostream> 2 #include<map> 3 #include<vector> 4 #include& ...

  10. 前端HTML-01

    HTML是什么? 超文本标记语言,是一种用于创建网页的标记语言 文件的扩展名:.html或者.htm HTML不是什么? HTML是一种标记语言,不是变成语言. HTML文档结构 <!DOCTY ...