首页 > 其他分享 >OpenStack学习笔记03-OpenStack环境准备

OpenStack学习笔记03-OpenStack环境准备

时间:2024-04-01 21:34:18浏览次数:24  
标签:03 192.168 server 笔记 org OpenStack yes 节点 pool

OpenStack学习笔记03-OpenStack环境准备

OpenStackLinux

对着《云操作系统(OpenStack)》第三章做的。

一、系统环境配置

1. 为什么NAT模式网关不能填写XX.XX.XX.1?

两天了,被这个问题纠缠两天了。虚拟机设置的是NAT模式,但是就是上不了外网。就是因为我把VMWare的NAT的网关改在了XX.XX.XX.1。但是,实际上这个地址是分配给wmnet8这个网卡的,已经不能再做网关了。所以这里不能设置为1这个地址。设置成2吧。

没问题了。没问题了,可以往下做了。

2. 虚拟机基本信息

2-1. 控制节点

enter description here
enter description here
主要要说明的是:

  • 内存:4G
  • 硬盘:40G
  • CPU:2颗2核,共4核,无法开启Virtualize Intel VT-x/EPT or AMD-V/RVI,开启了Virtualize CPU performance counters
  • 网卡:两个网卡,一个使用的是NAT模式,一个使用的是host-only模式。
  • 操作系统:CentOS 7.9.2009,内核版本是3.10.0-1160.el7.x86_64。
  • 系统安装过程的配置:英语,GNOME Desktop,自动分区
  • 用户名和密码:root,123456。

2-2. 计算节点

和控制节点是相同的配置。

3. 安全配置(两个节点都做)

3-1. 防火墙配置

systemctl stop firewalld
systemctl disable firewalld

enter description here
enter description here

3-2. Selinux设置

vi /etc/selinux/config,把SELINUX=enforcing修改为SELINUX=disabled
重启虚拟机。

4. 网络配置

4-1. 配置控制节点网络信息

我的虚拟机里都有两个网卡,ens33和ens34,根据两个网卡的IP地址可以判断,ens33对应的是NAT模式,ens34对应的是仅主机模式。
网口ens33:作为外部网络,配置IP地址为192.168.48.134/24网关为192.168.48.2,DNS为192.168.48.2。
网口ens34:作为管理网络,配置IP地址为192.168.58.134/24

4-1-1. ens33

vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=58dbb383-ebc5-4917-a0a0-b420481d29bd #你自己的UUID
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.48.134
PREFIX=24
GATEWAY=192.168.48.2
DNS1=192.168.48.2

4-1-2. ens34

vi /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
UUID=d221be10-6747-4586-86d7-aa865b87a737
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.58.134
PREFIX=24

4-2. 配置计算节点网络信息

我的虚拟机里都有两个网卡,ens33和ens34,根据两个网卡的IP地址可以判断,ens33对应的是NAT模式,ens34对应的是仅主机模式。
网口ens33:作为外部网络,配置IP地址为192.168.48.135/24,网关为192.168.48.2,DNS为192.168.48.2。
网口ens34:作为管理网络,配置IP地址为192.168.58.135/24

4-2-1. ens33

vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=9134a806-d400-44a7-b60a-46ada62bb356
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.48.135
PREFIX=24
GATEWAY=192.168.48.2
DNS1=192.168.48.2

4-2-2. ens34

vi /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
UUID=780cab3e-3aa2-3abd-b1f8-646f2d79a920
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.58.135
PREFIX=24

4-3. 测试配置结果

在两个节点上使用命令systemctl restart network重启网络服务,然后使用ping命令测试与百度和两节点之间是否互通。结果是可以的,如下图所示。
enter description here

5. 配置主机映射

在所有节点中,修改/etc/hosts文件,添加以下内容(这里添加的是管理网卡的IP地址)。

192.168.58.134 controller
192.168.58.135 compute

使用ping命令测试连通性。
enter description here

6. 配置yum源

按照书的上意思,应该是事先就准备好的软件包,这里要通过配置yum源和ftp服务器使controller和compute都能从事先准备的软件包中下载安装软件。但是我手头是没有书中的那个软件包的。再加上我这里是可以上网的。所以我目前没有修改yum源,就是从网上下载软件进行安装。
但是我也做了一点,那就是,创建了一个文件夹,设置yum的配置文件,把所有下载的软件包都存放在这个文件夹中,这样的话后面部署离线环境时也可以用到。

6-1. 控制节点

mkdir /root/OpenStackControllerRPMs
vi /etc/yum.conf

修改yum.conf中的cachedirkeepcache。我这里修改的结果是:

cachedir=/root/OpenStackControllerRPMS/yum/$basearch/$releasever
keepcache=1

6-2. 计算结点

mkdir /root/OpenStackComputeRPMs
vi /etc/yum.conf

修改yum.conf中的cachedirkeepcache。我这里修改的结果是:

cachedir=/root/OpenStackComputeRPMS/yum/$basearch/$releasever
keepcache=1

不确定是否会立即生效,我重启了一下系统。

二、软件环境配置

1. 安装NTP服务

以控制节点作为时钟服务器,其他节点以控制节点的时钟作为标准调整自己的时钟。

1-1. 控制节点和计算节点

yum install chrony -y

1-2. 配置控制节点

1-2-1. 编辑配置文件
vi /etc/chrony.conf

在我这里,文件的开头六行为:

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

进行了修改,注释了四句,添加了两句。然后文件的前8行为:

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
server controller iburst
allow 192.168.58.0/24

这里允许的网络地址是管理网络的地址。

1-2-2. 启动NTP服务并设置开机自动启动:
systemctl enable chronyd
systemctl restart chronyd
chronyc sources

最后一句是验证操作,如果看到controller节点则表示成功。
enter description here

1-3. 配置计算节点

1-3-1. 编辑配置文件
vi /ect/chrony.conf

注释掉已有的服务器(我这里有4个),再添加如下内容

server controller iburst

修改的结果为(开头7行):

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
server controller iburst
1-3-2. 启动NTP服务并设置开机自动启动:
systemctl enable chronyd
systemctl restart chronyd
chronyc sources

最后一句是验证操作,输出结果与controller节点运行结果相同,表示成功。
enter description here

NTP服务需要在每个节点上安装,并与控制节点同步。

2. 安装OpenStack包

在控制节点和计算节点上安装OpenStack包:

yum install python-openstackclient -y

提示没有可用的软件包。解决办法是给yum添加openstack-train的软件源。

vi /etc/yum.repo.d/OpenStack-Train.repo

添加如下内容:

[OpenStack-Train]
name=OpenStack Train Repository
baseurl=http://mirror.centos.org/centos-7/7.9.2009/cloud/x86_64/openstack-train/
enable=1
gpgcheck=0

执行yum install python-openstackclient -y可以正常安装。
enter description here

3. 安装并配置SQL数据库

3-1. 安装MariaDB数据库

在控制节点安装就可以了,计算节点不需要安装。当我从书上读到这个意思的时候我已经在计算节点上安装了数据库了。希望以后不要有什么问题。

yum install mariadb mariadb-server python2-PyMySQL -y

3-2. 配置数据库

3-2-1. 创建和编辑/etc/my.cnf.d/openstack.cnf

vi /etc/my.cnf.d/openstack.cnf

输入如下内容:

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

3-2-2. 启动数据库

systemctl enable mariadb
systemctl start mariadb

3-2-3. 运行mysql_secure_installation,初始化数据库并设置密码。

mysql_secure_installation

我把密码设置为abc123!。配置过程如下:

[root@localhost my.cnf.d]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
[root@localhost my.cnf.d]# 

4. 安装并配置消息服务器

在控制节点上操作。

4-1. 安装RabbitMQ

yum install rabbitmq-server -y

enter description here
enter description here

4-2. 启动RabbitMQ服务并设置为开机自动启动

systemctl enable rabbitmq-server
systemctl start rabbitmq-server

4-3. 创建rabbitmq用户并设置密码。用户名为openstack,密码为000000。

rabbitmqctl add_user openstack 000000

4-4. 给openstack用户授予读/写访问权限

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

enter description here
enter description here

5. 安装Memcached

在控制节点上操作

5-1. 安装Memcached

yum install memcached python-memcached -y

5-2. 编辑/etc/sysconfig/memcached文件并完成以下操作。

配置服务器以使用控制节点的管理IP地址,这是为了允许其它节点通过管理网络进行访问。

vi /etc/sysconfig/memcached

文件的最后一行是OPTIONS="-l 127.0.0.1,::1",进行修改,修改的结果是:

OPTIONS="-l 127.0.0.1,::1,controller"

也就是加上了controller

5-3. 启动Memcached服务并设置为开机自动启动。

systemctl enable memcached
systemctl start memcached

6. 安装Etcd

在控制节点上运行

6-1. 安装软件包

yum install etcd

6-2. 编辑配置文件/etc/etcd/etcd.conf

vi /etc/etcd/tecd.conf

取消对ETCD_LISTEN_PEER_URLSETCD_INITIAL_ADVERTISE_PEER_URLSETCD_INITIAL_CLUSTER三个选项前面的注释。修改ETCD_LISTEN_PEER_URLSETCD_LISTEN_CLIENT_URLSETCD_INITIAL_ADVERTISE_PEER_URLSETCD_ADVERTISE_CLIENT_URLSETCD_INITIAL_CLUSTER五个地方的IP地址,把localhost换成控制节点的管理IP地址192.168.58.134

6-3. 设置开机启动

systemctl enable etcd
systemctl start etcd

7. 验证基础环境

使用命令查看各服务商品是否开启。

netstat -tunlp

结果如下:
enter description here

可以看到,mysqld、etcd、memcached、chronyd都已经开启,消息队列由于没有配置Web界面,所以未发现商品。
也可以使用命令查看进程是否正常运行:

systemctl status mysqld etcd memcached chronyd

至此,OpenStack基础环境配置完成。

标签:03,192.168,server,笔记,org,OpenStack,yes,节点,pool
From: https://www.cnblogs.com/nangongergou/p/18109416

相关文章

  • 前端面试题【笔记】
    1、判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20varreg=/^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;//定义RegExp对象,大括号表示重复次数4-19次 reg.test("a1a__a1a__a1a__a1a__");//检查一个字符串中是否存在创建RegExp对象实例时所指定......
  • C51 单片机(STC89 C52RC)#笔记3
    Task1:基于51核心板设计一个按键计数器。要求:判断KEY1按下,每次按下按键后记录按动次数加1,并且能在数码管上显示,能够从0计数至99。#include<STC89C5xRC.H>voidDelayNums(unsignedintxms) //@11.0592MHz{ while(xms--) { unsignedchari,j; i=2; j=199;......
  • C51 单片机(STC89 C52RC)#笔记2
    Chapter4独立按键输入4.1按键检测原理当按键未按下时,输入芯片引脚的电平为高电平;按键按下时,输入芯片引脚上的电平为低电平。sbitKEY1=P3^2;//位定义P3^2;//判断是否被按下if(0==KEY1){......//按键按下处理}4.2按键软件去抖原理抖动:核心部件为弹性金属弹簧......
  • 红队笔记10:pWnOS2.0打靶流程-whatweb指纹识别-searchsploit搜索漏洞利用getshell(vulnh
    目录开头:1.主机发现和端口扫描2.80端口- whatweb指纹识别-searchsploit搜索漏洞并利用whatweb指纹识别:searchsploit搜索历史漏洞:什么是perl?SimplePHPblog登录成功-图片上传getshell3.提权-敏感文件泄露密码泄露尝试登录 4.总结:开头:学习的视频是哔哩哔哩红......
  • SQL SERVER 从入门到精通 第5版 第二篇 第6章 SQL函数的使用 读书笔记
     第六章SQL函数的使用按函数种类可以分为聚合函数,数学函数,字符串函数,日期和时间函数,转换函数和元数据函数6种.>.聚合函数. 聚合函数对一组值执行计算,并返回单个值.除count外,聚合函数都会忽略空值.通常与SELECT语句的GROUPBY子句一起......
  • 503. 下一个更大元素 II(中等)
    核心思想维护一个单调递减的单调栈(非严格)但是由于是循环的,做两次循环即可代码publicint[]nextGreaterElements(int[]nums){Deque<Integer>dq=newArrayDeque<>();int[]res=newint[nums.length];Arrays.fill(res,-1);for(int......
  • 笔记:海外独角兽《红杉美国:GenAI是一场10倍速的生产力革命》
    1960s后的历次技术变迁以及代表公司红杉美国合伙人David在去年发表了一篇AI's$200BillionQuestion的讨论。如果我们看目前投入到GPU上的投资,去年只是在Nvidia的芯片上就花了大概500亿美元,但目前可以确认的AI行业收入只有30亿美元。这些数据表明,AI产业目前还......
  • python学习笔记——控制流
    目录1. 控制流****1.1. if-elif-else语句****1.2. 循环结构****1.2.1. for循环****1.2.2. While循环****1.2.3. 嵌套循环****1.2.4. 循环的控制****1.2.4.1. Break****1.2.4.2. Continue****1.2.5. 遍历****1.2.5.1. dict****1.2.5.1.1. 遍历key:****......
  • 华为 AscendCL库 笔记
    1.AscendCL主要接口调用流程AscendCL初始化:初始化整个AscendCL的运行时环境,这一步是不可缺少的。运行管理资源申请:手动申请所需要的计算资源和运行时资源生成模型om文件(在编码前完成)根据实际需求来判断是需要调用单算子进行计算还是调用模型进行推理如果是调用单算子进行......
  • QtQuick 学习笔记(一)容器组件
    1.QGroupBox功能提供分组框支持,可在其中布置多种窗口部件常用函数与组件voidsetChecked(boolchecked)QGroupBox使能voidsetTitle(constQString&title)标题文本设置效果及功能测试GroupBox.cpp#include<QApplication>#include<QDialog>#include......