Centos Stream 8虚拟机搭建单节点OpenStack

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

Quick Start

一、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 8安装Python 3.9

centos 8 安装 python3.9

CentOS 8 上安装Python 3

三、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.130NATens160OpenStack内部管理网络(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   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值