技术文章

了解最新公司动态及行业资讯

当前位置:首页>技术文章

云服务器基础架构服务器Cloudstack快速安装演示教程

时间:2024-01-31   访问量:1148

快速安装指南

概述

我们到底在建造什么?

基础架构即服务 (IaaS) 云的构建可能是一件复杂的事情,而且 根据定义,它们有太多的选择,这往往会导致混淆 即使是经验丰富的管理员,他们也是构建云平台的新手。这 此 Runbook 的目标是提供一组简单的说明,以 让你以最少的麻烦启动并运行CloudStack。

警告

本指南仅用于构建CloudStack测试/演示云。 因为已经做出了某些网络选择,让您启动并运行 最短的时间。本指南不能用于生产设置。

警告

如果您没有物理服务器可以“玩”,您可以使用例如Oracle VirtualBox 6.1+。 要求是在 VM 的“设置”的“系统”页面上启用“启用嵌套 VT-x/AMD-V”作为扩展功能。 您需要创建“Red Hat(64 位)”类型和 40+GB 磁盘空间的 VM。 VM 中需要有 1 个 NIC,桥接到笔记本电脑/台式机的 NIC (wifi 或有线 NIC,无关紧要),并最好设置 Adapter Type=“Paravirtualized Network (virtio-net)” 以获得更好的网络性能(VM 的设置、网络部分、Adapter1、 展开“高级”)。确保 VM 上的 NIC 配置为混杂(在 VirtualBox 中, 选择“全部允许”或仅选择“允许虚拟机”作为混杂模式),以便它可以传递来自 CloudStack的系统VM到网关。此外,请确保您允许足够的内存 (6G+) 和 足够的 CPU 内核 (3+) 用于演示目的。

流程的高级概述

本指南将重点介绍如何在CentOS上使用KVM构建CloudStack云 7.9 使用 VLAN 进行 NFS 存储和第 2 层隔离, (扁平家庭网络也可用于此目的)和单件 硬件(服务器/虚拟机)

KVM,即基于内核的虚拟机是一种虚拟化技术,用于 Linux 内核。KVM 支持在带有硬件的处理器上实现原生虚拟化 虚拟化扩展。

先决条件

若要完成本指南,需要以下项目:

  1. 至少一台支持并已启用硬件虚拟化的计算机。

  2. CentOS 7.9 最低x86_64在可启动介质上安装 ISO

  3. 网关位于(例如)xxx.xxx.xxx.1 的 /24 网络,不需要 DHCP 在这个网络上,任何一台运行CloudStack的计算机都不会有一个 动态地址。同样,这样做是为了简单起见。

环境

在开始之前,您需要在安装之前准备环境 CloudStack的。我们现在将介绍准备步骤。

操作系统

使用 CentOS 7.9.2009 最低x86_64安装 ISO,您需要安装 硬件上的 CentOS 7。默认值通常是可以接受的 安装 - 但请确保配置 IP 地址/参数,以便以后可以根据需要安装 来自互联网的软件包。稍后,我们将根据需要更改网络配置。

安装完成后,您将需要访问您的 服务器 - 通过 SSH。

在开始之前更新系统总是明智的:

# yum -y upgrade

配置网络

在继续之前,请确保“bridge-utils”和“net-tools”已安装并可用:

# yum install bridge-utils net-tools -y

通过控制台或 SSH 连接时,您应该以 root 身份登录。我们将从创建开始 Cloudstack将用于联网的桥接器。创建并打开 /etc/sysconfig/network-scripts/ifcfg-cloudbr0 并添加以下设置:

注意

IP 寻址 - 在本文档中,我们假设您将拥有 一个用于CloudStack实现的/24网络。这可以是任何 RFC 1918 网络。但是,我们假设您将匹配计算机地址 我们正在使用。因此,我们可以使用 172.16.10.2,因为您可能是 例如,使用 192.168.55.0/24 网络,您将使用 192.168.55.2。另一个例子 如果您在 192.168.1.0/24 网络上的本地家庭网络上使用 VirtualBox - 在这种情况下,您可以使用家庭范围中的单个可用 IP 地址(此 VM 的 VirtualBox NIC) 应处于桥接模式才能正常运行)

DEVICE=cloudbr0TYPE=BridgeONBOOT=yesBOOTPROTO=staticIPV6INIT=noIPV6_AUTOCONF=noDELAY=5IPADDR=172.16.10.2 #(or e.g. 192.168.1.2)GATEWAY=172.16.10.1 #(or e.g. 192.168.1.1 - this would be your physical/home router)NETMASK=255.255.255.0DNS1=8.8.8.8DNS2=8.8.4.4STP=yesUSERCTL=noNM_CONTROLLED=no

保存配置并退出。然后,我们将编辑 NIC,使其 利用了这座桥。

打开 NIC 的配置文件(例如 /etc/sysconfig/network-scripts/ifcfg-eth0) 并按如下方式编辑它:

注意

接口名称 (eth0) 仅用作示例。将 eth0 替换为默认以太网接口名称。

TYPE=EthernetBOOTPROTO=noneDEFROUTE=yesNAME=eth0DEVICE=eth0ONBOOT=yesBRIDGE=cloudbr0

注意

如果您的物理 nic(在我们的示例中为 eth0)已经 设置 在遵循本指南之前,请确保没有重复 在 /etc/config/network-scripts/ifcfg-cloudbr0 的 IP 配置和 /etc/sysconfig/network-scripts/ifcfg-eth0 将导致失败 将阻止网络启动。基本上,IP配置 的 eth0 应该移动到网桥中,eth0 将被添加到网桥中。

现在我们已经正确设置了配置文件,我们需要运行一些 启动网络的命令:

# systemctl disable NetworkManager; systemctl stop NetworkManager# systemctl enable network# reboot

主机名

CloudStack要求主机名设置正确。如果您使用了默认的 选项,则您的主机名当前设置为 localhost.localdomain. 为了测试这一点,我们将运行:

# hostname --fqdn

此时,它可能会返回:

localhost

为了纠正这种情况 - 我们将通过编辑 /etc/hosts 来设置主机名 文件,使其遵循与此示例类似的格式(请记住将 带有您的 IP 的 IP,例如 192.168.1.2):

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6172.16.10.2 srvr1.cloud.priv

修改该文件后,请使用以下命令重新启动网络:

# systemctl restart network

现在用

# hostname --fqdn

并确保它返回 FQDN 响应

SELinux

目前,为了使CloudStack正常工作,SELinux必须设置为 允许或禁用。我们既想为将来的启动配置它,又想在 当前正在运行的系统。

要将 SELinux 配置为在正在运行的系统中是宽松的,我们需要运行 以下命令:

# setenforce 0

为了确保它保持该状态,我们需要配置文件 /etc/selinux/config 来反映允许状态,如下例所示:

# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=permissive# SELINUXTYPE= can take one of these two values:# targeted - Targeted processes are protected,# mls - Multi Level Security protection.SELINUXTYPE=targeted

NTP的

NTP 配置是将所有时钟保留在云中的必要条件 服务器同步。但是,默认情况下不安装 NTP。因此,我们将安装 并在此阶段配置 NTP。安装完成方式如下:

# yum -y install ntp

实际的默认配置对于我们的目的来说很好,所以我们只需要 启用它并将其设置为在启动时启动,如下所示:

# systemctl enable ntpd# systemctl start ntpd

配置CloudStack软件包仓库

我们需要配置机器来使用CloudStack软件包仓库。

注意

Apache CloudStack官方版本是源代码。因此,有 没有可用的“官方”二进制文件。完整的安装指南介绍了如何操作 获取源代码并生成 RPM 和 yum 存储库。这 guide 试图让事情尽可能简单,因此我们使用 社区提供的 yum 存储库之一。此外,这个例子 假设安装了4.18.1.0 Cloudstack - 根据需要替换版本。

要添加CloudStack仓库,请创建/etc/yum.repos.d/cloudstack.repo和 插入以下信息。

[cloudstack]
name=cloudstack
baseurl=http://download.cloudstack.org/centos/$releasever/4.18/
enabled=1
gpgcheck=0

NFS系统

我们的配置将使用 NFS 作为主存储和辅助存储。 我们将继续为此设置两个 NFS 共享。我们将 首先安装 nfs-utils。

# yum -y install nfs-utils

现在,我们需要将 NFS 配置为提供两个不同的共享。这被处理了 在 /etc/exports 文件中。您应确保它包含以下内容:

/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/export/primary *(rw,async,no_root_squash,no_subtree_check)

您会注意到,我们指定了两个(尚)不存在的目录 系统。我们将继续创建这些目录并设置权限 使用以下命令适当地对它们进行操作:

# mkdir -p /export/primary# mkdir /export/secondary

CentOS 7.x 发行版本默认使用 NFSv4。NFSv4 需要该域设置 所有客户端上的匹配项。在我们的例子中,域是 cloud.priv,因此请确保 /etc/idmapd.conf 中的域设置未添加注释,设置如下:

Domain = cloud.priv

现在,您需要在文件底部添加配置值 /etc/sysconfig/nfs(或只是取消注释并设置它们)

LOCKD_TCPPORT=32803LOCKD_UDPPORT=32769MOUNTD_PORT=892RQUOTAD_PORT=875STATD_PORT=662STATD_OUTGOING_PORT=2020

为简单起见,我们需要禁用防火墙,以便它不会阻止连接。

注意

CentOS7 上的防火墙配置超出了此范围 指导。

为此,只需使用以下两个命令:

# systemctl stop firewalld# systemctl disable firewalld

我们现在需要将 nfs 服务配置为在启动时启动并实际启动 通过执行以下命令在主机上执行:

# systemctl enable rpcbind# systemctl enable nfs# systemctl start rpcbind# systemctl start nfs

管理服务器安装

我们将安装CloudStack管理服务器和周围的工具。

数据库安装和配置

我们将从安装 MySQL 开始并配置一些选项以确保它 与CloudStack一起运行良好。

首先,由于 CentOS 7 不再提供 MySQL 二进制文件,我们需要添加一个 MySQL 社区仓库, 它将提供 MySQL 服务器(以及稍后的 Python MySQL 连接器):

# yum -y install wget# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm# rpm -ivh mysql-community-release-el7-5.noarch.rpm

通过运行以下命令进行安装:

# yum -y install mysql-server

在撰写本指南时,这应该安装 MySQL 5.x。 现在安装了 MySQL,我们需要对 /etc/my.cnf 中。具体来说,我们需要将以下选项添加到 [mysqld] 部分:

innodb_rollback_on_timeout=1innodb_lock_wait_timeout=600max_connections=350log-bin=mysql-binbinlog-format = 'ROW'

注意

对于 Ubuntu 16.04 及更高版本,请确保在文件中指定用于二进制日志记录。根据您的数据库设置进行设置。server-id.cnfserver-id

server-id=source-01innodb_rollback_on_timeout=1innodb_lock_wait_timeout=600max_connections=350log-bin=mysql-binbinlog-format = 'ROW'

现在MySQL已经正确配置,我们可以启动它并将其配置为 启动时启动,如下所示:

# systemctl enable mysqld# systemctl start mysqld

MySQL 连接器安装

从 MySQL 社区存储库安装 Python MySQL 连接器(我们之前已添加):

# yum -y install mysql-connector-python

请注意,以前需要的库现在已经与CloudStack捆绑在一起了 管理服务器,不再需要单独安装。mysql-connector-java

安装

我们现在要安装管理服务器。为此,我们执行 以下命令:

# yum -y install cloudstack-management

CloudStack 4.18需要Java 11 JRE。安装管理服务器 将自动安装 Java 11,但最好明确确认 Java 11 是选定的/活动的(如果您已经安装了以前的 Java 版本):

$ alternatives --config java

确保选中 Java 11。

安装应用程序本身后,我们现在可以设置数据库,我们将这样做 使用以下命令和选项:

# cloudstack-setup-databases cloud:password@localhost --deploy-as=root

当这个过程完成时,你应该会看到一条消息,比如“CloudStack有 已成功初始化数据库。

现在数据库已经创建完毕,我们可以进行最后一步的设置 通过发出以下命令启动管理服务器:

# cloudstack-setup-management

系统模板设置

CloudStack使用许多系统虚拟机来提供访问的功能。 虚拟机的控制台,提供各种网络服务,以及 管理存储的各个方面。

我们需要下载 systemVM 模板并将其部署到辅助存储。 我们将使用本地路径 (/export/secondary),因为我们已经在 NFS 服务器本身上, 否则,您需要将二级存储挂载到临时挂载点,然后使用 该装入点,而不是 /export/secondary 路径。

执行 followint 脚本:

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloudstack.org/systemvm/4.18/systemvmtemplate-4.18.1-kvm.qcow2.bz2 -h kvm -F

管理服务器的设置到此结束。我们仍然需要配置 CloudStack,但是我们会在设置好虚拟机管理程序后再这样做。

KVM 设置和安装

先决条件

我们还使用管理服务器作为计算节点,这 意味着我们已经执行了许多先决条件步骤,当 设置管理服务器,但为了清楚起见,我们将在此处列出它们。 这些步骤是:

配置网络

主机名

SELinux

NTP的

配置CloudStack软件包仓库

您现在不需要对管理服务器执行此操作,因为我们已经这样做了。

安装

只需一个命令即可安装 KVM 代理,但 之后,我们需要配置一些东西。我们还需要安装 EPEL 存储库。

# yum -y install epel-release# yum -y install cloudstack-agent

KVM配置

我们有两个不同的 KVM 部分需要配置,libvirt 和 QEMU。

QEMU配置

我们需要编辑 QEMU VNC 配置。这是通过编辑 /etc/libvirt/qemu.conf 完成的 并确保以下行存在且未注释。

vnc_listen=0.0.0.0

Libvirt 配置

CloudStack使用libvirt来管理虚拟机。因此,这是至关重要的 libvirt 配置正确。Libvirt 是 cloud-agent 的依赖项 并且应该已经安装。

  1. 即使我们使用的是单个主机,也建议执行以下步骤 让 Faimilar 满足一般要求。 为了让实时迁移正常工作,libvirt 必须监听不安全的情况 TCP 连接。我们还需要关闭 libvirts 尝试使用多播 DNS 广告。这两个设置都在 /etc/libvirt/libvirtd.conf 中

    设置以下参数:

    listen_tls = 0listen_tcp = 1tcp_port = "16509"auth_tcp = "none"mdns_adv = 0
  2. 在 libvirtd.conf 中打开“listen_tcp”是不够的,我们必须改变 参数,我们还需要修改 /etc/sysconfig/libvirtd:

    取消注释以下行:

    #LIBVIRTD_ARGS="--listen"
  3. 重新启动 libvirt

    # systemctl restart libvirtd

KVM配置完成

为了完整起见,您应该检查 KVM 是否在您的 计算机(您应该看到kvm_intel或kvm_amd模块显示为已加载):

# lsmod | grep kvmkvm_intel              55496  0kvm                   337772  1 kvm_intelkvm_amd # if you are in AMD cpu

KVM的安装和配置到此结束,现在我们将进行 使用CloudStack UI来实际配置我们的云。

配置

UI 访问

要访问CloudStack的Web界面,只需将浏览器指向 您机器的 IP 地址,例如 http://172.16.10.2:8080/client 默认用户名为“admin”,默认密码为“password”。

设置区域

区域类型

区域是CloudStack中最大的组织实体 - 我们将 创建一个。

警告

我们将配置一个高级区域,以便我们同时访问两者 云的“管理”网络以及“公共”网络 - 我们将这样做 通过对两者使用相同的 CIDR(但其不同部分,即不同的 IP 范围) “管理”(Pod)和“公共”网络 - 这是你永远不会做的事情 在生产中 - 这仅出于本指南中的测试目的而严格执行!

单击“继续安装”以继续 - 您将被要求更改您的 root 管理员密码 - 请这样做,然后单击确定。

将弹出一个新的区域向导。请选择“高级”(不要勾选“安全组”),然后单击“下一步”。

区域详细信息

在此页面上,我们输入DNS服务器所在的位置。 CloudStack区分内部DNS和公共DNS。内部 DNS 是 假定能够解析仅限内部的主机名,例如 NFS 服务器的 DNS 名称。向来宾 VM 提供公共 DNS 以进行解析 公共 IP 地址。您可以为这两种类型输入相同的 DNS 服务器,但 如果这样做,则必须确保内部和公共 IP 地址 可以路由到 DNS 服务器。在我们的特定情况下,我们不会使用任何名称 对于内部资源,我们确实会将它们设置为相同 外部资源,以免将 NamerServer 设置添加到我们的列表中 要求。

  1. 名称 - 我们将此设置为云的永远描述性的“Zone1”。

  2. IPv4 DNS 1 - 我们将为我们的云设置此值。8.8.8.8

  3. IPV4 DNS 2 - 我们将为我们的云设置此值。8.8.4.4

  4. 内部 DNS1 - 我们还将为我们的云设置此值。8.8.8.8

  5. 内部 DNS2 - 我们还将为我们的云设置此值。8.8.4.4

  6. 虚拟机管理程序 - 这将是此区域中使用的主要虚拟机管理程序。在我们的 情况下,我们将选择 KVM。

单击“下一步”继续。

物理网络

Cloudstack支持多种网络隔离方法。这 默认 VLAN 选项足以满足我们的目的。为了改进 性能和/或安全性,Cloudstack允许不同的流量类型运行 通过连接到虚拟机管理程序的专用网络接口卡。 我们不会在这里进行任何更改,默认设置很好 对于Cloudstack的这个演示安装。

单击“下一步”继续。

公共交通

在普通/公有云安装中,必须为此目的分配可公开访问的 IP, 但由于我们只是部署一个演示/测试环境,我们将使用我们本地网络的一部分(例如,从 .11 到 .20 或其他自由范围)

  1. 网关 - 我们将使用 #or 您的物理网关,例如 192.168.1.1172.16.10.1

  2. 网络掩码 - 我们将使用255.255.255.0

  3. VLAN/VNI - 我们将这个留空

  4. 起始 IP - 我们将使用 #(或例如 192.168.1.11)172.16.10.11

  5. 结束 IP - 我们将使用 #(或例如 192.168.1.20)172.16.10.20

单击“添加”以添加范围。

单击“下一步”继续。

Pod 配置

在这里,我们将为Cloudstack的内部管理流量配置一个范围 - CloudStack 将此范围的 IP 分配给系统 VM。这也将成为我们本地网络的一部分 (即本地家庭网络的不同部分,从 .21 到 .30),以及其余的 IP 参数 (netmaks/gateway) 与用于公共流量相同。

  1. Pod 名称 - 我们将用于我们的云。Pod1

  2. 保留系统网关 - 我们将使用 #(或任何物理网关,例如 192.168.1.1)172.16.10.1

  3. 保留系统网络掩码 - 我们将使用255.255.255.0

  4. 启动保留的系统 IP - 我们将使用 #(或例如 192.168.1.21)172.16.10.21

  5. 结束保留的系统 IP - 我们将使用 #(或例如 192.168.1.30)172.16.10.30

单击“下一步”继续。

访客流量

接下来,我们将为来宾虚拟机配置一系列 VLAN ID。

范围 - 就足够了。100200

单击“下一步”继续。

多个集群可以属于一个 Pod,多个主机可以属于一个 簇。我们将有一个集群,我们必须为我们的集群命名。

进入Cluster1

单击“下一步”继续。

主机

在这里,我们指定了虚拟机管理程序主机的详细信息。在我们的例子中, 我们在将要使用的同一台计算机上运行管理服务器 作为虚拟机管理程序。

  1. Hostname - we’ll use the IP address since we didn’t set up a DNS server for name resolution. (this is your local server, so swap with the correct IP)172.16.10.2

  2. Username - we’ll use root

  3. Password - enter the operating system password for the root user

Click “Next” to continue.

Primary Storage

With your cluster now setup - you should be prompted for primary storage information. Enter the following values in the fields:

  1. Name - We’ll use Primary1

  2. Scope - We’ll use even though either is fine in this case. With “Zone” scope, all hosts in all clusters would have access to this storage pool.Cluster

  3. Protocol - We’ll use NFS

  4. Server - We’ll be using the IP address (this is your local server, so swap with the correct IP)172.16.10.2

  5. Path - Well define as the path we are using/export/primary

Click “Next” to continue.

Secondary Storage

You’ll be prompted for secondary storage information - populate it as follows:

  1. 提供程序 - 选择NFS

  2. 名字-Secondary1

  3. NFS 服务器 - 我们将使用 IP 地址(这是您的本地服务器,因此请与正确的 IP 交换)172.16.10.2

  4. 路径 - 我们将使用/export/secondary

单击“下一步”继续。

现在,单击“启动区”,您的云应该开始设置 - 可能需要 几分钟的设置完成。

完成后,单击“启用区域”,您的区域将准备就绪。

就是这样,你已经完成了Apache CloudStack演示云的安装。

要检查CloudStack安装的健康状况,请转到基础设施 - >系统VM并刷新 UI - 应不时看到“S-1-VM”和“V-2-VM”系统虚拟机(SSVM 和 CPVM)处于 State=Running 和 Agent State=Up 中 之后,你可以进入图像 –>模板,点击名为“CentOS 5.5(64位)无GUI (KVM)”的内置模板, 然后单击“区域”选项卡 - 并观察状态如何从下载的百分之几到完全下载, 之后,“状态”将显示为“下载完成”,“就绪”列将显示“是”。 完成此操作后,你将能够从此模板部署 VM。


上一篇:Microsoft Authenticator 安卓手机 绑定office365账户失败的解决方法:改用一次性临时密码成功解决问题

下一篇:没有了!



在线咨询

点击这里给我发消息 添加QQ好友

点击这里给我发消息 QQ在线沟通

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部