Centos Stream 8虚拟机搭建单节点OpenStack
注意
1、在实际搭建过程中,一定要注意自己的文件路径!
2、centos stream 8虚拟机为最小化安装,该系统似乎没有自带的python,这与centos7相比,省去很多麻烦。
3、官方文档是建立一个python虚拟环境,在虚拟环境中部署OpenStack。但是尝试多次,在web验证阶段,始终失败,不知道是网络设置的原因,还是中间部署过程出现错误的原因,始终失败,因此选择不创建python虚拟环境的情况下进行部署。
4、本次安装的是OpenStack yoga版本。
参考文献
325.【openstack】kolla 搭建 openstack 单机版云环境
kolla-ansible虚拟机单节点部署OpenStack
一、Centos Stream 8虚拟机安装必要的工具软件
1、修改主机名
[root@localhost ~]# hostnamectl set-hostname controller
2、安装网络工具
[root@controller ~]# yum install -y net-tools
3、修改ens160网络配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nABXLvEi-1669918781213)(E:\虚拟化技术\素材\ifconfig_1.png)]
(1)修改ens160网络配置文件
[root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens160
(2)重启网络服务
[root@controller ~]# nmcli c reload
[root@controller ~]# nmcli c up ens160
[root@controller ~]# nmcli networking off
[root@controller ~]# nmcli networking on
[root@controller ~]# ping www.baidu.com
PING www.a.shifen.com (110.242.68.3) 56(84) bytes of data.
64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=1 ttl=128 time=26.10 ms
64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=2 ttl=128 time=14.9 ms
64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=3 ttl=128 time=13.5 ms
64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=4 ttl=128 time=12.9 ms
4、安装vim
[root@controller ~]# yum install vim -y
Installed:
gpm-libs-1.20.7-17.el8.x86_64 vim-common-2:8.0.1763-19.el8.4.x86_64
vim-enhanced-2:8.0.1763-19.el8.4.x86_64 vim-filesystem-2:8.0.1763-19.el8.4.noarch
Complete!
5、安装git
[root@controller ~]# yum install git
6、安装dnf
[root@controller ~]# yum install dnf
Last metadata expiration check: 0:40:54 ago on Tue 29 Nov 2022 12:52:24 AM CST.
Package dnf-4.7.0-13.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
二、Centos Stream 8虚拟机安装python3.9
1、准备编译环境
[root@controller ~]# sudo dnf groupinstall 'development tools' -y
[root@controller ~]# sudo dnf install bzip2-devel expat-devel gdbm-devel \
ncurses-devel openssl-devel readline-devel wget \
sqlite-devel tk-devel xz-devel zlib-devel libffi-devel -y
2、下载Python源码
[root@controller ~]# curl -O https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tar.xz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 18.7M 100 18.7M 0 0 3768k 0 0:00:05 0:00:05 --:--:-- 3974k
[root@controller ~]# ls
20221129_1.txt 20221129.txt anaconda-ks.cfg Python-3.9.15.tar.xz
3、配置Python编译环境
[root@controller ~]# tar -xvf Python-3.9.15.tar.xz
[root@controller ~]# ls
20221129_1.txt 20221129.txt anaconda-ks.cfg Python-3.9.15 Python-3.9.15.tar.xz
[root@controller ~]# cd Python-3.9.15
[root@controller Python-3.9.15]# ./configure prefix=/usr/local/python3 --enable-optimizations
4、编译安装Python
[root@controller Python-3.9.15]# make && make install
......
running build_scripts
copying and adjusting /root/Python-3.9.15/Tools/scripts/pydoc3 -> build/scripts-3.9
copying and adjusting /root/Python-3.9.15/Tools/scripts/idle3 -> build/scripts-3.9
copying and adjusting /root/Python-3.9.15/Tools/scripts/2to3 -> build/scripts-3.9
changing mode of build/scripts-3.9/pydoc3 from 644 to 755
changing mode of build/scripts-3.9/idle3 from 644 to 755
changing mode of build/scripts-3.9/2to3 from 644 to 755
renaming build/scripts-3.9/pydoc3 to build/scripts-3.9/pydoc3.9
renaming build/scripts-3.9/idle3 to build/scripts-3.9/idle3.9
renaming build/scripts-3.9/2to3 to build/scripts-3.9/2to3-3.9
make[1]: Leaving directory '/root/Python-3.9.15'
[root@controller Python-3.9.15]# ls
aclocal.m4 config.sub install-sh Makefile.pre Parser pyconfig.h python-gdb.py
build configure Lib Makefile.pre.in PC pyconfig.h.in README.rst
CODE_OF_CONDUCT.md configure.ac libpython3.9.a Misc PCbuild python setup.py
config.guess Doc LICENSE Modules profile-run-stamp Python Tools
config.log Grammar Mac netlify.toml Programs python-config
config.status Include Makefile Objects pybuilddir.txt python-config.py
......
Looking in links: /tmp/tmp5fwsn5c7
Processing /tmp/tmp5fwsn5c7/setuptools-58.1.0-py3-none-any.whl
Processing /tmp/tmp5fwsn5c7/pip-22.0.4-py3-none-any.whl
Installing collected packages: setuptools, pip
WARNING: The script pip3.9 is installed in '/usr/local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-22.0.4 setuptools-58.1.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
[root@controller Python-3.9.15]# python3 --version
Python 3.9.15
[root@controller ~]# pip3 --version
pip 22.3.1 from /usr/local/python3/lib/python3.9/site-packages/pip (python 3.9)
5、修改环境变量(建立软连接)
[root@controller Python-3.9.15]# export PATH=$PATH:/usr/local/python3/bin/
[root@controller Python-3.9.15]# source /etc/profile
#################################修改环境变量######################################################
###########################上一步操作完,似乎不需要软链接了############################################
######[root@controller Python-3.9.15]# ln -s /usr/local/bin/python3.9 /usr/local/bin/python3######
######[root@controller Python-3.9.15]# ln -s /usr/local/bin/pip3.9 /usr/local/bin/pip3############
######[root@controller Python-3.9.15]# python3 --version##########################################
######Python 3.9.15##############################################################################
6、更新pip
[root@controller ~]# pip3 install -U pip
[root@controller ~]# pip --version
pip 22.3.1 from /usr/local/python3/lib/python3.9/site-packages/pip (python 3.9)
参考文献
三、Centos Stream 8虚拟机关闭防火墙及SELINUX
[root@controller Python-3.9.15]# systemctl stop firewalld
[root@controller Python-3.9.15]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@controller Python-3.9.15]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
Nov 29 00:38:18 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Nov 29 00:38:21 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Nov 29 00:38:23 localhost.localdomain firewalld[1038]: WARNING: AllowZoneDrifting is enabled. This is considered an i>
Nov 29 02:08:58 OpenStack systemd[1]: Stopping firewalld - dynamic firewall daemon...
Nov 29 02:08:58 OpenStack systemd[1]: firewalld.service: Succeeded.
Nov 29 02:08:58 OpenStack systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@controller Python-3.9.15]#
[root@controller ~]# vi /etc/sysconfig/selinux
####################原内容########################################
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
####################修改后的内容####################################
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
四、下载epel源
[root@controller ~]# yum makecache
[root@controller ~]# yum -y install epel-release
五、网卡信息
IP地址 | 网络类型 | 网卡 | 在OpenStack网络中的作用 |
---|---|---|---|
192.168.85.130 | NAT | ens160 | OpenStack内部管理网络(management network),Horizon web界面访问就是通过该网卡 |
无(不能配置IP地址) | bridge(桥接) | ens192 | 外部网络(external network),让neutron(OpenStack中的网络组件)的br-ex绑定使用,OpenStack中的虚拟机是通过该网卡与外网通信 |
六、安装ansible和kolla-ansible
[root@controller ~]# pip install --upgrade setuptools
Requirement already satisfied: setuptools in /usr/local/lib/python3.9/site-packages (58.1.0)
Collecting setuptools
Downloading setuptools-65.6.3-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 626.3 kB/s eta 0:00:00
Installing collected packages: setuptools
Attempting uninstall: setuptools
Found existing installation: setuptools 58.1.0
Uninstalling setuptools-58.1.0:
Successfully uninstalled setuptools-58.1.0
Successfully installed setuptools-65.6.3
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
WARNING: You are using pip version 22.0.4; however, version 22.3.1 is available.
You should consider upgrading via the '/usr/local/bin/python3.9 -m pip install --upgrade pip' command.
[root@controller ~]# pip install ansible
......
Collecting pycparser
Downloading pycparser-2.21-py2.py3-none-any.whl (118 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118.7/118.7 KB 2.4 MB/s eta 0:00:00
Installing collected packages: resolvelib, PyYAML, pyparsing, pycparser, MarkupSafe, packaging, jinja2, cffi, cryptography, ansible-core, ansible
Successfully installed MarkupSafe-2.1.1 PyYAML-6.0 ansible-7.0.0 ansible-core-2.14.0 cffi-1.15.1 cryptography-38.0.4 jinja2-3.1.2 packaging-21.3 pycparser-2.21 pyparsing-3.0.9 resolvelib-0.8.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
WARNING: You are using pip version 22.0.4; however, version 22.3.1 is available.
You should consider upgrading via the '/usr/local/bin/python3.9 -m pip install --upgrade pip' command.
[root@controller ~]# pip install kolla-ansible
......
Successfully built pyhcl
Installing collected packages: pytz, pyhcl, netifaces, netaddr, wrapt, urllib3, rfc3986, pbr, jmespath, iso8601, idna, charset-normalizer, certifi, stevedore, requests, oslo.i18n, debtcollector, oslo.utils, oslo.config, hvac, kolla-ansible
Successfully installed certifi-2022.9.24 charset-normalizer-2.1.1 debtcollector-2.5.0 hvac-1.0.2 idna-3.4 iso8601-1.1.0 jmespath-1.0.1 kolla-ansible-14.6.0 netaddr-0.8.0 netifaces-0.11.0 oslo.config-9.0.0 oslo.i18n-5.1.0 oslo.utils-6.1.0 pbr-5.11.0 pyhcl-0.4.4 pytz-2022.6 requests-2.28.1 rfc3986-2.0.0 stevedore-4.1.1 urllib3-1.26.13 wrapt-1.14.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
WARNING: You are using pip version 22.0.4; however, version 22.3.1 is available.
You should consider upgrading via the '/usr/local/bin/python3.9 -m pip install --upgrade pip' command.
七、复制ansible相关配置
[root@controller ~]# cp -r /usr/local/python3/share/kolla-ansible/etc_examples/kolla /etc/
[root@controller ~]# cp /usr/local/python3/share/kolla-ansible/ansible/inventory/* /etc/kolla/
八、生成OpenStack各个服务的密码文件,并修改Web页面登录密码
1、生成OpenStack各个服务的密码文件,并验证
[root@controller ~]# kolla-genpwd
[root@controller ~]# ssh-copy-id root@controller # 这一步操作完成后,即可在主机cmd中输入ssh root@ip进行验证。
*************************************************************************************
C:\Users\27339>ssh root@192.168.85.130
The authenticity of host '192.168.85.130 (192.168.85.130)' can't be established.
ED25519 key fingerprint is SHA256:oee5rP/ej7rIJLXrU/GwPXXlMHooeQsFk2X2JiE7q4c.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.85.130' (ED25519) to the list of known hosts.
root@192.168.85.130's password:
Last login: Thu Dec 1 03:43:13 2022 from 192.168.85.130
**************************************************************************************
# 如果上述指令出现类似下面的报错信息,可以按照下列教程操作:
# 在windows下 cmd 输入: ssh-keygen -R “远程服务器ip地址” ,清除当前机器缓存的之前的公钥信息。
# 然后执行ssh root@ip,并通过密码验证,就可以连接上虚拟机了。
*************************************************************************************
# 一般第一次进行ssh验证,基本上都能成功,不成功,说明虚拟机的IP已经在cmd中验证过,需要将前面的公钥信息清理。
参考文献
ECDSA host key for … has changed and you have requested strict checking.Host key verification fail
2、修改web页面登录密码
[root@controller ~]# vi /etc/kolla/passwords.yml
......
horizon_secret_key: ********************************
infoblox_admin_password: *************************************
ironic_database_password: ****************************************
ironic_inspector_database_password: ****************************************
ironic_inspector_keystone_password: ****************************************
ironic_keystone_password: ****************************************
keepalived_password: ********************************************
# keystone_admin_password: ***************
keystone_database_password: **********************************
keystone_federation_openid_crypto_password: **********************************
keystone_ssh_key:
private_key: '-----BEGIN PRIVATE KEY-----
九、编辑/etc/kolla/global.yml文件,自定义OpenStack部署项
[root@controller ~]# vi /etc/kolla/global.yml
#选择下载的基础镜像
kolla_base_distro: "centos"
#选择的安装方法,2选1。binary二进制安装,source源码安装
kolla_install_type: "source"
#选择OpenStack的版本标签,
openstack_release: "yoga"
#OpenStack内部管理网络地址,通过该IP访问OpenStack Web页面进行管理。如果启用了高可用,需要设置为VIP(浮动IP)
kolla_internal_vip_address: "192.168.85.130"
#OpenStack内部管理网络地址的网卡接口
network_interface: "ens160"
#此网卡应该在没有IP地址的情况下处于活动,如果不是,那么OpenStack云平台中的云主机实例将无法访问外部网络。(存在IP时br-ex桥接就不成功)
neutron_external_interface: "ens192"
#关闭高可用
enable_haproxy: "no"
#关闭cinder(块存储)
enable_cinder: "no"
#指定nova-compute守护进程使用的虚拟化技术。(kvm好像有点问题,大家可以试试,看看你们能不能过nova下载)nova-compute是一个非常重要的守护进程,负责创建和终止虚拟机实例,即管理虚拟机实例的生命周期。
nova_compute_virt_type: "qemu" #在物理机上部署时无需设置(默认kvm) ,仅在虚拟机中部署kolla-ansible-openstack时设置qemu
十、互信任
[root@controller ~]# ssh-keygen -t rsa # 这一步会有选择密码存储位置的选项,直接将括号中的内容(./root/.ssh_rsa), # 然后是设置密码,可以直接两次Enter键,就是不设置密码。
[root@controller ~]# ssh-copy-id -i ~/.ssh/id_rsa root@controller #这里注意@后面是自己的主机名,也就是第 #一步设置的。
十一、配置单节点(all-in-one)清单文件
[root@controller ~]# vi /etc/kolla/all-in-one
# 在打开的vim文件中输入指令:
:1,$s/localhost ansible_connection=local/controller/
十二、安装Ansible Galaxy依赖(yoga版本需要安装该依赖)
[root@controller ~]# yum install git -y
[root@controller ~]# cp /usr/local/python3/share/kolla-ansible/requirements.yml /usr/local/python3/
[root@controller ~]# kolla-ansible install-deps
十三、开始部署
# 对主机进行部署前检查
[root@controller ~]# kolla-ansible -i /etc/kolla/all-in-one prechecks
1、如果上一步出现“TASK [prechecks : Checking Docker version] fatal: [controller]: FAILED!”错误,执行下一步:
[root@controller ~]# kolla-ansible -i /etc/kolla/all-in-one bootstrap-servers
[root@controller ~]# kolla-ansible -i /etc/kolla/all-in-one prechecks
2、如果上一步操作仍然出现“TASK [prechecks : Checking docker SDK version] fatal: [controller]: FAILED! ”错误,执行下一步:
#配置docker源
[root@all-in-one ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
[root@all-in-one ~]# sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 安装docker-ce
[root@controller ~]# yum install docker-ce -y
# 使用kolla部署依赖项的引导服务器
[root@controller ~]# kolla-ansible -i /etc/kolla/all-in-one bootstrap-servers
# 对主机进行部署前检查
[root@controller ~]# kolla-ansible -i /etc/kolla/all-in-one prechecks
3、上述不报错执行接下来的指令:
# 拉取镜像
[root@controller ~]# kolla-ansible -i /etc/kolla/all-in-one pull
# 部署
[root@controller ~]# kolla-ansible -i /etc/kolla/all-in-one deploy
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BAoRv6eV-1669918781216)(E:\虚拟化技术\教程\centos stream 8虚拟机搭建单节点OpenStack-图片文件\OpenStack部署.png)]
4、安装OpenStack客户端
[root@controller ~]# pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master
Collecting python-openstackclient
Downloading python_openstackclient-6.0.0-py3-none-any.whl (998 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 998.5/998.5 kB 2.7 MB/s eta 0:00:00
Requirement already satisfied: iso8601>=0.1.11 in /usr/local/python3/lib/python3.9/site-packages (from python-openstackclient) (1.1.0)
......
5、验证部署,生成/etc/kolla/admin-openrc.sh
[root@controller ~]# kolla-ansible -i /etc/kolla/all-in-one post-deploy
Post-Deploying Playbooks : ansible-playbook -e @/etc/kolla/globals.yml -e @/etc/kolla/passwords.yml -e CONFIG_DIR=/etc/kolla /usr/local/python3/ansible/post-deploy.yml --inventory /etc/kolla/all-in-one
[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 out admin-openrc.sh] **************************************************************************************************
changed: [localhost]
TASK [octavia : Template out octavia-openrc.sh] **************************************************************************************
skipping: [localhost]
PLAY RECAP ***************************************************************************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
[root@controller kolla]# vi admin-openrc.sh
**********************************************************************************************
**********************************************************************************************
**********************************************************************************************
********# Ansible managed ********
******** ********
********# Clear any old environment that may conflict. ********
********for key in $( set | awk '{FS="="} /^OS_/ {print $1}' ); do unset $key ; done ********
********export OS_PROJECT_DOMAIN_NAME=Default ********
********export OS_USER_DOMAIN_NAME=Default ********
********export OS_PROJECT_NAME=admin ********
********export OS_TENANT_NAME=admin ********
********export OS_USERNAME=admin # web页面登录用户名 ********
********export OS_PASSWORD=****** # web页面登录密码 ********
********export OS_AUTH_URL=http://192.168.******** # web页面url ********
********export OS_INTERFACE=internal ********
********export OS_ENDPOINT_TYPE=internalURL ********
********export OS_IDENTITY_API_VERSION=3 ********
********export OS_REGION_NAME=RegionOne ********
********export OS_AUTH_PLUGIN=password ********
**********************************************************************************************
**********************************************************************************************
**********************************************************************************************
十四、web页面验证
浏览器输入客户端地址:http://192.168.85.130/
十五、部署过程中遇到的错误记录(部分)
RUNNING HANDLER [common : Restart fluentd container] *****************************************************************
fatal: [OpenStack]: FAILED! => {"changed": true, "msg": "'Traceback (most recent call last):\\n File \"/usr/local/lib/python3.6/site-packages/docker/api/client.py\", line 268, in _raise_for_status\\n response.raise_for_status()\\n File \"/usr/local/lib/python3.6/site-packages/requests/models.py\", line 960, in raise_for_status\\n raise HTTPError(http_error_msg, response=self)\\nrequests.exceptions.HTTPError: 404 Client Error: Not Found for url: http+docker://localhost/v1.41/images/create?tag=yoga-centos-stream9&fromImage=quay.io%2Fopenstack.kolla%2Ffluentd\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \"/tmp/ansible_kolla_docker_payload_36i1ds38/ansible_kolla_docker_payload.zip/ansible/modules/kolla_docker.py\", line 381, in main\\n File \"/tmp/ansible_kolla_docker_payload_36i1ds38/ansible_kolla_docker_payload.zip/ansible/module_utils/kolla_docker_worker.py\", line 651, in recreate_or_restart_container\\n self.start_container()\\n File \"/tmp/ansible_kolla_docker_payload_36i1ds38/ansible_kolla_docker_payload.zip/ansible/module_utils/kolla_docker_worker.py\", line 669, in start_container\\n self.pull_image()\\n File \"/tmp/ansible_kolla_docker_payload_36i1ds38/ansible_kolla_docker_payload.zip/ansible/module_utils/kolla_docker_worker.py\", line 451, in pull_image\\n repository=image, tag=tag, stream=True\\n File \"/usr/local/lib/python3.6/site-packages/docker/api/image.py\", line 430, in pull\\n self._raise_for_status(response)\\n File \"/usr/local/lib/python3.6/site-packages/docker/api/client.py\", line 270, in _raise_for_status\\n raise create_api_error_from_http_exception(e)\\n File \"/usr/local/lib/python3.6/site-packages/docker/errors.py\", line 31, in create_api_error_from_http_exception\\n raise cls(e, response=response, explanation=explanation)\\ndocker.errors.NotFound: 404 Client Error for http+docker://localhost/v1.41/images/create?tag=yoga-centos-stream9&fromImage=quay.io%2Fopenstack.kolla%2Ffluentd: Not Found (\"manifest for quay.io/openstack.kolla/fluentd:yoga-centos-stream9 not found: manifest unknown: manifest unknown\")\\n'"}
RUNNING HANDLER [common : Restart kolla-toolbox container] ***********************************************************
RUNNING HANDLER [common : Restart cron container] ********************************************************************
NO MORE HOSTS LEFT ***************************************************************************************************
PLAY RECAP ***********************************************************************************************************
OpenStack : ok=20 changed=10 unreachable=0 failed=1 skipped=1 rescued=0 ignored=0
localhost : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
(venv) [root@OpenStack ~]#
TASK [prechecks : Checking host OS release or version] ***************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "CentOS release Stream version 8 is not supported. Supported releases are: 9"}
fatal: [OpenStack]: FAILED! => {"changed": false, "msg": "CentOS release Stream version 8 is not supported. Supported releases are: 9"}
RUNNING HANDLER [common : Restart fluentd container] *****************************************************************
fatal: [OpenStack]: FAILED! => {"changed": true, "msg": "'Traceback (most recent call last):\\n File \"/usr/local/lib/python3.6/site-packages/docker/api/client.py\", line 268, in _raise_for_status\\n response.raise_for_status()\\n File \"/usr/local/lib/python3.6/site-packages/requests/models.py\", line 960, in raise_for_status\\n raise HTTPError(http_error_msg, response=self)\\nrequests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http+docker://localhost/v1.41/images/create?tag=train-centos-stream9&fromImage=quay.io%2Fkolla%2Ffluentd\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \"/tmp/ansible_kolla_docker_payload_3w3thase/ansible_kolla_docker_payload.zip/ansible/modules/kolla_docker.py\", line 381, in main\\n File \"/tmp/ansible_kolla_docker_payload_3w3thase/ansible_kolla_docker_payload.zip/ansible/module_utils/kolla_docker_worker.py\", line 651, in recreate_or_restart_container\\n self.start_container()\\n File \"/tmp/ansible_kolla_docker_payload_3w3thase/ansible_kolla_docker_payload.zip/ansible/module_utils/kolla_docker_worker.py\", line 669, in start_container\\n self.pull_image()\\n File \"/tmp/ansible_kolla_docker_payload_3w3thase/ansible_kolla_docker_payload.zip/ansible/module_utils/kolla_docker_worker.py\", line 451, in pull_image\\n repository=image, tag=tag, stream=True\\n File \"/usr/local/lib/python3.6/site-packages/docker/api/image.py\", line 430, in pull\\n self._raise_for_status(response)\\n File \"/usr/local/lib/python3.6/site-packages/docker/api/client.py\", line 270, in _raise_for_status\\n raise create_api_error_from_http_exception(e)\\n File \"/usr/local/lib/python3.6/site-packages/docker/errors.py\", line 31, in create_api_error_from_http_exception\\n raise cls(e, response=response, explanation=explanation)\\ndocker.errors.APIError: 500 Server Error for http+docker://localhost/v1.41/images/create?tag=train-centos-stream9&fromImage=quay.io%2Fkolla%2Ffluentd: Internal Server Error (\"unauthorized: access to the requested resource is not authorized\")\\n'"}
(venv) [root@controller yum.repos.d]# yum makecache
CentOS-8 - RabbitMQ 38 67 kB/s | 80 kB 00:01
CentOS- 8 - OpenStack train 8.3 B/s | 38 B 00:04
Error: Failed to download metadata for repo 'centos-openstack-train': Cannot prepare internal mirrorlist: No URLs in mirrorlist
sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' -i.bak /etc/yum.repos.d/CentOS-Base.repo
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
cat >> /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
EOF
TASK [prechecks : Checking Docker version] fatal: [controller]: FAILED! => {"changed": false, "cmd": "docker --version", "failed_when_result": true, "msg": "[Errno 2] 没有那个文件或目录: b'docker': b'docker'", "rc": 2, "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
Checking docker SDK version错误
TASK [prechecks : Checking docker SDK version] ***************************************************************************************
fatal: [controller]: FAILED! => {"changed": false, "cmd": ["/usr/libexec/platform-python", "-c", "import docker; print(docker.__version__)"], "delta": "0:00:00.015630", "end": "2022-12-01 02:43:02.499115", "failed_when_result": true, "msg": "non-zero return code", "rc": 1, "start": "2022-12-01 02:43:02.483485", "stderr": "Traceback (most recent call last):\n File \"<string>\", line 1, in <module>\nModuleNotFoundError: No module named 'docker'", "stderr_lines": ["Traceback (most recent call last):", " File \"<string>\", line 1, in <module>", "ModuleNotFoundError: No module named 'docker'"], "stdout": "", "stdout_lines": []}
PLAY RECAP ***************************************************************************************************************************
controller : ok=10 changed=0 unreachable=0 failed=1 skipped=12 rescued=0 ignored=0