openstack部署过程1_Weach的博客-程序员宅基地

技术标签: 笔记  运维  linux  openstack  

名称 IP地址 主机名称
控制节点 192.168.56.10 Controller
计算节点1 192.168.56.20 Computer1
计算节点2 192.168.56.30 Computer2

1.基础环境准备

使用VMware初始化三台虚拟机

请添加图片描述

controller节点配置

这里安装了图像化界面GNOME Desktop( 方便偷懒

设置静态IP

使用命令 vi /etc/sysconfig/network-scripts/ifcfg-ens37 编辑hostonly端口(我这是ens33 可用ip addr查看)的网络配置文件(之前未创建改文件夹)
在这里插入图片描述

TYPE=Ethernet
BOOTPROTO=static
NAME=ens37
DEVICE=ens37
ONBOOT=yes

IPADDR=192.168.56.10
NETMASK=255.255.255.0
GATEWAY=192.168.56.1

systemctl restart network #修改完成后重启网卡

修改主机名称

hostnamectl set-hostname controller # 修改名字为controller

bash #刷新

hosts解析

vi /etc/hosts

更改hosts文件如下

请添加图片描述

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.10       controller
192.168.56.20       compute1
192.168.56.30       compute2

做完hosts解析可以使用scp发送到另一台机器上

scp -rp /etc/hosts [email protected]:/etc/hosts

关闭防火墙

关掉SELinux

永久禁用SELinux(建议)使用vi /etc/selinux/config将 SELINUX=enforcing 更改为 SELINUX=disabled

请添加图片描述

关掉firewall
systemctl stop firewalld
systemctl disable firewalld

compute1,compoute2节点配置

设置静态IP

vi /etc/sysconfig/network-scripts/ifcfg- ens37

更改如下

TYPE=Ethernet
BOOTPROTO=static
NAME=ens37
DEVICE=ens37
ONBOOT=yes

IPADDR=192.168.56.20 #compute2改为192.168.56.30
NETMASK=255.255.255.0
GATEWAY=192.168.56.1

修改主机名称

hostnamectl set-hostname compute1 # 修改名字为compute1,compute2修改为compute2

bash #刷新

hosts解析

vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.10       controller
192.168.56.20       compute1
192.168.56.30       compute2

关闭防火墙

关掉SELinux

永久禁用SELinux(建议)使用vi /etc/selinux/config将 SELINUX=enforcing 更改为 SELINUX=disabled

关掉firewall
systemctl stop firewalld
systemctl disable firewalld

2.基础服务

controller节点配置

时间同步

执行安装命令yum install chrony -y

编辑chrony配置文件vi /etc/chrony.conf修改以下两条信息

# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
server time1.aliyun.com iburst # 改

# Allow NTP client access from local network.
allow 192.168.0.0/16 # 改

注意:在计算节点仅修改第一条,修改为server controller iburst,直接与控制节点同步

请添加图片描述

启动并加入开机自启

systemctl enable chronyd.service
systemctl start chronyd.service

安装通用包

下载openstack源

yum install centos-release-openstack-stein -y

下载所需要的软件

yum install python-openstackclient openstack-selinux -y

SQL数据库

1.安装Mariadb数据库,也可安装MySQL数据库

yum install mariadb mariadb-server python2-PyMySQL -y

2.创建和编辑vi /etc/my.cnf.d/openstack.cnf文件,添加如下信息

[mysqld]
bind-address = 192.168.56.10
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

3.启动数据库并设置为开机自启

systemctl enable mariadb.service
systemctl start mariadb.service

4.验证端口是否存在

netstat -tnulp|grep 3306

请添加图片描述

rabbitmq消息队列

1.安装软件包

yum install rabbitmq-server -y

2.启动消息队列服务并设置为开机自启

systemctl start rabbitmq-server 

systemctl enable rabbitmq-server

3.添加openstack用户并设置密码

rabbitmqctl add_user openstack RABBIT_PASS # PABBIT_PASS改为自己的密码

4.给openstack用户可读可写可配置权限

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

6.为了方便监控,启用Web界面管理插件

rabbitmq-plugins enable rabbitmq_management

7.验证端口是否存在

netstat -lntp|grep 5672

请添加图片描述

8.通过浏览器访问http://192.168.56.10:15672/可以成功登录RabbitMQ,默认管理员账号密码都是guest,登录成功页面如下图

请添加图片描述

Memcached缓存

1.安装软件包

yum install memcached python-memcached -y

2.编辑文件vi /etc/sysconfig/memcached,修改成如下信息

OPTIONS="-l 127.0.0.1,::1,controller"
sed -i 's#127.0.0.1#0.0.0.0#g'

3.启动Memcached服务并设置开机自启

systemctl start memcached  
systemctl enable memcached

Etcd集群

compute1,compoute2节点配置

时间同步

执行安装命令yum install chrony -y

编辑chrony配置文件vi /etc/chrony.conf修改如下

# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
server controller iburst # 直接与控制节点同

安装通用包

下载openstack源

yum install centos-release-openstack-stein -y

下载所需要的软件

yum install python-openstackclient openstack-selinux -y

错误记录

操作现在正在进行"\ 没有到主机的路由"
正在尝试其它镜像。
systemctl restart network重启网络看看,不行就换源

var/run/yum.pid 已被锁定,PID 为 69844 的另一个程序正在运行。
杀进程rm -f /var/run/yum.pid

图形化界面后无权限
一般用户切换为root用户su root

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45748404/article/details/120593033

智能推荐

Win7下SQLite的简单使用_weixin_34417814的博客-程序员宅基地

前言    SQLite 是一个软件库,实现了自给自足的、无server的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源码不受版权限制。  简单的认识了SQLite之后,我就非常想来尝试一下。他如此的轻量,作为一个程序猿,我没有理由不去学习一下。SQLite下载和基础使用  1、下载临...

java学习笔记1_雨在飘落的博客-程序员宅基地

记录java学习,慢慢更新中文章目录一、基础知识二、Java基础(一)Java基本语法(二)面向对象OOP2.1 java类及类的成员2.1.1 java类及类的成员:属性、方法、构造器、代码块、内部类2.1.2 JVM虚拟机2.1.3 属性(成员变量)和局部变量2.1.4 匿名对象2.1.5 重载overload **(同一类中)**2.1.6 重写override **(子类继承父类)**2.1.7 可变个数的形参 (代替数组形参 )2.1.8 private的使用2.1.9 构造器(或构造方法、c

FTP命令和返回值_Draven_Liu的博客-程序员宅基地

一、关于Ftp协议:Ftp协议可通过RPC959的介绍了解。二、Ftp命令:也许很多人都用过Ftp命令,但是可能也有许多人和我曾经犯一样的错误,错认了Ftp命令。我原来在win2000的控制台下打上Ftp,然后进入了Ftp提示符下,接着我用上了许多符有“windows”特色的命令,如“dir”,“cd”,看到它按照自己的想法在运行,以为自己便掌握了Ftp命令了。我非常有信心的打开编

Lua5.1编程一:Lua语言基础_zzulp的博客-程序员宅基地

Lua的设计目的是依赖C的高效,并提供C所没有动态结构、高层抽象、内存回收、高阶函数等功能。Lua本身很小,功能有限,大部分功能来源于其标准库。但本身提供的简单、高效、高扩展、可移植等特性,使得在特定场景中Lua有用武之地。1 语言基础1.1 词法约定Lua语言是一种区分大小写的语言。变量命名和C一样,只能使用字母数字和下划线,数字不能位于开始。以下划线开始的变量默认为Lua自

NC用友导入凭证失败错误:凭证内部错误号:[10044]_傲娇的小花猫的博客-程序员宅基地_用友nc凭证导入

当使用NC的应用集成手动导入凭证时,日志显示错误信息为:错误:凭证内部错误号:[10044] 科目信息有错!则可能是因为会计科目的启用期间大于凭证日期解决方法是:在会计科目中将该科目删除重建,启用期间写小于凭证日期的信息...

Codeforces Round #484_-Hello_狂奔的蜗牛的博客-程序员宅基地

A. Rowtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou're given a row with nn chairs. We call a seating of people "maximal" if the two following...

随便推点

Android系统体系结构_WiliamJiang的博客-程序员宅基地

Andriod是什么?从图中可以看出Android主要的组成部分,其中底层是Linux的内核,包括的主要就是文件、内存、系统资源等的管理,Google在这部分的工作主要就是电源管理和一部分驱动,并且整合上层扩展及公共组件。如果要研究这部分,那应该是学习Linux的好的方向。接着一个重要的组成部分是Dalvik,一个Java虚拟机,类似jvm的东西,它主要就是提供一个虚拟的运行环境以适应...

@Autowired一个接口有多个实现类_qq_18800269的博客-程序员宅基地_多个实现类autowired

@Autowired是spring的注解,默认使用的是byType的方式向Bean里面注入相应的Bean。例如:@Autowiredprivate UserService userService;这段代码会在初始化的时候,在spring容器中寻找一个类型为UserService的bean实体注入,关联到userService的引入上。但是如果UserService这个接口存在多个实现类的时...

Android--解析xml_x-yyy的博客-程序员宅基地

public class MainActivity extends AppCompatActivity { String xmlString = "<apps>\n" + "\t<app>\n" + "\t\t<id>1</id>

Python入门到精通_君莫笑ka的博客-程序员宅基地

python从入门到精通内存中存储的时数据的二进制形式存储数据:1、计算机先开辟空间,在存储数据,计算机开辟空间的最小单位时字节。2、在数据存储时,用最高标识符号位,0表示正数,1表示复数。原码,反码,补码原码:规定了字节数,写明了符号位,得到了数据的原码反码:正数的反码就是其原码,复数的反码就是其原码的符号位不变其他位取反补码:正数的补码是其原码(正数三码合一)运算符:算数运算符 + - * / % // ** 赋值运算符 = 成员运..

js中的push和join方法用法_悠悠我心cium的博客-程序员宅基地_js push和

<script type="text/javascript">function delWork(id){var boxes = document.getElementsByName("commonPage.idBox");var selected = new Array();for (var i=0; i<boxes.length; i++) {if(boxes[i].checked){//push()把一个元素添加到数组的尾部selected.push(boxes[i].v.