环境信息
- 操作系统:20.04.3 LTS (Focal Fossa)
安装openstack
-
安装Python编译依赖
sudo apt install git python3-dev libffi-dev gcc libssl-dev
-
安装
virtual environment
sudo apt install python3-venv
-
创建虚拟环境
mkdir -p /opt/venv python3 -m venv /opt/venv source /opt/venv/bin/activate
-
升级pip
pip install -U pip
-
安装snsible
pip install 'ansible-core>=2.15,<2.16.99'
安装Kolla-ansible
-
安装软件包
pip install git+https://opendev.org/openstack/kolla-ansible@master
-
创建
/etc/kolla
目录sudo mkdir -p /etc/kolla sudo chown $USER:$USER /etc/kolla
-
Copy
globals.yml
andpasswords.yml
to/etc/kolla
directory.cp -r /opt/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
-
Copy
all-in-one
inventory file to the current directory.cp /opt/venv/share/kolla-ansible/ansible/inventory/all-in-one .
安装依赖
kolla-ansible install-deps
准备配置信息
-
生成密码
kolla-genpwd
-
修改globals.yml
globals.yml
是Kolla Ansible的主要配置文件,默认存储在/etc/kolla/globals.yml
文件中。部署Kolla Ansible需要设置一些选项:-
镜像选项
用户必须指定将用于部署的镜像。
Kolla提供了几种Linux发行版的容器:
- CentOS Stream (
centos
) - Debian (
debian
) - Rocky (
rocky
) - Ubuntu (
ubuntu
)
这里我们使用ubuntu。
kolla_base_distro: "ubuntu"
- CentOS Stream (
-
AArch64选项
Kolla提供了适用于x86-64和aarch64架构的镜像。它们不是“multiarch”,因此aarch64的用户需要定义“openstack_tag_suffix”设置:
openstack_tag_suffix: "-aarch64"
这样就会使用为aarch64架构构建的镜像。
-
存储
这里我们使用lvm存储后端。
可以使用裸盘或者可以采用Das、iscsi-san、fc-san等方式经存储映射到宿主机本地,然后在进行如下操作
(a)创建LVM 物理卷 /dev/sdb
pvcreate /dev/sdb
(b)创建 LVM 卷组 cinder-volumes
vgcreate cinder-volumes /dev/sdb
(c)修改配置文件globals.yml
enable_cinder: "yes" enable_cinder_backend_iscsi: "yes" enable_cinder_backend_lvm:: "yes" cinder_volume_group: "cinder-volumes" # 此处创建的vg名称
-
网络
Kolla Ansible需要设置一些网络选项。我们需要设置OpenStack使用的网络接口。
首先要设置的接口是“network_interface”。这是管理类型网络的默认接口。
network_interface: "eth0"
第二个所需的接口专用于Neutron外部(或公共)网络,可以是vlan或flat,取决于网络是如何创建的。此接口应处于活动状态但不带IP地址。如果没有,则实例将无法访问外部网络。
neutron_external_interface: "eth1"
接下来,我们需要为管理流量提供浮动IP。此IP将由keepalived管理,以提供高可用性,并且应设置为未使用的管理网络中的地址,该网络连接到我们的
network_interface
。如果要使用现有的OpenStack安装进行部署,请确保配置了您的虚拟机的IP地址。kolla_internal_vip_address: "10.1.0.250"
-
启用附加服务
默认情况下,Kolla Ansible提供一个基本的计算套件,但它确实支持大量的附加服务。要启用它们,请将
enable_*
设置为“yes”。这里我们需要启用
designate
相关服务enable_designate: "yes" enable_horizon_designate: "{{ enable_designate | bool }}"
-
执行安装部署
-
初始化服务器:
kolla-ansible -i ./all-in-one bootstrap-servers
-
检查服务器:
kolla-ansible -i ./all-in-one prechecks
-
执行安装部署:
kolla-ansible -i ./all-in-one deploy
使用命令行 OpenStack
-
安装 OpenStack CLI client:
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master
-
生成命令行需要的认证信息:
kolla-ansible post-deploy
验证
$ source /opt/venv/bin/activate
$ source /etc/kolla/admin-openrc.sh
$ openstack zone create --email [email protected] test.org.
$ neutron net-create dns-net --dns-domain test.org.
$ neutron subnet-create --name dns-subnet dns-net 10.0.66.0/24
$ nova boot --image cirros --flavor mini --nic net-name=dns-net vm5
问题:
- neutron 如果使用linuxbridge插件,那么需要增加特殊配置:
[experimental]
linuxbridge = true
- cinder对接lvm后端存储
可以使用裸盘或者可以采用Das、iscsi-san、fc-san等方式经存储映射到宿主机本地,然后在进行如下操作
(a)创建LVM 物理卷 /dev/sdb
pvcreate /dev/sdb
(b)创建 LVM 卷组 cinder-volumes
vgcreate cinder-volumes /dev/sdb
(c)修改配置文件
vi /etc/kola/globals.yml
enable_cinder: "yes"
enable_cinder_backend_iscsi: "yes"
enable_cinder_backend_lvm:: "yes"
cinder_volume_group: "cinder-volumes" # 此处创建的vg名称
- 缺少命令行
pip3 install python-designateclient
apt install python3-designate
参考:
https://docs.openstack.org/kolla-ansible/latest/user/quickstart.html