kolla 部署 openstack v1.0

2023-11-02

 

准备

  • hosts配置
cat << EOF >> /etc/hosts
192.168.179.90 kolla-ansible-controller
192.168.179.91 kolla-ansible-compute
EOF
  • ssh 互信
ssh-copy-id $ip
  • 依赖包安装
for ip in kolla-ansible-controller kolla-ansible-compute; do ssh $ip yum install -y python36 python36-devel libffi-devel gcc python-setuptools python3-pip; done
pip3 install --upgrade setuptools

安装ansible

yum install ansible-python3 -y
ln -s /usr/bin/ansible-3 /usr/bin/ansible
ln -s /usr/bin/ansible-playbook-3 /usr/bin/ansible-playbook
cat /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100

安装 kolla-ansible

获取代码

使用的是 stable/train 分支:

git clone https://github.com/openstack/kolla-ansible -b stable/train --depth 1

安装

cd kolla-ansible
python3 setup.py install

卸载命令:

pip3 uninstall kolla-ansible

配置

安装依赖:

pip3 install -r kolla-ansible/requirements.txt

创建kolla配置文件并设置权限:

sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla

拷贝kolla配置文件模版:

cp -r kolla-ansible/etc/kolla/* /etc/kolla

修改kolla配置文件:

cat << EOF > /etc/kolla/globals.yml
---
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "train"
kolla_internal_vip_address: ""
docker_registry: ""
network_interface: "ens33"
neutron_external_interface: "ens33"
enable_haproxy: "yes"
glance_enable_rolling_upgrade: "no"
nova_compute_virt_type: "qemu"
EOF

使用脚本生成密码文件/etc/kolla/passwords.yml:

cd kolla-ansible/tools
python3 generate_passwords.py

拷贝 ansible 主机清单文件:

cp kolla-ansible/ansible/inventory/* ~/

配置文件如下:

  • all-in-one
  • multinode

本实验采用多节点multinode部署:

[control]
kolla-ansible-controller
[network]
kolla-ansible-controller
[compute]
kolla-ansible-compute
[monitoring]
[storage]
[deployment]
localhost       ansible_connection=local
[mariadb:children]
control
[rabbitmq:children]
control
[outward-rabbitmq:children]
[qdrouterd:children]
[monasca-agent:children]
[monasca:children]
[storm:children]
[mongodb:children]
[keystone:children]
control
[glance:children]
control
[nova:children]
control
[neutron:children]
network
[openvswitch:children]
network
compute
[opendaylight:children]
network
[cinder:children]
control
[cloudkitty:children]
[freezer:children]
[memcached:children]
control
[horizon:children]
control
[swift:children]
control
[glance-api:children]
glance
[nova-api:children]
nova
[nova-conductor:children]
nova
[nova-super-conductor:children]
nova
[nova-novncproxy:children]
nova
[nova-scheduler:children]
nova
[nova-spicehtml5proxy:children]
nova
[nova-compute-ironic:children]
[nova-serialproxy:children]
nova
[neutron-server:children]
control
[neutron-dhcp-agent:children]
neutron
[neutron-l3-agent:children]
neutron
[neutron-metadata-agent:children]
neutron
[neutron-bgp-dragent:children]
neutron
[neutron-infoblox-ipam-agent:children]
neutron
[neutron-metering-agent:children]
neutron
[cinder-api:children]
cinder
[cinder-backup:children]
storage
[cinder-scheduler:children]
cinder
[cinder-volume:children]
storage
[iscsid:children]
compute

安装

验证节点连通性

使用 ping 模块验证,正常的验证结果如下:

# ansible-3 -i ~/multinode all -m ping
[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.26.2) or chardet (2.2.1) doesn't match a supported version!
  RequestsDependencyWarning)
kolla-ansible-controller | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
kolla-ansible-compute | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

执行部署

检查与基础配置

kolla-ansible -i ~/multinode bootstrap-servers

部署前检查

kolla-ansible -i ~/multinode prechecks

执行部署

export ANSIBLE_SCP_IF_SSH=y
kolla-ansible -i ~/multinode deploy

生成 keystone admin 用户环境变量文件

kolla-ansible -i ~/multinode post-deploy
. /etc/kolla/admin-openrc.sh

清理环境

kolla-ansible destroy -i ~/multinode --yes-i-really-really-mean-it

安装 OpenStack client

pip3 install openstackclient

验证

kolla_toolbox使用

docker exec kolla_toolbox openstack --os-interface admin \
  --os-auth-url http://192.168.179.90:35357 \
  --os-identity-api-version 3 \
  --os-project-domain-name default \
  --os-tenant-name admin \
  --os-username admin \
  --os-password 04XYSVCBkELIrEv6MFMofrCvd1GycBksyRDKK8VC \
  --os-user-domain-name default \
  --os-region-name RegionOne \
  compute service list --format json --column Host --service nova-compute

验证 nova 服务

openstack compute service list
openstack compute agent list

验证 neutron agent 服务

openstack network agent list

验证 horizon 访问

创建虚拟机

初始化

初始化脚本会创建 cirros 镜像、网络、子网、路由、安全组、规格、配额等虚拟机资源:

. kolla-ansible/tools/init-runonce

创建虚拟机

openstack server create --image cirros --flavor m1.tiny --key-name mykey --network demo-net demo1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kolla 部署 openstack v1.0 的相关文章

  • Linux C++ 错误:未定义对“dlopen”的引用

    我在 Linux 上使用 C Eclipse 工作 并且想要使用一个库 Eclipse 向我显示一个错误 undefined reference to dlopen 你知道解决办法吗 这是我的代码 include
  • Xvfb 冻结初始化 GLX 扩展

    我正在尝试运行无头 Xvfb 服务器来捕获 Amazon EC2 micro 上的屏幕截图 但它在 GLX 上陷入了困境 我使用此脚本安装了 GLX Xvfb 和所有库 https gist github com joekiller 414
  • Bash:检查是否给出了参数(例如是否有参数“-a”?)

    我有一个脚本 它应该接受 2 个参数 s 和 d 如果未给出 d 参数 我想删除我的调试文件 与 s 相同 如何检查 1 或 2 是否为 s 或 d 舒尔有两个参数 我可以做到 蛮力 if test 1 d test 2 d then rm
  • 如何从脚本编辑 /etc/sudoers?

    我需要编辑 etc sudoers从脚本中添加 删除白名单中的内容 假设我有一个可以处理普通文件的命令 我如何将其应用到 etc sudoers 我可以复制并修改它 然后有visudo用修改后的副本替换原始版本 通过提供我自己的脚本 EDI
  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • Linux中如何避免sleep调用因信号而中断?

    我在 Linux 中使用实时信号来通知串行端口中新数据的到达 不幸的是 这会导致睡眠呼叫在有信号时被中断 有人知道避免这种行为的方法吗 我尝试使用常规信号 SIGUSR1 但我不断得到相同的行为 来自 nanosleep 联机帮助页 nan
  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • 使用 ioctl 在 C++ 中以编程方式添加路由

    我编写了简单的 C 函数 添加了新路线 void addRoute int fd socket PF INET SOCK DGRAM IPPROTO IP struct rtentry route memset route 0 sizeof
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win

随机推荐

  • Logminer简介及应用

    背景 近期在研究OGG复制时 对于官方稳定中提到了11 2 0 4及以后的数据库出现了一种新的捕获日志的方法 integrated capture mode 该方法使用Log Mining Server捕获日志 故对于LogMiner进行了
  • c#使用钩子拦截鼠标键盘事件

    窗体本身带的键盘鼠标事件函数只能响应窗体自己的事件 窗体之外的事件是不会响应的 比如当窗体最小化的时候也响应就要用全局钩子拦截消息来处理了 大概过程就是在窗体初始化时加载钩子 等待事件消息 事件触发后调用响应函数处理 using Syste
  • java写的简单选票统计程序

    功能很简单的一个例子 和大家一起分享一下 同为java爱好者 一起学习进步哦 InputPerson java import java awt import java awt event import java util StringTok
  • 2020年蓝桥杯省赛-平面分割

    题目 题目链接 题解 计算几何 整理公式得 m m 1 1
  • Git命令 git commit -am

    git commit m与git commit am的区别 理论 实例 总结 使用git commit am是不是就可以完全不使用git add命令呢 不是 理论 要了解git commit m与git commit am的区别 首先要明白
  • 用unity制作简单的AR,亲测有效

    在File Build Settings打开Build Settings面板 platform里面选择Android 然后点击Player Settings在右侧的Inspector面板下面打开XR Setting把里面的Vuforia A
  • html绑定类的两种方式,vue动态绑定class的最常用几种方式:

    第一种 最简单的绑定 1 绑定单个class html部分 js部分 判断是否绑定一个active data return isActive true 结果渲染为 2 若要绑定多个class 需要逗号隔开就行 这里的activeTwo加不加
  • 【AR.js】在AR.js中使用spine动画

    说在前面 测试浏览器 Microsoft Edge PC版本 97 0 1072 55 github库 AR js AR系列文章 这里 go版本 go version go1 17 3 windows amd64 three js版本 r7
  • gns3 protocol is down的一个问题终于找到解决对策了

    我前天在学校 遇到一个非常蹊跷又头痛的问题 我在gns3中只拉了一个c3600路由和一台pc连起来 新建vlan 2并设置ip作为网关 把pc所在接口加入到vlan 2后 设置好网关但死活ping不到这个网关 这么简单的俩玩意儿怎么会出这个
  • (基于安卓app开发的毕业设计)家庭图书管理系统(附论文+源码)

    大家好 我是职场程序猿 感谢您阅读本文 欢迎一键三连哦 当前专栏 安卓app毕业设计 精彩专栏推荐 微信小程序毕业设计 Java毕业设计 目录 一 项目简介 二 系统功能结构图 三 系统核心功能模块部分截图 3 1信息展示界面 2 2分类展
  • 数学建模Word排版——样式

    样式 与大多数论文写作类似 使用样式能够极大提高排版速度 提前准备好自己的样式文件 可以快速进行写作 一般是边写边排版 初期只应用所需样式即可 最后再对图表的位置 次序等进行进一步调整 创建所需样式 标题名称 为了便于区分 可以考虑加上中文
  • proteus 遇到Program file is not specified和Real Time Simulation failed to start.

    proteus 遇到Program file is not specified和Real Time Simulation failed to start 在使用protues做仿真的时候 点击开始运行 发现 点进去看看错误原因 这其实是粗心
  • Django常用命令

    python manage py migrate 新建项目 django admin py startproject 项目名 以下命令要先进入项目目录下才能执行 cd 项目名 新建app 一个项目可以有多个app 通用的app也可以在多个项
  • 如何做一个超链接,打开一个新窗口而保留原来的窗口?

    让整个网页页面内的链接都在新窗口打开 在head中加入 让一个DIV里所有链接在新窗口打开 在body中加入 a href 链接路径 target blank a 这样就可以啦 这就是表示在新的窗口打开链接 blank 在新窗口中打开链接
  • 组合特征(五)countvector(w)+doc(w)+hash(w)

    将countvector word hash word 和doc2vec word 拼接成新特征 import pickle from scipy import sparse from scipy sparse import hstack
  • 对数及对比度拉伸变换

    对数及对比度拉伸变换 对数和对比度拉伸变换是 动态范围操作的基本工具 表达式 g c log 1 f 其中c是一个常数 f是浮点数 对数变换 应用 压缩动态范围 实现了图像灰度扩展和压缩功能 扩展低灰度值而压缩高灰度值 让图像的灰度分布更加
  • 在Linux服务器上下载并安装Nginx

    在Linux服务器上下载并安装Nginx 下载安装包 进入官网 http nginx org en download html 下载稳定版 进入usr下的local文件夹 cd usr local 在user下的local中创建nginx文
  • 【毕业设计】基于单片机的心率血氧健康监测手表 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 4 1 硬件准备 4 2 传感器和算法 5 部分核心代码 5 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到
  • How to debug release mode program in visual studio

    一般情况下 因为release模式的需求 在release模式下的程序是没有debug符号信息的 但是我们可以通过修改Visual studio中的选项来enable release模式的程序的debug 右键项目 选择属性 关闭如下优化选
  • kolla 部署 openstack v1.0

    准备 hosts配置 cat lt lt EOF gt gt etc hosts 192 168 179 90 kolla ansible controller 192 168 179 91 kolla ansible compute EO