并于Kolla的介绍这里不进行过多的阐述,网上有很多文档。
本文使用kolla安装最新版本Train
部署具体过程如下:
1. 准备工作
1.1 安装Centos7.5系统,过程略。本人使用virtualbox创建虚拟机,使用两张网卡即可。第一张为管理网络,可以访问公网,第二张为实例使用网络,启动即可,无需配置IP。
[root@openstack ~]# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)
1.2 关闭防火墙、设置selinux
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# getenforce
Disabled
1.3 重启机器
[root@localhost ~]# reboo7
1.4 设置主机名
[root@localhost ~]# hostnamectl set-hostname openstack
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.15 openstack
1.5 配置DNS
[root@openstack ~]# cat /etc/resolv.conf
nameserver 223.5.5.5
1.6 添加阿里yum源
[root@openstack ~]# rm -rfv * /etc/yum.repos.d/*
[root@openstack ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2. 系统基本配置
2.1 安装常用工具
[root@openstack ~]# yum install vim bash-completion net-tools
2.2 安装epel
[root@openstack ~]# yum install epel-release
2.3 安装依赖
[root@openstack ~]#yum install python-devel libffi-devel gcc openssl-devel libselinux-python -y
2.4 安装pip
[root@openstack ~]# yum install python-pip
2.5 配置pip,使用阿里源
[root@openstack ~]# mkdir ~/.pip
[root@openstack ~]# vim ~/.pip/pip.conf
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
2.6 更新pip
[root@openstack ~]# pip install -U pip
3. 安装docker
3.1 添加docker源,使用阿里源
[root@openstack ~]#yum install -y yum-utils device-mapper-persistent-data lvm2
[root@openstack ~]#yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.2 安装docker
[root@openstack ~]#yum -y install docker-ce-18.03.1.ce-1.el7.centos
3.3 配置docker,使用阿里加速器
[root@openstack ~]# mkdir -p /etc/docker/
[root@openstack ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://fl791z1h.mirror.aliyuncs.com"]
}
3.4 添加kolla.conf
[root@openstack ~]# mkdir -p /etc/systemd/system/docker.service.d/
[root@openstack ~]# vim /etc/systemd/system/docker.service.d/kolla.conf
[Service]
MountFlags=shared
3.5 启动docker
[root@openstack ~]# systemctl daemon-reload
[root@openstack ~]# systemctl enable docker
[root@openstack ~]# systemctl start docker
3.6 登录阿里云仓库
[root@openstack ~]# docker login [email protected] registry.cn-hangzhou.aliyuncs.com
Password:
密码:kolla@123
4. 安装ansible
4.1 安装ansible
[root@openstack ~]# yum install ansible
4.2 配置ansible
[root@openstack ~]# vim /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100
5. 安装kolla-ansible
5.1 安装依赖
kolla分为两个仓库,一个为https://github.com/openstack/kolla , 另一个为https://github.com/openstack/kolla-ansible 在这两个仓库中有requirements.txt文件,需要将其中的依赖安装
[root@openstack ~]# vim 1.txt
pbr!=2.1.0,>=2.0.0 # Apache-2.0
docker>=2.4.2 # Apache-2.0
Jinja2>=2.8 # BSD License (3 clause)
GitPython>=1.0.1 # BSD License (3 clause)
oslo.config>=5.1.0 # Apache-2.0
oslo.utils>=3.33.0 # Apache-2.0
setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,>=21.0 # PSF/ZPL
netaddr>=0.7.18 # BSD
[root@openstack ~]# vim 2.txt
pbr!=2.1.0,>=2.0.0 # Apache-2.0
docker>=2.4.2 # Apache-2.0
Jinja2>=2.10 # BSD License (3 clause)
oslo.config>=5.2.0 # Apache-2.0
oslo.utils>=3.33.0 # Apache-2.0
setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,>=21.0.0 # PSF/ZPL
PyYAML>=3.12 # MIT
netaddr>=0.7.18 # BSD
cryptography>=2.1 # BSD/Apache-2.0
jmespath>=0.9.3 # MIT
以上两个文件,是我直接从requirements.txt,复制过来的,直接安装即可
root@openstack ~]# pip install -r 1.txt
安装第二个依赖
[root@openstack ~]# pip install -r 2.txt
5.2 安装kolla-ansible
[root@openstack ~]# pip install kolla-ansible
在安装kolla-ansible的时候会出现下面的错误
ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
解决方法,在安装kolla-ansible的时候忽略PyYAML
[root@openstack ~]# pip install kolla-ansible --ignore-installed PyYAML
5.3 安装kolla
[root@openstack ~]# pip install kolla
6. 配置kolla-ansible
6.1 创建kolla目录,复制globals.yml,passwords.yml
[root@openstack ~]# mkdir -p /etc/kolla/
[root@openstack ~]# cp /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
6.2 由于此环境在虚拟机部署,所以virt_type的类型设置为qemu
[root@openstack ~]# mkdir -p /etc/kolla/config/nova/
[root@openstack ~]# vim /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type = qemu
cpu_mode = none
6.3 配置globals.yml
[root@openstack ~]# cat /etc/kolla/globals.yml | grep -v ^$| grep -v ^#
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "train"
kolla_internal_vip_address: "192.168.122.253"
docker_registry: "registry.cn-hangzhou.aliyuncs.com"
docker_namespace: "cloudbl"
network_interface: "enp0s3"
neutron_external_interface: "enp0s8"
neutron_plugin_agent: "linuxbridge"
enable_neutron_qos: "yes"
enable_ceph_rgw_keystone: "yes"
glance_enable_rolling_upgrade: "no"
ironic_dnsmasq_dhcp_range:
tempest_image_id:
tempest_flavor_ref_id:
tempest_public_network_id:
tempest_floating_network_name:
以上的配置中,本人使用了自己在阿里上搭建的docker仓库。里面的镜像,是从docker的官网push而来。这个仓库是私有仓库,要是需要使用的话,请联系本作者。
注:如果此环境所在的网络中还有其它使用Kolla部署的openstack,那么需要修改globals.yml中的
#keepalived_virtual_router_id: "51"
把51改成1到99的之间的整数即可。
7 部署openstack
7.1 生成openstack密码
[root@openstack ~]# kolla-genpwd
如果执行出现如下错误
[root@openstack ~]# kolla-genpwd
Traceback (most recent call last):
File "/usr/bin/kolla-genpwd", line 8, in
sys.exit(main())
File "/usr/lib/python2.7/site-packages/kolla_ansible/cmd/genpwd.py", line 133, in main
fernet_keys, hmac_md5_keys)
File "/usr/lib/python2.7/site-packages/kolla_ansible/cmd/genpwd.py", line 67, in genpwd
private_key, public_key = generate_RSA()
File "/usr/lib/python2.7/site-packages/kolla_ansible/cmd/genpwd.py", line 52, in generate_RSA
format=serialization.PublicFormat.OpenSSH
File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/rsa.py", line 514, in public_bytes
self._rsa_cdata
File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 1706, in _public_key_bytes
return self._openssh_public_key_bytes(key)
File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 1740, in _openssh_public_key_bytes
serialization._ssh_write_mpint(public_numbers.e) +
AttributeError: 'module' object has no attribute '_ssh_write_string'
解决方法
[root@openstack ~]# pip uninstall cryptography
[root@openstack ~]# pip install "cryptography==2.7"
7.2 pull镜像
[root@openstack ~]# kolla-ansible pull
...........
PLAY RECAP ************************************************************************************************************************************************
localhost : ok=40 changed=0 unreachable=0 failed=0 skipped=77 rescued=0 ignored=0
出现以上提示,pull成功。如果在pull中出现问题,可以在评论中留言
7.3 检查Kolla
[root@openstack ~]# kolla-ansible prechecks
PLAY RECAP ************************************************************************************************************************************************
localhost : ok=102 changed=0 unreachable=0 failed=0 skipped=147 rescued=0 ignored=0
出现以上提示,prechecks成功。如果在检查的过程中,有遇到问题,请在评论区留言。
7.4 部署Kolla
[root@openstack ~]# kolla-ansible deploy -vvv
等待大概十分钟左右,部署完成
PLAY RECAP ***********************************************************************************************************************************************************************************
localhost : ok=356 changed=210 unreachable=0 failed=0 skipped=216 rescued=0 ignored=0
7.5 安装openstack-pythonclient
安装openstackclient
[root@openstack ~]# pip install python-openstackclient
在安装的过程中如果出现以下的提示
Downloading https://mirrors.aliyun.com/pypi/packages/ce/8c/2c5f7dc1b418f659d36c04dec9446612fc7b45c8095cc7369dd772513055/zipp-3.1.0.tar.gz
Complete output from command python setup.py egg_info:
/usr/lib/python2.7/site-packages/pkg_resources/py2_warn.py:22: UserWarning: Setuptools will stop working on Python 2
************************************************************
You are running Setuptools on Python 2, which is no longer
supported and
>>> SETUPTOOLS WILL STOP WORKING <<<
in a subsequent release (no sooner than 2020-04-20).
Please ensure you are installing
Setuptools using pip 9.x or later or pin to `setuptools<45`
in your environment.
If you have done those things and are still encountering
this message, please comment in
https://github.com/pypa/setuptools/issues/1458
about the steps that led to this unsupported combination.
************************************************************
sys.version_info < (3,) and warnings.warn(pre + "*" * 60 + msg + "*" * 60)
WARNING: The wheel package is not available.
ERROR: 'pip wheel' requires the 'wheel' package. To fix this, run: pip install wheel
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-build-ucbOV_/zipp/setup.py", line 6, in
setuptools.setup()
File "/usr/lib/python2.7/site-packages/setuptools/__init__.py", line 143, in setup
_install_setup_requires(attrs)
File "/usr/lib/python2.7/site-packages/setuptools/__init__.py", line 138, in _install_setup_requires
dist.fetch_build_eggs(dist.setup_requires)
File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 687, in fetch_build_eggs
replace_conflicting=True,
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 783, in resolve
replace_conflicting=replace_conflicting
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1066, in best_match
return self.obtain(req, installer)
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1078, in obtain
return installer(requirement)
File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 743, in fetch_build_egg
return fetch_build_egg(self, req)
File "/usr/lib/python2.7/site-packages/setuptools/installer.py", line 130, in fetch_build_egg
raise DistutilsError(str(e))
distutils.errors.DistutilsError: Command '['/usr/bin/python2', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmp5PtNNl', '--quiet', 'setuptools_scm[toml]>=3.4.1']' returned non-zero exit status 1
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-ucbOV_/zipp/
You are using pip version 19.3.1, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
以上提示说明python环境不支持安装zipp这个库,因为我使用是的centos7.5系统 ,python版本2.7,解决方法,指定zipp版本
[root@openstack ~]# pip install zipp==1.1.0
然后再安装python-openstackclient即可成功
[root@openstack ~]# pip install python-openstackclient
7.6 生成admin-openrc
[root@openstack ~]# kolla-ansible post-deploy
Post-Deploying Playbooks : ansible-playbook -i /usr/share/kolla-ansible/ansible/inventory/all-in-one -e @/etc/kolla/globals.yml -e @/etc/kolla/passwords.yml -e CONFIG_DIR=/etc/kolla /usr/share/kolla-ansible/ansible/post-deploy.yml
[DEPRECATION WARNING]: The TRANSFORM_INVALID_GROUP_CHARS settings is set to allow bad characters in group names by default, this will change, but still be user configurable on deprecation.
This feature will be removed in version 2.10. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details
PLAY [Creating admin openrc file on the deploy node] *****************************************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************************************************************************
ok: [localhost]
TASK [template] ******************************************************************************************************************************************************************************
/usr/lib/python2.7/site-packages/pkg_resources/py2_warn.py:22: UserWarning: Setuptools will stop working on Python 2
************************************************************
You are running Setuptools on Python 2, which is no longer
supported and
>>> SETUPTOOLS WILL STOP WORKING <<<
in a subsequent release (no sooner than 2020-04-20).
Please ensure you are installing
Setuptools using pip 9.x or later or pin to `setuptools<45`
in your environment.
If you have done those things and are still encountering
this message, please comment in
https://github.com/pypa/setuptools/issues/1458
about the steps that led to this unsupported combination.
************************************************************
sys.version_info < (3,) and warnings.warn(pre + "*" * 60 + msg + "*" * 60)
changed: [localhost]
PLAY RECAP ***********************************************************************************************************************************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@openstack ~]#
7.7 使用init-runonce脚本创建网络、flavor
在使用此脚本时,如果网络上有限制,导致下载cirros镜像很慢,那么可以把镜像这一块相关的注释掉。镜像可以自己单独导入到服务器上。
[root@openstack ~]# cat /usr/share/kolla-ansible/init-runonce
#!/bin/bash
set -o errexit
# This script is meant to be run once after running start for the first
# time. This script downloads a cirros image and registers it. Then it
# configures networking and nova quotas to allow 40 m1.small instances
# to be created.
ARCH=$(uname -m)
IMAGE_PATH=/opt/cache/files/
IMAGE_URL=http://download.cirros-cloud.net/0.4.0/
IMAGE=cirros-0.4.0-${ARCH}-disk.img
IMAGE_NAME=cirros
IMAGE_TYPE=linux
# This EXT_NET_CIDR is your public network,that you want to connect to the internet via.
ENABLE_EXT_NET=${ENABLE_EXT_NET:-1}
EXT_NET_CIDR='192.168.201.0/24'
EXT_NET_RANGE='start=192.168.201.150,end=192.168.201.199'
EXT_NET_GATEWAY='192.168.201.1'
# Sanitize language settings to avoid commands bailing out
# with "unsupported locale setting" errors.
unset LANG
unset LANGUAGE
LC_ALL=C
export LC_ALL
for i in curl openstack; do
if [[ ! $(type ${i} 2>/dev/null) ]]; then
if [ "${i}" == 'curl' ]; then
echo "Please install ${i} before proceeding"
else
echo "Please install python-${i}client before proceeding"
fi
exit
fi
done
# Test for credentials set
if [[ "${OS_USERNAME}" == "" ]]; then
echo "No Keystone credentials specified. Try running source /etc/kolla/admin-openrc.sh command"
exit
fi
# Test to ensure configure script is run only once
if openstack image list | grep -q cirros; then
echo "This tool should only be run once per deployment."
exit
fi
echo Checking for locally available cirros image.
# Let's first try to see if the image is available locally
# nodepool nodes caches them in $IMAGE_PATH
#if ! [ -f "${IMAGE_PATH}/${IMAGE}" ]; then
# IMAGE_PATH='./'
# if ! [ -f "${IMAGE_PATH}/${IMAGE}" ]; then
# echo None found, downloading cirros image.
# curl -L -o ${IMAGE_PATH}/${IMAGE} ${IMAGE_URL}/${IMAGE}
# fi
#else
# echo Using cached cirros image from the nodepool node.
#fi
#echo Creating glance image.
#openstack image create --disk-format qcow2 --container-format bare --public \
# --property os_type=${IMAGE_TYPE} --file ${IMAGE_PATH}/${IMAGE} ${IMAGE_NAME}
echo Configuring neutron.
if [[ $ENABLE_EXT_NET -eq 1 ]]; then
openstack network create --external --provider-physical-network physnet1 \
--provider-network-type flat public1
openstack subnet create --no-dhcp \
--allocation-pool ${EXT_NET_RANGE} --network public1 \
--subnet-range ${EXT_NET_CIDR} --gateway ${EXT_NET_GATEWAY} public1-subnet
fi
openstack network create --provider-network-type vxlan demo-net
openstack subnet create --subnet-range 10.0.0.0/24 --network demo-net \
--gateway 10.0.0.1 --dns-nameserver 8.8.8.8 demo-subnet
openstack router create demo-router
openstack router add subnet demo-router demo-subnet
if [[ $ENABLE_EXT_NET -eq 1 ]]; then
openstack router set --external-gateway public1 demo-router
fi
# Get admin user and tenant IDs
ADMIN_USER_ID=$(openstack user list | awk '/ admin / {print $2}')
ADMIN_PROJECT_ID=$(openstack project list | awk '/ admin / {print $2}')
ADMIN_SEC_GROUP=$(openstack security group list --project ${ADMIN_PROJECT_ID} | awk '/ default / {print $2}')
# Sec Group Config
openstack security group rule create --ingress --ethertype IPv4 \
--protocol icmp ${ADMIN_SEC_GROUP}
openstack security group rule create --ingress --ethertype IPv4 \
--protocol tcp --dst-port 22 ${ADMIN_SEC_GROUP}
# Open heat-cfn so it can run on a different host
openstack security group rule create --ingress --ethertype IPv4 \
--protocol tcp --dst-port 8000 ${ADMIN_SEC_GROUP}
openstack security group rule create --ingress --ethertype IPv4 \
--protocol tcp --dst-port 8080 ${ADMIN_SEC_GROUP}
if [ ! -f ~/.ssh/id_rsa.pub ]; then
echo Generating ssh key.
ssh-keygen -t rsa -f ~/.ssh/id_rsa
fi
if [ -r ~/.ssh/id_rsa.pub ]; then
echo Configuring nova public key and quotas.
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
fi
# Increase the quota to allow 40 m1.small instances to be created
# 40 instances
openstack quota set --instances 40 ${ADMIN_PROJECT_ID}
# 40 cores
openstack quota set --cores 40 ${ADMIN_PROJECT_ID}
# 96GB ram
openstack quota set --ram 96000 ${ADMIN_PROJECT_ID}
# add default flavors, if they don't already exist
if ! openstack flavor list | grep -q m1.tiny; then
openstack flavor create --id 1 --ram 512 --disk 1 --vcpus 1 m1.tiny
openstack flavor create --id 2 --ram 2048 --disk 20 --vcpus 1 m1.small
openstack flavor create --id 3 --ram 4096 --disk 40 --vcpus 2 m1.medium
openstack flavor create --id 4 --ram 8192 --disk 80 --vcpus 4 m1.large
openstack flavor create --id 5 --ram 16384 --disk 160 --vcpus 8 m1.xlarge
fi
cat << EOF
Done.
To deploy a demo instance, run:
openstack server create \\
--image ${IMAGE_NAME} \\
--flavor m1.tiny \\
--key-name mykey \\
--network demo-net \\
demo1
EOF
注:EXT_NET_CIDR='192.168.201.0/24' 此网络为第二张网卡所在网络
[root@openstack ~]# source /etc/kolla/admin-openrc.sh
[root@openstack ~]# bash /usr/share/kolla-ansible/init-runonce
执行完成后,通过openstack network list进行查看
[root@openstack ~]# openstack network list
/usr/lib/python2.7/site-packages/pkg_resources/py2_warn.py:22: UserWarning: Setuptools will stop working on Python 2
************************************************************
You are running Setuptools on Python 2, which is no longer
supported and
>>> SETUPTOOLS WILL STOP WORKING <<<
in a subsequent release (no sooner than 2020-04-20).
Please ensure you are installing
Setuptools using pip 9.x or later or pin to `setuptools<45`
in your environment.
If you have done those things and are still encountering
this message, please comment in
https://github.com/pypa/setuptools/issues/1458
about the steps that led to this unsupported combination.
************************************************************
sys.version_info < (3,) and warnings.warn(pre + "*" * 60 + msg + "*" * 60)
+--------------------------------------+----------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+----------+--------------------------------------+
| 2b808867-d482-4b10-97d6-2a8e8929b080 | public1 | fb9307c1-bf36-4ea5-b522-22b7c1367f68 |
| bbd0cd7b-ad44-4075-bc36-4bdd4224969b | demo-net | 102a2d58-e6bf-4981-b937-c99e2274925e |
+--------------------------------------+----------+--------------------------------------+
[root@openstack ~]#
出现的提示可以暂时不用管,因为python版本过低。
7.8 上传镜像
[root@openstack opt]# glance image-create --name cirros --disk-format qcow2 --container-format bare --progress < cirros-0.4.0-x86_64-disk.img
/usr/lib/python2.7/site-packages/pkg_resources/py2_warn.py:22: UserWarning: Setuptools will stop working on Python 2
************************************************************
You are running Setuptools on Python 2, which is no longer
supported and
>>> SETUPTOOLS WILL STOP WORKING <<<
in a subsequent release (no sooner than 2020-04-20).
Please ensure you are installing
Setuptools using pip 9.x or later or pin to `setuptools<45`
in your environment.
If you have done those things and are still encountering
this message, please comment in
https://github.com/pypa/setuptools/issues/1458
about the steps that led to this unsupported combination.
************************************************************
sys.version_info < (3,) and warnings.warn(pre + "*" * 60 + msg + "*" * 60)
[=============================>] 100%
+------------------+----------------------------------------------------------------------------------+
| Property | Value |
+------------------+----------------------------------------------------------------------------------+
| checksum | 443b7623e27ecf03dc9e01ee93f67afe |
| container_format | bare |
| created_at | 2020-03-20T02:52:09Z |
| disk_format | qcow2 |
| id | c7f511f8-b525-4c3a-b113-f4c6f567c0a8 |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros |
| os_hash_algo | sha512 |
| os_hash_value | 6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0982e |
| | 2161b5b5186106570c17a9e58b64dd39390617cd5a350f78 |
| os_hidden | False |
| owner | 3d8558bbe1cf49428ad5244b43b00a09 |
| protected | False |
| size | 12716032 |
| status | active |
| tags | [] |
| updated_at | 2020-03-20T02:52:10Z |
| virtual_size | Not available |
| visibility | shared |
+------------------+----------------------------------------------------------------------------------+
[root@openstack opt]#
7.8 访问dashboard
[root@openstack opt]# cat /etc/kolla/passwords.yml | grep keystone_admin_password
keystone_admin_password: gH0hr6Gn51D0s61PAFdMZ1kbtIBgwLJnLZbfVdrx