Kolla简介:kolla是OpenStack下面用于自动化部署的一个项目,它基于docker和ansible来实现,docker主要负责镜像制作,容器管理;而ansible主要负责环境的部署和管理。
使用kolla可以实现OpenStack的单节点部署,并将所有服务运行在容器中,简化升级步骤,在短时间内可以大量部署,开箱即用,节约大量时间。此次部署依旧是在CentOS7.4上完成,并完成一些系统基本优化,详细优化可以在CentOS 7基础优化教程里看到,此处不再过多介绍。
由于集成了ceph所以建议系统内存不小于10G,不加ceph8G内存差不多够用,由于集成ceph所以需要2块硬盘其中1块给ceph使用。
系统相关修改及介绍:
首先需要更改系统主机名,此处将系统主机名设置为kolla,并在/etc/hosts添加主机名解析:
[root@kolla ~]# hostnamectl set-hostname kolla[root@kolla ~]# hostname
kolla cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.5.118 kolla
Kolla部署OpenStack需要系统拥有2张网卡:
[root@kolla ~]# ip a|grep ens2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
inet 172.16.5.118/24 brd 172.16.5.255 scope global ens192
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
inet 172.16.5.119/24 brd 172.16.5.255 scope global ens224
ens192是管理使用,ssh及Horizon访问这张网卡;ens224是让neutron的br-ex绑定使用,提供虚拟机访问外网使用,ens224可以与ens192不在同一网段。
安装kolla需要的基础包:
yum install python-devel libffi-devel gcc openssl-devel git -yDocker安装:
Kolla是将OpenStack服务运行在容器中,所以必不可少的是安装docker,安装docker前先添加docker的yum源:
tee /etc/yum.repos.d/docker.repo << 'EOF'[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
P版本的OpenStack使用最新版docker并没有发现什么问题,如果是安装O版本使用docker 1.12.5版本,所以在此处安装最新版docker:
yum -y install docker-engine docker-engine-selinux修改docker配置:
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
重新加载docker配置文件,设置开机自启并启动docker查看运行状态:
systemctl enable docker
systemctl restart docker
systemctl status docker
使用命令vim /usr/lib/systemd/system/docker.service配置文件使docker访问私有仓库(此处IP绑定的使ens192的IP):
# ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 172.16.5.253:4000
重新加载配置文件并重启服务:
systemctl daemon-reloadsystemctl restart docker
Ansible安装:
Kolla使用ansible负责环境的部署和管理,所以ansible必不可少:
yum -y install ansible搭建Registry服务器:
Docker默认的registry使用5000端口,由于和OpenStack的keystone某个服务端口有冲突于是将5000端口改成4000(下面命令执行后需要从国外源下载镜像,所以费时较长):
docker run -d -v /opt/registry:/var/lib/registry -p 4000:5000 --restart=always --name registry registry:2下载kolla官方P版本OpenStack镜像(官方地址),由于在国内下载官方镜像速度较慢所以使用其他地方从官方复制过来的镜像,下载好后将镜像解压到/opt/registry目录下:
wget http://www.superc.xyz:8080/centos-source-registry-pike.tar.gzdu -sh centos-source-registry-pike.tar.gz
4.2G centos-source-registry-pike.tar.gz
tar zxvf centos-source-registry-pike.tar.gz -C /opt/registry/
Kolla-ansible设置:
下载kolla-ansible的代码:
cdgit clone http://git.trystack.cn/openstack/kolla-ansible -b stable/pike
安装kolla-ansible(CentOS 7基础优化中已经添加豆瓣pip源):
cd kolla-ansible/pip install .
将kolla-ansible相关文件复制到/etc/kolla目录下:
mkdir /etc/kollacp -r /root/kolla-ansible/etc/kolla/* /etc/kolla/
因为系统是安装在虚拟机里面的,所以需要添加一些配置文件可以在虚拟机里开虚拟机:
mkdir -p /etc/kolla/config/novacat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=qemu
cpu_mode = none
EOF
使用ceph做后端存储(如果不适用ceph此步骤不需要执行):
给sdb打上标签,告知kolla此盘作为ceph存储使用:
parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1通过命令可以查看磁盘信息,name一栏显示说明已经打上标签:
[root@kolla ~]# parted /dev/sdb printModel: VMware Virtual disk (scsi)
Disk /dev/sdb: 275GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 275GB 275GB KOLLA_CEPH_OSD_BOOTSTRAP
由于ceph只使用一块磁盘所以需要另添加一些配置,使用命令vim /etc/kolla/config/ceph.conf打开文件并添加配置:
[global]
osd pool default size = 1
osd pool default min size = 1
Kolla安装:
使用命令kolla-genpwd生成OpenStack各项服务的密码后使用命令vim /etc/kolla/passwords.yml修改keystone_admin_password设置合适的Dashboard登录密码:
keystone_admin_password: admin使用根据个人需求命令vim /etc/kolla/globals.yml编辑kolla配置文件:
kolla_base_distro: "centos" #根据自己系统修改 kolla_install_type: "source" #根据下载的镜像选择 openstack_release: "5.0.1" #下文说明 kolla_internal_vip_address: "172.16.5.200" #高可用地址可随意设置 docker_registry: "172.16.5.118:4000" #docker_registry地址 docker_namespace: "lokolla" #下文说明 network_interface: "ens192" #ens192网卡 neutron_external_interface: "ens224" #ens224网卡 api_interface: "{{ network_interface }}" #取消该行注释 #如果添加ceph后端还需开启一下功能 enable_cinder: "yes" #开启cinder enable_ceph: "yes" #开启ceph enable_ceph_rgw: "yes" #开启ceph_rgw enable_ceph_rgw_keystone: "yes" #开启ceph_rgw_keystone glance_backend_ceph: "yes" #开启backend_ceph storage_interface: "{{ network_interface }}" #取消该行注释
openstack_release与docker_namespace信息可以根据下方路径信息查看,并根据自己环境不同据实填写:
cd /opt/registry/docker/registry/v2/repositories/lokolla/centos-source-keepalived/_manifests/tags/5.0.1/使用命令kolla-ansible deploy执行部署OpenStack,静候一段时间即可安装完成,期间遇到错误可根据提示排错。安装完成后使用命令docker ps -a发现容器均正常运行即可。
使用命令kolla-ansible post-deploy验证部署并生成admin-openrc.sh文件,文件位置为/etc/kolla/admin-openrc.sh。
使用命令pip install python-openstackclient安装OpenStack Client端,以便在命令行下执行操作。
此时在浏览器输入kolla_internal_vip_address配置的IP地址(172.16.5.200)或者ens192 IP地址(172.16.5.118)可打开Dashboard web页面,用户名admin,密码为keystone_admin_password配置的密码,此处密码配置为admin。
上传镜像及创建网络:
使用命令vim /usr/share/kolla-ansible/init-runonce编辑文件修改网络配置:
IMAGE_URL=http://download.cirros-cloud.net/0.3.5/
IMAGE=cirros-0.3.5-x86_64-disk.img
IMAGE_NAME=cirros
IMAGE_TYPE=linux
EXT_NET_CIDR='172.16.5.0/24'
EXT_NET_RANGE='start=172.16.5.201,end=172.16.5.210'
EXT_NET_GATEWAY='172.16.5.1'
运行admin-openrc.sh脚本后执行/usr/share/kolla-ansible/init-runonce文件上传镜像及创建网络:
source /etc/kolla/admin-openrc.shbash /usr/share/kolla-ansible/init-runonce
上述配置文件上传的镜像为qcow2格式,如果使用ceph存储需要上传raw格式镜像并设置从硬盘启动即可加快生成速度。
至此Kolla部署OpenStack结束,其他操作与正常手动部署的OpenStack环境类似。
文章评论