1. 准备工作

1.1环境准备

物理机一台、CentOS7、双网卡(第一张为管理网络,可以访问公网,第二张为实例使用网络,启动即可,无需配置IP。)

这里注意的是,docker安装目录在/var,分区的时候要注意,或者软链接到新目录

1.2 关闭selinux

vi /etc/selinux/config

更改SELINUX选项为不可用

SELINUX=disabled

1.3 关闭防火墙(可选)

systemctl stop firewalld

systemctl disable firewalld 

# 因为是测试环境,所以关掉了防火墙

1.4 更改hosts

192.168.134.131 kolla

# centos 默认主机名localhost如果更改,统一即可

2.安装docker容器

使用官方脚本一键安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

手动安装请参考:
https://www.runoob.com/docker/centos-docker-install.html

测试docker是够正常运行:

sudo docker run hello-world

3.安装依赖

yum install epel-release
yum install python-pip
pip install -U pip
yum install python-devel libffi-devel gcc openssl-devel libselinux-python
yum install ansible

配置ansible:
添加至 /etc/ansible/ansible.cfg

[defaults]
host_key_checking=False
pipelining=True
forks=100

4. 安装Kolla-ansible

pip install kolla-ansible

提示有安装包无法安装,使用pip install --ignore-installed 命令强制执行

复制kolla-ansible配置文件:

cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/
cp /usr/share/kolla-ansible/ansible/inventory/* .

5. 安装Kolla

从git克隆Kolla和Kolla Ansible存储库。

git clone https://github.com/openstack/kolla
git clone https://github.com/openstack/kolla-ansible

将配置文件复制到/etc/kolla目录。

cp -r kolla-ansible/etc/kolla /etc/kolla/
cp kolla-ansible/ansible/inventory/* .

6. 配置OpenStack环境

6.1 调整kolla-ansible全局配置

kolla_install_type: "source" # 使用源码版本,更稳定
openstack_release: "train"
 # 指定queens版本kolla_internal_vip_address: "192.168.134.131" # all-in-one部署,指定vip为管理网络网卡
network_interface: "ens33" # 管理网络、API网络的网卡

neutron_external_interface: "ens34" # 外部网络的网卡

enable_haproxy: "no" # all-in-one部署,不部署HA服务

6.2 调整 all-in-one 配置

[control]
kolla       ansible_connection=local

[network]
kolla       ansible_connection=local

[compute]
kolla       ansible_connection=local

[storage]
kolla       ansible_connection=local

[monitoring]
kolla       ansible_connection=local

全部改为之前修改的主机名

7.生成密码

kolla-genpwd
# 生成的文件在/etc/kolla/password.yml

vi /etc/kolla/password.yml

keystone_admin_password: 123 #OpenStack登录密码,原始密码哈希生成,记忆王者可以随意修改

8. 部署OpenStack环境

kolla-ansible -i ./all-in-one bootstrap-servers
kolla-ansible -i ./all-in-one prechecks
kolla-ansible -i ./all-in-one deploy

9. 使用openstack

OpenStack需要一个openrc文件,其中设置了管理员用户等的凭据。生成此文件运行

kolla-ansible post-deploy
. /etc/kolla/admin-openrc.sh

安装基本OpenStack CLI客户端:

pip install python-openstackclient python-glanceclient python-neutronclient

根据安装Kolla Ansible的方式,有一个脚本可以创建示例网络、图像等。

. /usr/share/kolla-ansible/init-runonce

部署完成

注意:由于新版本使用python3,因此在运行openstack命令会提示没有queue模块
Python2.x 是import Queue 注意Q是大写。 而到了Python3.x 变成了queue。
进入文件改成大写即可解决