CloudStack 4.15.2 折腾记录

目录

1. 先决条件

1.1. 启用虚拟化

如果不开启虚拟化,将无法在CentOS中启用kvm,具体表现为执行下面的命令没有任何输出:

lsmod | grep kvm

如果开启了虚拟化,则会输出:
CloudStack 4.15.2 折腾记录
如何开启?在虚拟机设置中选定如下设置:
CloudStack 4.15.2 折腾记录

1.2. 网络适配器选择NAT模式

虚拟机设置请参考我另一篇Hadoop 3.3.1 折腾记录,下面主要说CentOS中的配置。

2. 网络配置

2.1. 设置静态IP

我们之后会禁用NetworManager服务,所以先在有线设置里面设置。
CloudStack 4.15.2 折腾记录
这里的地址取决于你的虚拟网络编辑器,参照1.2小节。
我这里VMnet8的网关是192.168.71.2,所以我可以填192.168.71.3`192.168.71.127`任意一个。`192.168.71.128`192.168.71.254是DHCP服务器的地址池,当然如果关了也能填。
IPv6记得选disable
注意:不要和其他虚拟机的IP地址重复。
CloudStack 4.15.2 折腾记录
应用之后记得手动关开一下有线网络。
可以尝试打开一些网页测试是否能联网,我是直接ping的百度:

ping baidu.com

能联网就没问题了。
这一小节的设置之后会修改位于/etc/sysconfig/network-scripts/目录下的网络配置文件,具体的我们下面再说。

2.2. 添加网桥

首先获取root权限,执行下面的命令并输入root账户密码即可:

su

定位到网络配置脚本目录下:

cd /etc/sysconfig/network-scripts/

创建网桥配置文件:

vim ifcfg-cloudbr0

键入小写字母i进入插入模式,添加如下内容:

DEVICE=cloudbr0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPV6INIT=no
IPV6_AUTOCONF=no
DELAY=5
IPADDR=192.168.71.3  # 填你刚才设置的IP地址
GATEWAY=192.168.71.2 # 填你的网关
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=8.8.4.4
STP=yes
USERCTL=no
NM_CONTROLLED=no

Esc键退出插入模式,键入冒号:,输入小写字母wq,回车,即可保存并退出

2.3. 手动修改网络配置文件

查看网络配置脚本目录下的配置文件:

ls

CloudStack 4.15.2 折腾记录
可以看到我们刚才创建的网桥配置文件和一个有线网络配置文件。
这个有线网络配置文件的名字可能会不一样,具体要查看有线设置里的名称:
CloudStack 4.15.2 折腾记录
打开ifcfg-ens33

vim ifcfg-ens33

修改下面几项:

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=cloudbr0 # 这一行要自己加上去

注意:如果是按照我的流程来做的,应该都是一样的,只需要添加最后一行就行。
好,接下来我们需要禁用掉有线设置管理器,也就是说看不到有线设置界面了。
为什么?因为我们修改的网络配置,加了网桥,只能通过network服务手动管理,但是有线设置管理器的NetworkManager服务和network服务冲突,所以不关的话会导致下面这样的错误:
CloudStack 4.15.2 折腾记录
禁用NetworkManager服务并启用network服务:

systemctl disable NetworkManager; systemctl stop NetworkManager
systemctl enable network

重启:

reboot

2.4. 修改hostname

查看当前的hostname,一般是localhost

hostname --fqdn

修改hosts文件(root权限):

vim /etc/hosts

在尾部添加如下内容(刚才设置的静态IP):

192.168.71.3 srvr1.cloud.priv

重启network服务:

systemctl restart network

再次查看当前的hostname,不出意外就是srvr1.cloud.priv

hostname --fqdn

3. 修改SELinux配置

3.1. 临时设置为宽容模式

setenforce 0

3.2. 永久设置为宽容模式

打开其配置文件:

vim /etc/selinux/config

修改成如下的样子(把enforcing改为permissive):
CloudStack 4.15.2 折腾记录

4. 安装并启动NTP

安装NTP:

yum -y install ntp

启用并开启NTP服务:

systemctl enable ntpd
systemctl start ntpd

5. 添加CloudStack软件包源

创建配置文件:

vim /etc/yum.repos.d/cloudstack.repo

添加下面的内容:

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

注意:有些教程用的是4.14版本,所以大家的界面会有些不同。

6. 配置NFS共享点

确保nfs-utils已安装:

yum -y install nfs-utils

修改nfs配置文件(没错一开始就是空的):

vim /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

注意:参数-p是确保每一级目录没有就创建,而不报No such file or directory
CentOS 7.x默认使用的是NFSv4,而NFSv4需要确保其配置的domain与我们的domain(cloud.priv)要匹配,所以需要配置/etc/idmapd.conf文件:

vim /etc/idmapd.conf

取消注释并修改下面的一项:

Domain = cloud.priv

CloudStack 4.15.2 折腾记录
然后我们需要修改/etc/sysconfig/nfs文件:

vim /etc/sysconfig/nfs

将下面的这些项取消注释(第4行需要添加):

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

关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld

启动相关服务:

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

7. 安装管理服务

由于CentOS7不再提供MySQL的二进制程序,所以需要手动下载社区包并安装:
建议在你的下载文件夹中打开终端,获取root权限,再执行下面的指令:

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

安装mysql-server

yum -y install mysql-server

修改/etc/my.cnf文件:

vim /etc/my.cnf

添加下面的内容到[mysqld]下面:

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

安装MySQL Connector(Python版):

yum -y install mysql-connector-python

安装CloudStack管理服务:

yum -y install cloudstack-management

注意:这一步有人快有人慢,慢慢等吧~
查看可用的Java版本:

alternatives --config java

确保java-11前面有+号(表示已选中),不是的话就输入2回车:
CloudStack 4.15.2 折腾记录
初始化数据库:

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

初始化服务:

cloudstack-setup-management

下载并解压安装系统VM模板:

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
-m /export/secondary \
-u https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-kvm.qcow2.bz2 \
-h kvm \
-F

8. 配置并安装KVM

安装依赖库:

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

8.1. 配置QEMU VNC

打开配置文件:

vim /etc/libvirt/qemu.conf

将下面这行取消注释(有没有双引号都一样):

vnc_listen=0.0.0.0

8.2. 配置Libvirt

打开配置文件:

vim /etc/libvirt/libvirtd.conf

将下面的几项取消注释或修改:

listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
mdns_adv = 0
auth_tcp = "none"

打开配置文件:

vim /etc/sysconfig/libvirtd

将下面这行取消注释:

LIBVIRTD_ARGS="--listen"

重启libvirt服务:

systemctl restart libvirtd

再次查看kvm服务有没有启动:

lsmod | grep kvm

CloudStack 4.15.2 折腾记录

9. CloudStack网页配置

9.1. 登录图形界面

打开浏览器,访问http://localhost:8080/client,进入CloudStack管理界面。
注意:其实输入localhost:8080就够了。
初始用户名:admin
初始密码:password
域:留空,不要填
CloudStack 4.15.2 折腾记录

9.2. 资源域Zone设置

点击Continue with installation
CloudStack 4.15.2 折腾记录
此时,它会要求你更改密码。

9.2.1. 资源域类型

资源域类型高级不要勾选安全组,然后点击下一步
CloudStack 4.15.2 折腾记录

9.2.2. 资源域详细信息

名称:Zone1
IPv4 DNS 1:8.8.8.8
IPv4 DNS 2:8.8.4.4
内部 DNS 1:8.8.8.8
内部 DNS 2:8.8.4.4
虚拟机管理服务:KVM
其他项不需要管,填完直接下一步
CloudStack 4.15.2 折腾记录
CloudStack 4.15.2 折腾记录

9.2.3. 物理网络

不需要修改,直接下一步
注意:没看到下一步的建议往下划一划……
CloudStack 4.15.2 折腾记录

9.2.4. 公共流量

网关:192.168.71.2(填你自己的IP)
网络掩码:255.255.255.0
VLAN/VNI:留空
起始 IP:192.168.71.11
结束 IP:192.168.71.20
点击添加,点击下一步
CloudStack 4.15.2 折腾记录

9.2.5. 提供点

提供点名称:Pod1
预留的系统网关:192.168.71.2
预留的系统网络掩码:255.255.255.0
起始预留系统 IP:192.168.71.21
结束预留系统 IP:192.168.71.30
CloudStack 4.15.2 折腾记录

9.2.6. 来宾流量

VLAN/VNI 范围:100-200
CloudStack 4.15.2 折腾记录

9.2.7. 群集

群集名称:Cluster1
CloudStack 4.15.2 折腾记录

9.2.8. 主机

主机名称:192.168.71.3
用户名:root
密码:这里填你的root密码
标签不要填,留空。
CloudStack 4.15.2 折腾记录

9.2.9. 主存储

名称:Primary1
范围:群集
协议:nfs
服务器:192.168.71.3
路径:/export/primary
存储标签不要填,留空。
CloudStack 4.15.2 折腾记录

9.2.10. 二级存储

提供程序:NFS
名称:Secondary1
服务器:192.168.71.3
路径:/export/secondary
CloudStack 4.15.2 折腾记录

9.3. 启动资源域

注意:点击启动资源域之后,如果你有哪边填的有问题,它会给你指出来让你去改。

9.3.1. 故障排除

当它执行到正在添加主机这一步时,会需要数分钟。
但是,我们这边几个宿舍都在第一次到达这步时卡了十几分钟甚至几十分钟还没好,还有人是直接报unable to add the host
后来,经过我们的一些测试,有下面两个解决方法:
方法 1:直接刷新网页,再次进入CloudStack控制板,这时候它会显示一个没有配置完成的Zone1的概况,也就是像这样:
CloudStack 4.15.2 折腾记录
然后点击基础架构,再点击资源域,然后按照上面的步骤再添加一个Zone2就行。
注意:添加完Zone2之后别忘了在控制板那边切换成Zone2,或者在资源域在那边把Zone2移到Zone1上面。
方法 2:关掉网页,再次初始化cloudstack

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

然后再按照这一节最开始配置资源域就行了。
注意:期间可能会有SELinux警报,不用去管。

9.3.2. 最终效果

CloudStack 4.15.2 折腾记录

上一篇:关于HTML Button点击自动刷新页面的问题解决


下一篇:Openstack-实践3. CloudStack平台迁移OpenStack平台