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 的相关文章

  • 强制卸载 NFS 安装目录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • GLIBCXX_3.4.26 未找到在 BeagleBone 上运行交叉编译的程序

    我有以下程序 include
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • 如何在Linux内核源代码中打印IP地址或MAC地址

    我必须通过修改 Linux 内核源代码来稍微改变 TCP 拥塞控制算法 但为了检查结果是否正确 我需要记录 MAC 或 IP 地址信息 我使用 PRINTK 函数来打印内核消息 但我感觉很难打印出主机的MAC IP地址 printk pM
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • SSE:跨页边界的未对齐加载和存储

    我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 如何确保应用程序在 Linux 上持续运行

    我试图确保脚本在开发服务器上保持运行 它会整理统计数据并提供网络服务 因此它应该会持续存在 但一天中有几次 它会因未知原因而消失 当我们注意到时 我们只需再次启动它 但这很麻烦 并且某些用户没有权限 或专有技术 来启动它 作为一名程序员 我
  • 如何使用 GOPATH 的 Samba 服务器位置?

    我正在尝试将 GOPATH 设置为共享网络文件夹 当我进入 export GOPATH smb path to shared folder I get go GOPATH entry is relative must be absolute

随机推荐

  • 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