实战-openstack-2-安装
实战-openstack-2-安装
一、openstack 安装方法
二、部署安装
一、openstack 安装方式有几种
1.DevStack(开发人员跑脚本)
在相当长一段时间内,DevStack仍将是众多开发者的首选安装工具。该方式主要是通过配置一个安装脚本,执行Shell命令来安装OpenStack的开发环境,支持CentOS、Debian等系列系统。
2.RDO
RDO是由Red Hat红帽开源的一个自动化部署OpenStack的工具,支持单节点(all-in-one)和多节点(multi-node)部署。但RDO只支持CentOS系列操作系统。需要注意的是,该项目并不属于OpenStack官方社区项目。https://www.rdoproject.org
3.手动部署
按照社区官方提供的文档,可以使用手动方式部署单节点、多节点、HA节点环境。
4.高级定制 Puppet、Chef
Puppet由Ruby语言编写。Puppet是进入OpenStack自动化部署中早期的一个项目。目前,它的活跃开发群体是Red Hat、Mirantis、UnitedStack等。Mirantis出品的Fuel部署工具,其大量的模块代码使用的便是Puppet。
5.Ansible
Ansible是一个自动化部署配置管理工具,已被Red Hat收购。它基于Python开发,集合了众多运维工具(Puppet、Chef、SaltStack等)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible一方面总结了Puppet设计上的得失,另一方面也改进了很多设计。比如基于SSH方式工作,故而不需要在被控端安装客户端。
6.SaltStack
SaltStack也是一个开源的自动化部署工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能,和Ansible很相似。不同之处是,由于SaltStack的Master和Minion认证机制及工作方式,因此需要在被控端安装Minion客户端。
7.TripleO
TripleO项目最早由HP于2013年4月在Launchpad上注册BP,用于完成OpenStack的安装与部署。TripleO全称为“OpenStack On OpenStack”,意思为“云上云”,可以简单理解为利用OpenStack来部署OpenStack,即首先基于V2P(和P2V相反,指把虚拟机的镜像迁移到物理机上)的理念事先准备好一些OpenStack节点(计算、存储、控制节点)的镜像,然后利用已有OpenStack环境的Ironic裸机服务和软件安装部分的diskimage-builder部署裸机,最后通过Heat项目和镜像内的自动化部署工具(Puppet或Chef)在裸机上配置运行OpenStack。和其他部署工具不同的是,TripleO是利用OpenStack已有的基础设施来部署OpenStack的。
8.Fuel
Fuel是针对OpenStack的一个可以通过“界面部署”的工具,它大量采用了Python、Ruby和JavaScript等语言。其功能涵盖了通过自动化PXE方式安装操作系统、DHCP服务、Orchestration编排服务和Puppet安装相关服务等,此外还有OpenStack关键业务健康检查和log实时查看等非常好用的功能。https://www.mirantis.com
9.Kolla
Kolla是具有广阔应用前景和市场的一个自动化部署工具。相比于其他部署工具,Kolla完全革新地使用了Docker容器技术,将每一个OpenStack服务运行在不同的Docker容器中。
二、实站部署安装openstack
选择如下方式安装openstack
kolla 基于docker+ansible 安装 openstack ,把 openstack 每个组件做成 docker 实例
安装前准备:安装前需要准备一台6G内存以上的电脑,硬盘空间在80G以上。
本实战以在此平台上完成:
如要按照以上方式,在虚拟机上搞出来openstack,可以制作快照,克隆。备份。出问题恢复也比较快。
KVM安装请参照:
实战linux虚拟化技术KVM-2 创建-安装-克隆
在虚拟机上安装一台centos7
(1)、准备配置环境
1、暂时先关闭selinux
[root@cga9 ~]# vim /etc/selinux/config
2、关闭 Firewalld
[root@cga9 ~]# systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld
3、安装 Epel 源
[root@cga9 ~]# yum install epel-release -y
4、配置 Hostname
[root@cga9 ~]# hostnamectl set-hostname cga9.cn
5、配置/etc/hosts
[root@cga9 ~]# vim /etc/hosts
6、同步时间
[root@cga9 ~]# yum install ntp -y && systemctl enable ntpd.service && systemctl start ntpd.service
(2)、修改相关网卡
IP 地址 | 网络类型 | 网卡 | 网络中的作用 |
10.27.17.X | bridge | eth0 | openstack 内部管理网络 (managment nework) 以后 Horizon web 界面访问,就是通 过这个 IP 地址 |
不需要配置 | bridge | eth1 | 外部网络 (external network) ,让 neutron 的 br-ex 绑定使用,openstack 中的 虚拟机是通过这块网卡和外网通信的 |
[root@cga9 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@cga9 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
UUID=8c4fd8f7-7ebf-4554-8f2d-fe7e11585db6
DEVICE=eth1
ONBOOT=yes
[root@cga9 ~]systemctl restart network
(3) 安装基础包和 docker 服务
[root@cga9 ~]# yum install python-devel libffi-devel gcc openssl-devel git python-pip -y
配置 pip 镜像源,斱便快速下载 python 库
[root@cga9 ~]# mkdir ~/.pip
[root@cga9 ~]#vim /root/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install] trusted-host=mirrors.aliyun.com
[root@cga9 ~]# pip install -U pip
(4)、安装 kolla-ansible
1、[root@cga9 ~]# yum install ansible -y
2、安装 kolla-ansible
[root@cga9 ~]# pip install kolla-ansible
如果报错:已经安装 PyYAML 3.10,但是我们需要 PyYAML
[root@cga9 ~]# pip install PyYAML --ignore-installed PyYAML
[root@cga9 ~]# pip install kolla-ansible #安装 kolla-ansible
3、复制相关配制文件
[root@cga9 ~]# cp -r /usr/share/kolla-ansible/etc_examples/kolla/ /etc/
[root@cga9 ~]# ll /etc/kolla
total 32
-rw-r--r--. 1 root root 20735 Nov 28 10:24 globals.yml
-rw-r--r--. 1 root root 5168 Nov 28 10:24 passwords.yml
4、复制 kolla-ansible 的相关配置文件
[root@cga9 inventory]# cp ./* /etc/kolla/
[root@cga9 inventory]# ll
total 24
-rw-r--r--. 1 root root 9017 Nov 27 17:13 all-in-one
-rw-r--r--. 1 root root 9491 Nov 27 17:13 multinode
[root@cga9 inventory]# cd
[root@cga9 ~]# ls /etc/kolla
all-in-one globals.yml multinode passwords.yml
5、 修改虚拟机类型为 qemu
[root@cga9 ~]# cat <<EOF >/etc/kolla/config/nova/nova-compute.conf
> [libvirt]
> virt_type=qemu
> cpu_mode=none
> EOF
(5)、 自定义 kolla-ansible 安装 openstack 的相关配置文件
1、自劢生成 openstack 各服务的密码文件
[root@cga9 kolla-ansible]# kolla-genpwd
[root@cga9~]# vim /etc/kolla/passwords.yml
165 keystone_admin_password: 123456
2、编辑 /etc/kolla/globals.yml 自定义 openstack 中部署事项
[root@cga9~]# vim /etc/kolla/globals.yml
15 kolla_base_distro: "centos"
18 kolla_install_type: "binary"
21 openstack_release: "rocky"
24 node_custom_config: "/etc/kolla/config
31 kolla_internal_vip_address: "10.27.17.X"
85 network_interface: "eth0"
100 eutron_external_interface: "eth1"
enable_cinder: "no"
enable_haproxy: "no"
(6)基亍 kolla-ansible 安装 openstack 私有于
1、生成ssh-key
[root@cga9~]# ssh-keygen
[root@cga9~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@xuegod63
2、配置单节点清单文件(目前只有一个节点)
[root@cga9~]# vim /etc/kolla/all-in-one
:1,$s/localhost/cga9/
:1,$s/ansible_connection=local//
(7) 开始部署 OpenStack
1、通过安装 bootstrap-servers 把部署 openstack 所需要的依赖包都安装好 Kolla-Ansible 提供了一个将以正确版本安装所有必需服务的剧本 bootstrap-servers。所以我们先 安装 bootstrap-servers 把安装 openstack 所依赖的软件包都先提前安装好。包括 docker 服务。
[root@cga9~]# kolla-ansible -i /etc/kolla/all-in-one bootstrap-servers
2、对主机迚行预部署检查:
[root@cga9~]# kolla-ansible -i /etc/kolla/all-in-one prechecks
3、设置 docker volume 卷挂载斱式
[root@cga9~]# tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
4、挃定 docker 镜像加速器
[root@cga9~]# tee /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": ["https://e9yneuy4.mirror.aliyuncs.com"]
}
EOF
重启相关服务
[root@cga9~]# systemctl daemon-reload #只有修改了服务的启劢脚本,才需要执行
[root@cga9~]# systemctl enable docker && systemctl restart docker && systemctl status docker
5、拉取镜像
[root@cga9~]# kolla-ansible -i /etc/kolla/all-in-one pull
[root@cga9~]# docker images
6、最后迚入实际的 OpenStack 部署:
[root@cga9~]# kolla-ansible -i /etc/kolla/all-in-one deploy
如果报错多执行几次
7、验证部署 [root@xuegod63 ~]# kolla-ansible -i /etc/kolla/all-in-one post-deploy
完成安装!
注:如果下载时有点慢,不要急只有等,一定要有耐心,祝你成功!