草庐IT

#打卡不停更#[图文并茂]Packstack部署train版openstack

Feyncode 2023-03-28 原文

Packstack部署openstack-train

介绍如何在centos7.9中使用packstack部署openstack-train。

首先需要安装一个最小化安装的centos7.9,按照你的网络环境配置好网络,然后重启。

这里我的环境是VMware虚拟机,ip是192.168.10.30.

首先我们需要关闭防火墙和NetworkManager

systemctl disable --now firewalld systemctl disable --now NetworkManager sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 由于NetworkManager的部分功能和openstack的neutron会发生冲突,这里我们最好把NetworkManager卸载掉,因为测试的时候发现NetworkManager有时候会自己启动。

#yum remove -y NetworkManager 然后我们需要设置一下需要的yum源

mv /etc/yum.repos.d/* /media curl -o /etc/yum.repos.d/centos.repo https://mirrors.aliyun.com/repo/Centos-7.repo cat <<EOF>>/etc/yum.repod.d/openstack-train.repo [openstack-train] name=openstack-train baseurl=https://mirrors.aliyun.com/centos/7.9.2009/cloud/x86_64/openstack-train/ gpgcheck=0 enabled=1 [kvm-qemu] name=kvm-qemu baseurl=https://mirrors.aliyun.com/centos/7.9.2009/virt/x86_64/kvm-common/ gpgcheck=0 enabled=1 EOF 为了方便大家,我已经把命令都打好了,直接复制运行就可以了。

需要注意的是不要加入epel源,其中的一个模块,提供的版本高于openstack的需要,加上epel源会导致后面部署失败。这里也不建议进行软件包的升级。

接着需要改一下主机名,为什么呢,因为packstack部署完后,nova模块调度的时候,他那个查找的list里面会和localhost发生冲突,也就是找不到调度的主机,这里我们把主机名改一下就可以规避这个错误,不会发生后面创建实例的时候状态错误,当然这不是唯一的处理方法,不过我认为是简单一点的。

hostnamectl set-hostname packstack-allinone 主机名的话随便更改,只要不是原来的localhost就可以的。

做好这些之后,就可以重启一下,接下来需要安装packstack来进行部署。建议关机之后打个快照,如果后面出错了那么可以回到这个地方重来。

yum install -y openstack-packstack #安装会比较慢,因为涉及的模块很多,大概安装需要五分钟左右。 最后就是使用packstack来进行需要的部署了,一般的allinone模式会比较简单,也叫做自动模式,就是使用packstack提供的建议选项来安装,在官网上提供的建议命令如下:

packstack --allinone 然后就是静静的等待,大概需要安装40分钟左右,需要说明的是,这样确实可以安装成功,但是如果你是用虚拟机做的实验的话,后面还需要改网络设置,因为openstack默认网络模式是vlan,这个模式需要一个真实的交换机来提供信号转发,否则你是无法进行通信的。

所以实际上我建议你在部署的时候就添加参数来对网络设置进行一个更改,也就是在部署时选择与现有的外部网络一起使用

#packstack --allinone --provision-demo=n --os-neutron-ovn-bridge-mapping=extnet:br-ex --os-neutron-ovn-bridge-interfaces=br-ex:eth0 #注意,这里的eth0指的是你的外部网络的的网卡名 在实际测试中,单网卡也是可以运作的,双网卡则是有需要的情况下使用。

当然,由于openstack已经默认使用ovn后端来运作网络,如果你希望使用ovs来作为网络的后端,你也可以使用以下网络

# packstack --allinone --os-neutron-l2-agent=openvswitch --os-neutron-ml2-mechanism-drivers=openvswitch --os-neutron-ml2-tenant-network-types=vxlan --os-neutron-ml2-type-drivers=vxlan,flat --provision-demo=n --os-neutron-ovs-bridge-mappings=extnet:br-ex --os-neutron-ovs-bridge-interfaces=br-ex:eth0 同样的,这里的eth0是指外部网络的网卡名,通常情况下,在centos7上是ens33,在centos8上是ens160。

当然我在实验的时候规定了我需要的外部网络和vxlan模式。你可以参照我的命令来进行部署。

#packstack --allione --provision-demo=n --os-neutron-ml2-tenant-network-types=vxlan --os-neutron-ml2-type-drivers=vxlan,flat --provision-demo=n --os-neutron-ovn-bridge-mappings=extnet:br-ex --os-neutron-ovn-bridge-interfaces=br-ex:eth0 还是需要注意,eth0需要你使用外部网络的网卡名来进行替代,在openstack的dashaboard页面进行网络设置时,Flat模式下外部网卡名是”extnet“,如果你需要使用其他名字,在上面的命令中替换extnet所在的字段即可。

使用命令开始packstack的部署,等待一段时间后,部署就会完成,如果出现什么意外报错的话,当然我发生过很多次了。这种情况下一般只能重来一遍,所以如果比较担心的小伙伴不用怕,前面是有一个快照的,大不了回到快照再进行这一步。

不过,如果网络没有问题呢,一切顺利的话,就会成功部署。

像下面这个样子,我把整个packstack部署的时候的输出打印在下面了。

我的实验环境是改过网卡名的,所以我的网卡就是eth0.

[root@packstack-allinone ~]# packstack --allinone --os-neutron-ml2-tenant-network-types=vxlan --os-neutron-ml2-type-drivers=vxlan,flat --provision-demo=n --os-neutron-ovn-bridge-mapping=extnet:br-ex --os-neutron-ovn-bridge-interfaces=br-ex:eth0 Welcome to the Packstack setup utility The installation log file is available at: /var/tmp/packstack/20220929-212518-c9jFuf/openstack-setup.log Installing: Clean Up [ DONE ] Discovering ip protocol version [ DONE ] Setting up ssh keys [ DONE ] Preparing servers [ DONE ] Pre installing Puppet and discovering hosts' details [ DONE ] Preparing pre-install entries [ DONE ] Setting up CACERT [ DONE ] Preparing AMQP entries [ DONE ] Preparing MariaDB entries [ DONE ] Fixing Keystone LDAP config parameters to be undef if empty[ DONE ] Preparing Keystone entries [ DONE ] Preparing Glance entries [ DONE ] Checking if the Cinder server has a cinder-volumes vg[ DONE ] Preparing Cinder entries [ DONE ] Preparing Nova API entries [ DONE ] Creating ssh keys for Nova migration [ DONE ] Gathering ssh host keys for Nova migration [ DONE ] Preparing Nova Compute entries [ DONE ] Preparing Nova Scheduler entries [ DONE ] Preparing Nova VNC Proxy entries [ DONE ] Preparing OpenStack Network-related Nova entries [ DONE ] Preparing Nova Common entries [ DONE ] Preparing Neutron API entries [ DONE ] Preparing Neutron L3 entries [ DONE ] Preparing Neutron L2 Agent entries [ DONE ] Preparing Neutron DHCP Agent entries [ DONE ] Preparing Neutron Metering Agent entries [ DONE ] Checking if NetworkManager is enabled and running [ DONE ] Preparing OpenStack Client entries [ DONE ] Preparing Horizon entries [ DONE ] Preparing Swift builder entries [ DONE ] Preparing Swift proxy entries [ DONE ] Preparing Swift storage entries [ DONE ] Preparing Gnocchi entries [ DONE ] Preparing Redis entries [ DONE ] Preparing Ceilometer entries [ DONE ] Preparing Aodh entries [ DONE ] Preparing Puppet manifests [ DONE ] Copying Puppet modules and manifests [ DONE ] Applying 192.168.10.30_controller.pp 192.168.10.30_controller.pp: [ DONE ] Applying 192.168.10.30_network.pp 192.168.10.30_network.pp: [ DONE ] Applying 192.168.10.30_compute.pp 192.168.10.30_compute.pp: [ DONE ] Applying Puppet manifests [ DONE ] Finalizing [ DONE ] **** Installation completed successfully ****** Additional information: * Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks * A new answerfile was created in: /root/packstack-answers-20220929-212518.txt * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components. * File /root/keystonerc_admin has been created on OpenStack client host 192.168.10.30. To use the command line tools you need to source the file. * To access the OpenStack Dashboard browse to http://192.168.10.30/dashboard . Please, find your login credentials stored in the keystonerc_admin in your home directory. * The installation log file is available at: /var/tmp/packstack/20220929-212518-c9jFuf/openstack-setup.log * The generated manifests are available at: /var/tmp/packstack/20220929-212518-c9jFuf/manifests 我运行的时候非常顺利,然后如果你也是如此顺利的话,那么opesntack的dashboard的登录页面是https://你的IP/dashboard。登录的用户名为admin,密码存放在root目录下的keystone_admin文档中,查看即可。

一般初始密码都是很长然后也不好,我们先登录然后可以改密码。

dashboard页面是这个样子。

用户名我们直接使用admin,然后密码是在root目录下的keystonerc_admin。这个文档内容是这个样子的

[root@packstack-allinone ~]# cat keystonerc_admin unset OS_SERVICE_TOKEN export OS_USERNAME=admin export OS_PASSWORD='dc7d07eb03894b2e' export OS_REGION_NAME=RegionOne export OS_AUTH_URL=http://192.168.10.30:5000/v3 export PS1='[\u@\h \W(keystone_admin)]\$ ' export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_IDENTITY_API_VERSION=3 admin用户的密码的话就是第三行,像我现在的密码的话就是dc7d07eb03894b2e。大家可以参照一下。

登录好的话呢,界面应该是这个样子的。

怎么修改密码呢,在右上角,有个admin的按钮,我们点一下,下面有个设置

现在你看我们的左边界面就会有一个更改密码的一个选项,我们直接在里面更改密码就可以了,首先我们填入原密码,然后输入我们想要的密码,保存就可以了。

保存之后会跳转需要重新登录,所以这里我也是没截到图,应该大家都是会操作的。

这里有一个需要注意的地方,就是我们不是改了密码了吗,那么原来root目录下的那个keystone_admin文件也需要相应的更改,把密码那一行注释掉,然后复制一行在下面,把你现在的密码填进去。。。这样后面才能操作,不然你改了密码,后面用旧密码来输入操作,keystone就会报一个无效认证的错误。

是不是感觉改了个寂寞,这里把改过的文件填在这里,我是改成这个样子的

[root@packstack-allinone ~]# cat keystonerc_admin unset OS_SERVICE_TOKEN export OS_USERNAME=admin #export OS_PASSWORD='dc7d07eb03894b2e' export OS_PASSWORD='000000' export OS_REGION_NAME=RegionOne export OS_AUTH_URL=http://192.168.10.30:5000/v3 export PS1='[\u@\h \W(keystone_admin)]\$ ' export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_IDENTITY_API_VERSION=3 可以看到我改过的密码是000000。

接下来肯定帮人帮到底,把上传镜像和创建网络还有创建实例都演示一遍的,不过呢,最近在参加活动,这个那个嗯,我把这些步骤分成几个文章发表。然后每天打算发布2篇。

本文点赞过十个,就加紧发布下一篇。觉得对你有帮助就帮忙点个赞呗!

有关#打卡不停更#[图文并茂]Packstack部署train版openstack的更多相关文章

  1. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  2. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  3. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  4. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  5. Ruby,使用包含 TK GUI 的 ocra 部署一个 exe - 2

    Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答

  6. ruby-on-rails - NameError(未初始化常量 Unzipper::Zip)但仅在 Heroku 部署(Rails)上 - 2

    我有一个类unzipper.rb,它使用Rubyzip解压文件。在我的本地环境中,我可以成功解压缩文件,而无需使用require'zip'明确包含依赖项但是在Heroku上,我得到一个NameError(uninitializedconstantUnzipper::Zip)我只能通过使用明确的require来解决问题:为什么这在H​​eroku环境中是必需的,但在本地主机上却不是?我的印象是Rails自动需要所有gem。app/services/unzipper.rbrequire'zip'#OnlyrequiredforHeroku.Workslocallywithout!class

  7. ruby - Sinatra + Heroku + Datamapper 使用 dm-sqlite-adapter 部署问题 - 2

    出于某种原因,heroku尝试要求dm-sqlite-adapter,即使它应该在这里使用Postgres。请注意,这发生在我打开任何URL时-而不是在gitpush本身期间。我构建了一个默认的Facebook应用程序。gem文件:source:gemcuttergem"foreman"gem"sinatra"gem"mogli"gem"json"gem"httparty"gem"thin"gem"data_mapper"gem"heroku"group:productiondogem"pg"gem"dm-postgres-adapter"endgroup:development,:t

  8. 最新版人脸识别小程序 图片识别 生成二维码签到 地图上选点进行位置签到 计算签到距离 课程会议活动打卡日常考勤 上课签到打卡考勤口令签到 - 2

    技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进

  9. ruby-on-rails - 在服务器上没有互联网访问权限的 Capistrano 部署 - 2

    如何使用Capistrano将Rails应用程序部署到无法访问外部网络或存储库的生产或暂存服务器?我已经设法完成部署的一半,并意识到Capistrano没有在我的本地机器上下载gitrepo,但它首先连接到远程服务器并尝试在那里下载Git存储库。我希望有一个类似Javaee的构建系统,其中创建可交付成果并将该可交付成果发送到服务器。就像您构建.ear文件并将其部署到您想要的任何服务器上一样。显然在RoR中,你被迫(据我所知)在该服务器上构建应用程序,在那里创建一个gem存储库,在那里克隆最新的分支等等。有什么方法可以将准备运行的包发送到远程服务器吗? 最佳答

  10. 【云计算】私有云在VMware下虚拟机的创建与配置(图文教程) - 2

    【适用平台】私有云   说明:完成私有云部分是需要两台虚拟机的,分别为controller、compute两个节点,但我们只需配置一台,然后克隆就方便多啦!需要用到的映射文件:关于vm的安装我就不介绍的,毕竟挺简单的,下面让我们看看基于私有云模块中,虚拟机的搭建吧。1、创建新的虚拟机,这里一般我会选择自定义,毕竟后面的配置都要根据私有云相关来进行搭建,会比较复杂。(如果是基础的可以选择典型,典型的满足一般虚拟机的配置) 2、选择稍后安装操作系统会比较方便后续的选择,这里你也可以自己选择自己的映像文件(但不建议)  3、我们是基于Linux下操作的,所以选择Linux客户机操作系统,版本选择自己

随机推荐