官方文档:http://docs.cloudstack.apache.org/en/4.16.1.0/quickinstallationguide/qig.html
注意:管理服务 和 计算节点 最好不要安装到同一个操作系统中,容易出错和体验功能不成功
NFS存储 以及 mysql 服务 可以分别单独部署,这里做演示,所以都部署在master(管理服务)中
本次演示安装 使用的是 cloudstack 4.16.1.0 版本,为VMware虚拟机环境中安装,基础系统 CentOS 7.9 最小化版本
| 名称 | 配置 |
|---|---|
| master (管理服务) | 4核4G内存 100G 硬盘 (2核应该也可以) |
| agent (计算节点) | 4核8G内存 200G 硬盘 (至少双核cpu,内存不要小于4G,硬盘尽量大一点) |
1、master 和 agent 基础准备工作
1.1 更新系统
$ yum -y upgrade
1.2 配置网络
确保bridge-utils和net-tools的安装以及可用:
$ yum install bridge-utils net-tools -y
$ vi /etc/sysconfig/network-scripts/ifcfg-cloudbr0
DEVICE=cloudbr0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPV6INIT=no
IPV6_AUTOCONF=no
DELAY=5
IPADDR=192.168.23.156 #(agent 为 192.168.23.157,根据你自己的网络环境配置)
GATEWAY=192.168.23.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=8.8.4.4
STP=yes
USERCTL=no
NM_CONTROLLED=no
$ vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=cloudbr0
禁用网络管理器
$ systemctl disable NetworkManager; systemctl stop NetworkManager
# 设置网络开机自启,下面这个可能会报错,此时使用 /sbin/chkconfig network on
$ systemctl enable network
# 重启
$ reboot
1.3 设置主机名称
# 查看主机名
$ hostname --fqdn
localhost
$ vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.23.156 master.cloud.priv # (agent 设置为 192.168.23.157 agent.cloud.priv)
# 再次查看主机名
$ hostname --fqdn
# 显示 master.cloud.priv 或 agent.cloud.priv
1.4 设置 SELinux
$ setenforce 0
$ vi /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
1.5 设置 NTP
# 安装
$ yum -y install ntp
# 启动和设置开机自启
$ systemctl enable ntpd
$ systemctl start ntpd
1.6 配置 CloudStack 源
$ vi /etc/yum.repos.d/cloudstack.repo
# 写入 如下内容,注意需要跟你要安装的 CloudStack 版本对应
[cloudstack]
name=cloudstack
baseurl=http://download.cloudstack.org/centos/$releasever/4.16/
enabled=1
gpgcheck=0
到此 master 和 agent 的基础准备工作已经做完,如在虚拟机中设置的 注意这里最好 保存一下快照
2、master 配置
2.1 NFS 安装
# 安装nfs工具
$ yum -y install nfs-utils
配置NFS服务的 主存储 primary 和 二级存储 secondary
$ vi /etc/exports
/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/export/primary *(rw,async,no_root_squash,no_subtree_check)
创建 主存储 primary 和 二级存储 secondary 目录
$ mkdir -p /export/primary
$ mkdir /export/secondary
CentOS 7.x 版本默认使用 NFSv4。 NFSv4 需要该域设置 匹配所有客户端。 在我们的例子中,域是 cloud.priv,因此请确保 /etc/idmapd.conf 中的域设置未注释,设置如下:
$ vi /etc/idmapd.conf
# 将下面的配置 修改为未注释
Domain = cloud.priv
现在您需要在文件底部添加配置值 /etc/sysconfig/nfs (或者只是取消注释并设置它们)
$ vi /etc/sysconfig/nfs
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
2.2 防火墙设置
为简单起见,我们需要禁用防火墙,这样它就不会阻止连接。
备注:这里是用于演示,所以直接关闭防火墙,实际部署时,请配置防火墙 打开对应的端口服务即可
$ systemctl stop firewalld
$ systemctl disable firewalld
2.3 配置nfs服务启动和开机自启
$ systemctl enable rpcbind
$ systemctl enable nfs
$ systemctl start rpcbind
$ systemctl start nfs
2.4 安装 CloudStack 管理服务器
2.4.1 数据库安装和配置
由于 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 配置
$ vi /etc/my.cnf
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
启动MySQL并设置为开启自启
$ systemctl enable mysqld
$ systemctl start mysqld
2.4.2 MySQL 连接器安装
从 MySQL 社区存储库(我们之前添加)安装 Python MySQL 连接器:
$ yum -y install mysql-connector-python
备注:以前需要 mysql-connector-java库现在与 CloudStack 捆绑在一起 管理服务器,不再需要单独安装。
2.4.3 安装管理服务器
$ yum -y install cloudstack-management
CloudStack 4.16 需要 Java 11 JRE。 安装管理服务器 将自动安装 Java 11,但最好明确确认 Java 11 是选定/活动的(如果您已经安装了以前的 Java 版本):
$ alternatives --config java
确保选择 Java 11。
安装应用程序本身后,我们现在可以设置数据库,我们将执行 使用以下命令和选项:
$ cloudstack-setup-databases cloud:password@localhost --deploy-as=root
此过程完成后,您应该会看到类似”CloudStack has successfully initialized the database.”的描述
2.4.4 启动管理服务器
$ cloudstack-setup-management
2.4.5 系统模板设置
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloudstack.org/systemvm/4.16/systemvmtemplate-4.16.1-kvm.qcow2.bz2 -h kvm -F
上面的系统模板有时候会下载比较慢,也可以使用如下方式
先从 http://download.cloudstack.org/systemvm/4.16/systemvmtemplate-4.16.1-kvm.qcow2.bz2 下载为文件,再上传到 服务器,然后再执行下面的命令:
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -f systemvmtemplate-4.16.1-kvm.qcow2.bz2 -h kvm -F
至此,master 管理服务 安装工作完成,最好此时也保存一下快照
3、agent 计算节点安装
3.1 KVM 设置和安装
只需一个命令即可轻松安装 KVM 代理,但 之后我们需要配置一些东西。 我们还需要安装 EPEL 存储库。
$ yum -y install epel-release
$ yum -y install cloudstack-agent
3.2 KVM 配置
我们有两个不同的 KVM 部分需要配置,libvirt 和 QEMU。
3.2.1 QEMU 配置
$ vi /etc/libvirt/qemu.conf
vnc_listen=0.0.0.0
3.2.2 Libvirt 配置
CloudStack 使用 libvirt 来管理虚拟机。 因此至关重要 libvirt 配置正确。 libvirt 是 cloud-agent 的一个依赖 并且应该已经安装。
即使我们使用的是单个主机,也建议执行以下步骤 熟悉一般要求。 为了进行实时迁移,libvirt 必须监听 unsecured TCP 连接。 我们还需要关闭 libvirts 尝试使用 Multicast DNS 广告。 这两个设置都在 /etc/libvirt/libvirtd.conf
设置以下参数:
$ vi /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0
在 libvirtd.conf 中开启“listen_tcp”是不够的,我们要改 参数以及我们还需要修改/etc/sysconfig/libvirtd:
取消注释以下行:
$ vi /etc/sysconfig/libvirtd
#LIBVIRTD_ARGS="--listen"
3.2.3 重启 libvirt
$ systemctl restart libvirtd
3.2.4 KVM 配置完成
为了完整起见,您应该检查您的 KVM 是否运行正常 机器(您应该会看到已加载的 kvm_intel 或 kvm_amd 模块):
$ lsmod | grep kvm
kvm_intel 55496 0
kvm 337772 1 kvm_intel
kvm_amd # if you are in AMD cpu
至此,我们的 KVM 安装和配置就结束了,我们现在开始 使用 CloudStack UI 来实际配置我们的云。
4、用户界面访问
要访问 CloudStack 的 Web 界面,只需将浏览器指向 您机器的 IP 地址
例如 http://192.168.23.156:8080/client
默认用户名是admin,默认密码是password。
最后编辑:joker.liu 更新时间:2022-09-30 10:35