十七、OpenStack新增节点的安装
17.1 检查
1 检查nova主机能否与 openstack 互相ping 通(两块网卡都要测试)
2 检查 selinux 是否禁用 (sestatus)
3 检查 firewalld 是否卸载 (rpm -qa|grep firewalld)
4 检查 NetworkManager 是否卸载 (rpm -qa|grep NetworkManager)
5 检查 yum 源 (yum repolist 10731包)
6 检查 系统 yum 源是否导入公钥 (gpgcheck=1)
7 检查 时间服务器 (chronyc sources -v)
8 检查 openstack 和 本机的主机名 是否能 ping 通(意思是要把OpenStack两台主机名写到/etc/hosts里)注两台都要写。
[root@host1 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.10 host1
192.168.0.11 host2
17.2 安装扩展的节点
17.2.1 在host1这太主机上编辑answer.ini文件
增加计算节点,(如需增加多个OpenStack节点后面跟ip即可)
[root@host1 ~]# vim answer.ini
98 CONFIG_COMPUTE_HOSTS=192.168.0.10, 192.168.0.11
102 CONFIG_NETWORK_HOSTS=192.168.0.10, 192.168.0.11
然后执行:packstack --answer-file=answer.ini
[root@host1 ~]# packstack --answer-file=answer.ini
17.3 通过Horizon界面管理
安装虽然没有报错,但默认无法打开Horizon,这是因为一个软件配置的BUG。
解决办法:
增加一行: WSGIApplicationGroup %{GLOBAL}
[root@host1 network-scripts]# vim /etc/httpd/conf.d/15-horizon_vhost.conf
## Server aliases
ServerAlias 192.168.0.10
ServerAlias host1
ServerAlias localhost
WSGIDaemonProcess apache group=apache processes=3 threads=10 user=apache
WSGIProcessGroup apache
WSGIApplicationGroup %{GLOBAL} <--这个位置
[root@host1 network-scripts]# apachectl graceful //重新载入配置文件,
[root@host1 ~]# cat keystonerc_admin 查看admin密码
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin
export OS_PASSWORD=2174c6bf69be4430
export OS_AUTH_URL=http://192.168.0.10:5000/v2.0
export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_TENANT_NAME=admin
export OS_REGION_NAME=RegionOne
17.4 登录后操作
17.5热迁移实验
17.5.1 在OpenStack这台节点上上创建云主机
创建好后用管理员登录
点击管理员>系统>云主机数量
[root@host1 ~]# virsh list
Id 名称 状态
----------------------------------------------------
1 instance-0000000d running
* 通过图形和virsh list命令发现目前云主机在host1上
17.5.2 云主机热迁移迁移
迁移完成后查看
[root@host2 ~]# virsh list
Id 名称 状态
----------------------------------------------------
1 instance-0000000d running
原文地址:https://www.cnblogs.com/momo6656/p/15089447.html
- 【请您听我说】PHP语法特点的一些看法
- 喵哈哈村的魔法考试 Round #1 (Div.2) 题解&源码(A.水+暴力,B.dp+栈)
- 查找第k小的元素(O(n)递归解法)
- C/C++对bool operator < (const p &a)const的认识,运算符重载详解(杂谈)
- C/C++中substr函数的应用(简单讲解)
- C++ STL学习之容器set和multiset (补充材料)
- Codeforces Round #410 (Div. 2)(A,字符串,水坑,B,暴力枚举,C,思维题,D,区间贪心)
- 关于int *a[常量]与int (*a)[常量]的分析与区分(详解)
- python笔记3-发送邮件(smtplib)
- 关关的刷题日记01—Leetcode 169. Majority Element
- 关小刷刷题02——Leetcode 169. Majority Element 方法2和3
- 树链剖分简单分析及模板(杂谈)
- 第十五届北京师范大学程序设计竞赛现场决赛题解&源码(A.思维,C,模拟,水,坑,E,几何,思维,K,字符串处理)
- python+requests接口自动化项目完整框架设计
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SpringBoot集成RabbitMQ-三种模式的实现
- Centos7-Docker卸载旧的更新到新版本
- vue vuecli3 前端解决跨域问题
- 求求你,不要再纠结指针了(1) ——万能转化公式
- 求求你,不要再纠结指针了(2)——函数指针
- 用Python解决100个问题 | 倒计时
- 【转载】【ionic+angularjs】angularjs ui-router路由简介
- 实时性迷思(1) —— “快是优点么?”
- Java中Thread的join方法为什么能让线程插队?
- 再见 ELK,是时候拥抱下一代日志系统 Loki 了
- 利用VBAProject来共用VBA代码
- 线上频出MySQL死锁问题!分享一下自己教科书般的排查和分析过程!
- 换人!这些算法都不会还学什么操作系统
- 【赵渝强老师】第一个Oracle的手工备份和恢复
- LeetCode刷题DAY 36:最小路径和