云计算实验之节点创建与配置

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

环境

  

Contents

  •  

这个部分解释如何按示例架构配置控制节点和一个计算节点

尽管大多数环境中包含认证,镜像,计算,至少一个网络服务,还有仪表盘,但是对象存储服务也可以单独操作。仪表盘要求至少要有镜像服务,计算服务和网络服务。

你必须用有管理员权限的帐号来配置每个节点。可以用 root 用户或 sudo 工具来执行这些命令。

为获得最好的性能,我们推荐在你的环境中符合或超过在 :ref:`figure-hwreqs`中的硬件要求。

以下最小需求支持概念验证环境,使用核心服务和几个:term:`CirrOS`实例:

  • 控制节点: 1 处理器, 4 GB 内存, 及5 GB 存储
  • 计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储

由于Openstack服务数量以及虚拟机数量的正常,为了获得最好的性能,我们推荐你的环境满足或者超过基本的硬件需求。如果在增加了更多的服务或者虚拟机后性能下降,请考虑为你的环境增加硬件资源。

为了避免混乱和为OpenStack提供更多资源,我们推荐你最小化安装你的Linux发行版。同时,你必须在每个节点安装你的发行版的64位版本。

每个节点配置一个磁盘分区满足大多数的基本安装。但是,对于有额外服务如块存储服务的,你应该考虑采用 :term:`Logical Volume Manager (LVM)`进行安装。

对于第一次安装和测试目的,很多用户选择使用 :term:`virtual machine (VM)`作为主机。使用虚拟机的主要好处有一下几点:

  • 一台物理服务器可以支持多个节点,每个节点几乎可以使用任意数目的网络接口。
  • 在安装过程中定期进行“快照”并且在遇到问题时可以“回滚”到上一个可工作配置的能力。

但是,虚拟机会降低您实例的性能,特别是如果您的 hypervisor 和/或 进程缺少硬件加速的嵌套虚拟机支持时。


安全

  

Contents

  •  

OpenStack 服务支持各种各样的安全方式,包括密码 password、policy 和 encryption,支持的服务包括数据库服务器,且消息 broker 至少支持 password 的安全方式。

为了简化安装过程,本指南只包含了可适用的密码安全。你可以手动创建安全密码,使用`pwgen <http://sourceforge.net/projects/pwgen/>`__工具生成密码或者通过运行下面的命令:

$ openssl rand -hex 10

对 OpenStack 服务而言,本指南使用``SERVICE_PASS`` 表示服务帐号密码,使用``SERVICE_DBPASS`` 表示数据库密码。

下面的表格给出了需要密码的服务列表以及它们在指南中关联关系:

密码

密码名称

描述

数据库密码(不能使用变量)

数据库的root密码

ADMIN_PASS

admin 用户密码

CEILOMETER_DBPASS

Telemetry 服务的数据库密码

CEILOMETER_PASS

Telemetry 服务的 ceilometer 用户密码

CINDER_DBPASS

块设备存储服务的数据库密码

CINDER_PASS

块设备存储服务的 cinder 密码

DASH_DBPASS

Database password for the dashboard

DEMO_PASS

demo 用户的密码

GLANCE_DBPASS

镜像服务的数据库密码

GLANCE_PASS

镜像服务的 glance 用户密码

HEAT_DBPASS

Orchestration服务的数据库密码

HEAT_DOMAIN_PASS

Orchestration 域的密码

HEAT_PASS

Orchestration 服务中``heat``用户的密码

KEYSTONE_DBPASS

认证服务的数据库密码

NEUTRON_DBPASS

网络服务的数据库密码

NEUTRON_PASS

网络服务的 neutron 用户密码

NOVA_DBPASS

计算服务的数据库密码

NOVA_PASS

计算服务中``nova``用户的密码

RABBIT_PASS

RabbitMQ的guest用户密码

SWIFT_PASS

对象存储服务用户``swift``的密码

OpenStack和配套服务在安装和操作过程中需要管理员权限。在很多情况下,服务可以与自动化部署工具如 Ansible, Chef,和 Puppet进行交互,对主机进行修改。例如,一些OpenStack服务添加root权限 sudo 可以与安全策略进行交互。更多信息,可以参考 `管理员参考<http://docs.openstack.org/ admin-guide/compute-root-wrap-reference.html>`__ 。

另外,网络服务设定内核网络参数的默认值并且修改防火墙规则。为了避免你初始化安装的很多问题,我们推荐在你的主机上使用支持的发行版本。不管怎样,如果你选择自动化部署你的主机,在进一步操作前检查它们的配置和策略。


主机网络

  

Contents

在你按照你选择的架构,完成各个节点操作系统安装以后,你必须配置网络接口。我们推荐你禁用自动网络管理工具并手动编辑你相应版本的配置文件。更多关于如何配置你版本网络信息内容,参考 documentation 。

出于管理目的,例如:安装包,安全更新, DNS`和 :term:`NTP,所有的节点都需要可以访问互联网。在大部分情况下,节点应该通过管理网络接口访问互联网。为了更好的突出网络隔离的重要性,示例架构中为管理网络使用`private address space <https://tools.ietf.org/html/rfc1918>`__ 并假定物理网络设备通过 :term:`NAT`或者其他方式提供互联网访问。示例架构使用可路由的IP地址隔离服务商(外部)网络并且假定物理网络设备直接提供互联网访问。

在提供者网络架构中,所有实例直接连接到提供者网络。在自服务(私有)网络架构,实例可以连接到自服务或提供者网络。自服务网络可以完全在openstack环境中或者通过外部网络使用:term:NAT 提供某种级别的外部网络访问。

示例架构假设使用如下网络:

  • 管理使用 10.0.0.0/24 带有网关 10.0.0.254

这个网络需要一个网关以为所有节点提供内部的管理目的的访问,例如包的安装、安全更新、 DNS,和 NTP

  • 提供者网段 不用设置。

这个网络需要一个网关来提供在环境中内部实例的访问。

您可以修改这些范围和网关来以您的特定网络设施进行工作。

网络接口由发行版的不同而有各种名称。传统上,接口使用 “eth” 加上一个数字序列命名。为了覆盖到所有不同的名称,本指南简单地将数字最小的接口引用为第一个接口,第二个接口则为更大数字的接口。

除非您打算使用该架构样例中提供的准确配置,否则您必须在本过程中修改网络以匹配您的环境。并且,每个节点除了 IP 地址之外,还必须能够解析其他节点的名称。例如,controller这个名称必须解析为 10.0.0.11,即控制节点上的管理网络接口的 IP 地址。

 

警告

重新配置网络接口会中断网络连接。我们建议使用本地终端会话来进行这个过程。

 

注解

你的发行版本默认启用了限制 firewall 。在安装过程中,有些步骤可能会失败,除非你允许或者禁用了防火墙。更多关于安全的资料,参考 OpenStack Security Guide(文档0已关闭防火墙和selinux

 


一、模板服务器安装与配置

1.网络设置

  

配置网络接口

将第一个接口配置为管理网络接口:

IP 地址: 10.0.0.11

子网掩码: 255.255.255.0 (or /24)

默认网关: 10.0.0.254

提供者网络接口使用一个特殊的配置,不分配给它IP地址。配置第二块网卡作为提供者网络:

将其中的 INTERFACE_NAME替换为实际的接口名称。例如,eth1 或者*ens224*。

    • 编辑``/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME``文件包含以下内容:

DEVICE=INTERFACE_NAME

TYPE=Ethernet

ONBOOT="yes"

BOOTPROTO="none"

重启系统以激活修改。

配置域名解析

设置节点主机名为 base

#hostnamectl set-hostname base

编辑 /etc/hosts 文件包含以下内容:

# controller

10.0.0.11       controller

 

# compute1

10.0.0.31       compute1

 

# block1

10.0.0.41       block1

 

# object1

10.0.0.51       object1

 

# object2

10.0.0.52       object2

 

警告

一些发行版本在``/etc/hosts``文件中添加了附加条目解析实际主机名到另一个IP地址如 127.0.1.1。为了防止域名解析问题,你必须注释或者删除这些条目。不要删除127.0.0.1条目。

 

 

2.网络时间协议(NTP)

  

安装软件包:

# yum install chrony

启动 NTP 服务并将其配置为随系统启动:

# systemctl enable chronyd.service

# systemctl start chronyd.service

3OpenStack包

  

启用OpenStack库

  • 在CentOS中, ``extras``仓库提供用于启用 OpenStack 仓库的RPM包。 CentOS 默认启用``extras``仓库,因此你可以直接安装用于启用OpenStack仓库的包。(现有pike,queens和rockey三个版本,选择其中一个进行安装)

#yum install centos-release-openstack-pike|queens|rocky

修改yum

#cd /etc/yum.repos.d

#vi CentOS-OpenStack-XXX.repo(XXX替换为相应版本: pike|queens|rocky,下面pike版为例进行修改或添加)

 [centos-openstack-pike]

name=CentOS-7 - OpenStack pike ftpserver

#baseurl=http://mirror.centos.org/centos/7/cloud/$basearch/openstack-ocata/

baseurl=http://10.10.45.193/ centos/7/cloud/$basearch/openstack-pike/

#vi CentOS-Ceph-Jewel|hammer|luminous.repo(对应修改)

[centos-ceph-jewel]

name=CentOS-$releasever - Ceph Jewel ftpserver

#baseurl=http://mirror.centos.org/centos/$releasever/storage/$basearch/ceph-jewel/

baseurl=http://10.10.45.193/ centos/$releasever/storage/$basearch/ceph-jewel/

#vi CentOS-QEMU-EV.repo

…[centos-qemu-ev]

name=CentOS-$releasever - QEMU EV ftpserver

#baseurl=http://mirror.centos.org/centos/$releasever/virt/$basearch/kvm-common/

baseurl=http://10.10.45.193/ centos/$releasever /virt/$basearch/kvm-common/

#yum clean all

验证

#yum repolist

Determining fastest mirrors

repo id                repo name           status

base/x86_64        CentOS-7 - Base -ftpserver    9,591

centos-ceph-jewel/x86_64    CentOS-7 - Ceph Jewel ftpserver  53

centos-openstack-ocata/x86_64    CentOS-7 - OpenStack ocata ftpserver    1,559+2

centos-qemu-ev/x86_64            CentOS-7 - QEMU EV ftpserver                 35

extras/x86_64                    CentOS-7 - Extras - ftpserver               278

updates/x86_64                   CentOS-7 - Updates -ftpserver             1,041

repolist: 12,557

 

完成安装

  1. 在主机上升级包:

# yum upgrade

 

注解

如果更新了一个新内核,重启主机来使用新内核。

  1. 安装 OpenStack 客户端:

# yum install python-openstackclient

  1. 安装 openstack-selinux 软件包以便自动管理 OpenStack 服务的安全策略:

# yum install openstack-selinux

 

二、制作各节点服务器

克隆模板服务器,分别命名为controller,compute1,block1,object1,object2。

然后完成以下操作。

1.控制节点

配置网络接口

修改网络配置:将第一个接口配置为管理网络接口:

IP 地址: 10.0.0.11

子网掩码: 255.255.255.0 (or /24)

默认网关: 10.0.0.254

    • 编辑``/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME``文件包含以下内容:
    • IPADDR=10.0.0.11

配置主机名

设置节点主机名为 controller。

#hostnamectl set-hostname controller

 

修改NTP服务器配置

编辑 /etc/chrony.conf 文件,按照你环境的要求,对下面的键进行修改:

server 10.10.45.193 iburst

 

 为了允许其他节点可以连接到控制节点的 chrony 后台进程,在``/etc/chrony.conf`` 文件添加下面的键:

allow 10.0.0.0/24

重启系统以激活修改。

计算节点

  

配置网络接口

修改网络配置:将第一个接口配置为管理网络接口:

IP 地址: 10.0.0.31

子网掩码: 255.255.255.0 (or /24)

默认网关: 10.0.0.254

    • 编辑``/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME``文件包含以下内容:
    • IPADDR=10.0.0.31

配置主机名

设置节点主机名为 compute1。

#hostnamectl set-hostname compute1

 

修改NTP服务配置

编辑``/etc/chrony.conf`` 文件并注释除``server`` 值外的所有内容。修改它引用控制节点:

server controller iburst 

重启系统以激活修改。

块存储节点(可选)

  

Contents

配置网络接口

修改网络配置:将第一个接口配置为管理网络接口:

IP 地址: 10.0.0.41

子网掩码: 255.255.255.0 (or /24)

默认网关: 10.0.0.254

    • 编辑``/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME``文件包含以下内容:
    • IPADDR=10.0.0.41

配置主机名

设置节点主机名为 block1。

#hostnamectl set-hostname block1

 

修改NTP服务配置

编辑``/etc/chrony.conf`` 文件并注释除``server`` 值外的所有内容。修改它引用控制节点:

server controller iburst 

重启系统以激活修改。

 

对象存储节点(可选)

  

配置网络接口

修改网络配置:将第一个接口配置为管理网络接口:

IP 地址: 10.0.0.51

子网掩码: 255.255.255.0 (or /24)

默认网关: 10.0.0.254

    • 编辑``/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME``文件包含以下内容:
    • IPADDR=10.0.0.51

配置主机名

设置节点主机名为 object1。

#hostnamectl set-hostname object1

 

修改NTP服务配置

编辑``/etc/chrony.conf`` 文件并注释除``server`` 值外的所有内容。修改它引用控制节点:

server controller iburst 

重启系统以激活修改。

第二个节点

配置网络接口

修改网络配置:将第一个接口配置为管理网络接口:

IP 地址: 10.0.0.52

子网掩码: 255.255.255.0 (or /24)

默认网关: 10.0.0.254

    • 编辑``/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME``文件包含以下内容:
    • IPADDR=10.0.0.52

配置主机名

设置节点主机名为 object2。

#hostnamectl set-hostname object2

 

修改NTP服务配置

编辑``/etc/chrony.conf`` 文件并注释除``server`` 值外的所有内容。修改它引用控制节点:

server controller iburst 

重启系统以激活修改。

验证连通性

  

Contents

  1. 从*controller*节点,测试能否连接到 Internet:ping 10.10.45.193
  2.  controller 节点,测试到*compute* 节点管理网络是否连通:ping compute1

# ping -c 4 compute1

PING compute1 (10.0.0.31) 56(84) bytes of data.

64 bytes from compute1 (10.0.0.31): icmp_seq=3 ttl=64 time=0.203 ms

64 bytes from compute1 (10.0.0.31): icmp_seq=4 ttl=64 time=0.202 ms

 

--- compute1 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3000ms

rtt min/avg/max/mdev = 0.202/0.217/0.263/0.030 ms

3. compute 节点,测试能否连接到 Internet:ping 10.10.45.193

4. compute 节点,测试到*controller* 节点管理网络是否连通:

# ping -c 4 controller

PING controller (10.0.0.11) 56(84) bytes of data.

64 bytes from controller (10.0.0.11): icmp_seq=1 ttl=64 time=0.263 ms

64 bytes from controller (10.0.0.11): icmp_seq=2 ttl=64 time=0.202 ms

64 bytes from controller (10.0.0.11): icmp_seq=3 ttl=64 time=0.203 ms

64 bytes from controller (10.0.0.11): icmp_seq=4 ttl=64 time=0.202 ms

 

--- controller ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3000ms

rtt min/avg/max/mdev = 0.202/0.217/0.263/0.030 ms

 验证NTP服务器

  1. 在控制节点上执行这个命令:

# chronyc sources

  210 Number of sources = 2

  MS Name/IP address         Stratum Poll Reach LastRx Last sample

  ===============================================================================

   ^* 10.10.45.193                    2   6   177    46    +17us[  -23us] +/-   68ms

 Name/IP address 列的内容应显示NTP服务器的主机名或者IP地址。在 S 列的内容应该在NTP服务目前同步的上游服务器前显示 *

  1. 在所有其他节点执行相同命令:

# chronyc sources

  210 Number of sources = 1

  MS Name/IP address         Stratum Poll Reach LastRx Last sample

  ===============================================================================

  ^* controller                    3    9   377   421    +15us[  -87us] +/-   15ms

 Name/IP address 列的内容应显示控制节点的主机名。

 

、在controller节点完成以下操作

SQL数据库

  

安全并配置组件

  1. 安装软件包:

# yum install mariadb mariadb-server python2-PyMySQL

  1. 创建并编辑 /etc/my.cnf.d/openstack.cnf,然后完成如下动作:
    •  [mysqld] 部分,设置 ``bind-address``值为控制节点的管理网络IP地址以使得其它节点可以通过管理网络访问数据库:

[mysqld]

...

bind-address = 10.0.0.11

default-storage-engine = innodb

innodb_file_per_table=on

max_connections = 4096

collation-server = utf8_general_ci

character-set-server = utf8

 

完成安装

  1. 启动数据库服务,并将其配置为开机自启:

# systemctl enable mariadb.service

# systemctl start mariadb.service

  1. 为了保证数据库服务的安全性,运行``mysql_secure_installation``脚本。特别需要说明的是,为数据库的root用户设置一个适当的密码。

# mysql_secure_installation

建议密码设置的易记

 

消息队列

  

安全并配置组件

  1. 安装包:

# yum install rabbitmq-server

  1. 启动消息队列服务并将其配置为随系统启动:

# systemctl enable rabbitmq-server.service

# systemctl start rabbitmq-server.service

  1. 添加 openstack 用户:

# rabbitmqctl add_user openstack RABBIT_PASS

Creating user "openstack" ...

...done.

用合适的密码替换 RABBIT_DBPASS

  1. 给``openstack``用户配置写和读权限:

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

Setting permissions for user "openstack" in vhost "/" ...

...done.


Memcached

  

并配置组件

安装软件包:

# yum install memcached python-memcached

编辑/etc/sysconfig/memcached 文件,完成如下操作:

OPTIONS=”-l 127.0.0.0,::1,controller”

注:修改当前存在的这一行:

OPTIONS=”-l 127.0.0.0,::1”

完成安装

  • 启动Memcached服务,并且配置它随机启动。
  • # systemctl enable memcached.service

# systemctl start memcached.service

 

 

 

 

 

安装Etcd

并配置组件

安装软件包:

# yum install etcd

编辑 /etc/etcd/etcd.conf文件并设置 ETCD_INITIAL_CLUSTER, ETCD_INITIAL_ADVERTISE_PEER_URLS,ETCD_ADVERTISE_CLIENT_URLS, ETCD_LISTEN_CLIENT_URLS 指向控制节点的管理ip地址,使得其他节点可以通过管理网络访问: 

#[Member]

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"

ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"

ETCD_NAME="controller"

#[Clustering]

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"

ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"

ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"

ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"

ETCD_INITIAL_CLUSTER_STATE="new"

完成安装

启动服务:

# systemctl enable etcd

# systemctl start etcd

 

 

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页