CloudStack快速安装使用

CloudStack快速安装使用

CloudStack快速安装使用_第1张图片

任总关注

0.772019.05.07 17:42:27字数 2,132阅读 4,074

参考链接:https://blog.csdn.net/zhangliu463884153/article/details/80606020
https://blog.csdn.net/u012124304/article/details/75529429

CloudStack快速安装使用_第2张图片

CloudStack结构

 

  • 官方网站文档:http://docs.cloudstack.apache.org/en/latest/index.html

Zone

  • Zone 对应于现实中的一个数据中心,它是 CloudStack 中最大的一个单元。 即从包含关系上来说,一个 zone 包含多个 pod,一个 pod 包含多个 cluster,一个 cluster 包含多个 host。

提供点(Pods)

  • 一个提供点通常代表一个机架,机柜里面的主机在同一个子网,每个区域中必须包含一个或多个提供点,提供点中包含主机和主存储服务器, CloudStack 的内部管理通信配置一个预留 IP 地址范围。预留的 IP 范围对云中的每个区域来说必须唯一。

集群(Clusters)

  • Cluster 是多个主机组成的一个集群。
  • 同一个cluster中的主机有相同的硬件,相同的 Hypervisor,和共用同样的存储。同一个 cluster 中的虚拟机,可以实现无中断服务地从一个主机迁移到另外一个上。
  • 集群由一个或多个宿主机和一个或多个主要存储服务器构成。集群的大小取决于下层虚拟机软件。大多数情况下基本无建议。当使用VMware时,每个VMware集群都被vCenter 服务器管理。管理员必须在本产品中登记vCenter。每个zone下可以有多个vCenter服务器。每个vCenter服务器可能管理多个VMware集群

主机(Hosts)

  • Host 就是运行的虚拟机(VM)主机。
  • 宿主机就是个独立的计算机。宿主机运行来宾虚拟机并提供其相应的计算资源。每个宿主机都装有虚拟机软件来运行来宾虚拟机。比如一个开启了kvm支持的服务器,一个思杰XenServer服务器,或者一个ESXi服务器都可以作为宿主机。
  • 宿主机在CloudStack部署中属于最小的组织单元。宿主机包含于集群中,集群又属于提供点,而区域中包含提供点(就是在逻辑概念上zone>pod>cluster>host),新增的宿主机可以随时添加以提供更多资源给来宾虚拟机,CloudStack自动探测宿主机的cpu数量和内存资源。宿主机对终端用户不可见。终端用户不能决定他们的虚拟机被分配到哪台宿主机。

CloudStack 中存在两种存储:

Primary storage

  • 一级存储与 cluster 关联,它为该 cluster 中的主机的全部虚拟机提供磁盘卷。一个 cluster 至少有一个一级存储,且在部署时位置要临近主机以提供高性能。

Secondary storage

  • 二级存储与 zone 关联,它存储模板文件,ISO 镜像和磁盘卷快照。

通过控制台连接,您应该以root用户身份登录。我们将首先创建Cloudstack将用于网络的桥梁。创建并打开/ etc / sysconfig / network-scripts / ifcfg-cloudbr0并添加以下设置:

快速安装cloudstack

  • 实验环境:CentOS7.5 ,Dell630服务器单节点,ip地址:172.16.16.1
  • 如果使用vmware workstation虚拟机上试验,需要cpu开启虚拟化支持并分配两个处理器,内存要4G以上

     

    CloudStack快速安装使用_第3张图片

    vm虚拟机cpu开启虚拟化支持

# yum install bridge-utils -y
#设置网桥
# vim /etc/sysconfig/network-scripts/ifcfg-cloudbr0
DEVICE=cloudbr0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPV6INIT=no
IPV6_AUTOCONF=no
DELAY=5
IPADDR=172.16.16.2
GATEWAY=172.16.10.1
NETMASK=255.255.0.0
DNS1=8.8.8.8
DNS2=8.8.4.4
STP=yes
USERCTL=no
NM_CONTROLLED=no

#设置网卡
# vim /etc/sysconfig/network-scripts/ifcfg-em1
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=em1
DEVICE=em1
ONBOOT=yes
BRIDGE=cloudbr0

~]# brctl addbr cloudbr0
~]# brctl addif cloudbr0 ens33

此时如果连接了ssh,会断开,要到主机里面查看,已经添加到网桥中了,但未能启用,然后重启主机

 

重启后再次把网卡加入网桥,成功

~]# vim install_cloudstack.sh

#!/bin/sh
# cloudstack pike 一键安装脚本 单机
# 环境 centos 7.4.1708 x86_64
 read   -p "Enter nodename > " name  #输入节点主机名
[[ `uname -r` = *el7* ]] && { echo '开启安装cloudstack pike'; } || { echo '请在CentOS7.4 环境运行';exit; }
[[ $(whoami) == root ]] || { sudo su - root; }
[[ $? = 0 ]] || { echo 'Must run in root !';exit; }

##########################################
#参数

#获取第一块网卡名、ip地址
Net=`ip add|egrep global|awk '{ print $NF }'|head -n 1`
IP=`ip add|grep global|awk -F'[ /]+' '{ print $3 }'|head -n 1`
echo  "网卡名称:$Net"
echo  "IP地址:  $IP"


#参数
Node=$name     #节点名
Netname=$Net        #网卡名称
MyIP=$IP            #IP地址

##########################################
#1、设置

echo  '调整selinux、关闭防火墙'
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
sed -i '/^SELINUX=.*/c SELINUX=disable' /etc/selinux/config
grep --color=auto '^SELINUX' /etc/selinux/config
setenforce 0

echo  '设置hostname,上面已设置,这里怕忘记设置,在搞一遍'
hostnamectl set-hostname $Node
echo "$MyIP   $Node">>/etc/hosts
yum install -y wget 
#使用阿里源
mkdir -p /etc/yum.repos.d/remark && mv  /etc/yum.repos.d/* /etc/yum.repos.d/remark/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo
##设置yum源
touch /etc/yum.repos.d/{cloudstack.repo,mysql.repo}
echo "#cloudstack-yum源 repo
[cloudstack]
name=cloudstack
baseurl=http://download.cloudstack.org/centos/7/4.11/
enabled=1
gpgcheck=0
">/etc/yum.repos.d/cloudstack.repo

echo "#mysql-yum源 repo
[mysql-connectors-community]
name=MySQL Community connectors
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/\$releasever/\$basearch/
enabled=1
gpgcheck=1
">/etc/yum.repos.d/mysql.repo

yum clean all && yum makecache  #清理缓存
 
echo  '时间同步'
[[ -f /usr/sbin/ntpdate ]] || { echo "install ntp";yum install ntp ntpdate -y &> /dev/null; } #若没NTP则安装
/usr/sbin/ntpdate ntp6.aliyun.com 
echo "*/3 * * * * /usr/sbin/ntpdate ntp6.aliyun.com  &> /dev/null" > /tmp/crontab
crontab /tmp/crontab

##########################################
#2 安装

 yum -y upgrade &> /dev/null
yum install -y ntp wget vim net-tools openssh tree &> /dev/null
echo  'CloudStack tools 安装'
yum -y install nfs-utils &> /dev/null
echo  'mysql安装'
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
yum -y  install  mysql-community-release-el7-5.noarch.rpm 
yum -y update
yum -y install mysql-server

echo  '安装nfs'

##########################################
#3、nfs配置
mkdir -p /var/export/{primary,secondary}
echo "/var/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/var/export/primary *(rw,async,no_root_squash,no_subtree_check)" >> /etc/exports

#域是kvm.io 
sed -i '/^#Domain = */c Domain = kvm.io ' /etc/idmapd.conf
#添加配置值
echo "LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020" >> /etc/sysconfig/nfs
#启动nfs
systemctl enable rpcbind &&  systemctl start rpcbind
 systemctl enable nfs && systemctl start nfs


# #------------------#####################
echo 'SQL数据库配置'
touch /etc/my.cnf.d/cloudstack.cnf
echo "[mysqld]
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
">/etc/my.cnf.d/cloudstack.cnf
echo '启动数据库服务'
systemctl enable mysqld && systemctl start mysqld
sleep 5
netstat -antp|grep mysqld


##############从MySQL导入GPG公钥:
rpm --import http://repo.mysql.com/RPM-GPG-KEY-mysql
#安装mysql-connector
yum -y install mysql-connector-python
#安装服务器管理器
yum -y install cloudstack-management
#设置数据库
cloudstack-setup-databases cloud:password@localhost --deploy-as=root
#下载vm模板
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /var/export/secondary -u http://download.cloudstack.org/systemvm/4.11/systemvmtemplate-4.11.2-kvm.qcow2.bz2 -h kvm -F
#安装管理代理
yum -y install cloudstack-agent
#QEMU VNC配置
sed -i '/^#vnc_listen=*/c vnc_listen="0.0.0.0"' /etc/libvirt/qemu.conf
#Libvirt配置
echo "listen_tls = 0
listen_tcp = 1
tcp_port = \"16509\"
auth_tcp = \"none\"
mdns_adv = 0
"  >> /etc/libvirt/libvirtd.conf

sed -i '/^#LIBVIRTD_ARGS="--listen"/c LIBVIRTD_ARGS="--listen"' /etc/sysconfig/libvirtd

#重新启动libvirtd
 systemctl enable libvirtd   &&  systemctl start libvirtd 
systemctl enable  cloudstack-management  &&   systemctl start  cloudstack-management  

 #查看是否启用kvm模块
lsmod | grep kvm   #查看是否启用kvm模块
##########################################
##########################################
#end

echo '
安装完毕!
登录Web管理 http://'$MyIP':8080/client

'

#执行脚本
~]# . install_cloudstack.sh
  • 后添加了一个小硬盘作为辅助存储,存储镜像文件用,不添加也可以用
~]# echo "/dev/sda1 /var/export/secondary/   ext4 defaults 0 0"  >> /etc/fstab

CloudStack快速安装使用_第4张图片

登录,最下面空白行可以选择成中文

CloudStack快速安装使用_第5张图片

第一次进行基础配置

 

CloudStack快速安装使用_第6张图片

设置区域和dns

  • 由于没有自己的dns服务器,所以使用公网dns

     

    CloudStack快速安装使用_第7张图片

    创建机架

     

    CloudStack快速安装使用_第8张图片

    添加pod

     

    CloudStack快速安装使用_第9张图片

    设置网络

添加一个集群

  • 群集提供了一种分组主机的方法。群集中的主机都具有相同的硬件,运行相同的虚拟机管理程序,位于同一子网上,并访问相同的共享存储。虚拟机实例(VM)可以在同一群集内从一个主机实时迁移到另一个主机,而不会中断对用户的服务。
  • 集群是CloudStack™部署中的第三大组织单位。群集包含在群集中,并且群落包含在区域内。

CloudStack™允许云部署中的多个群集,但对于基本安装,我们只需要一个群集。

 

CloudStack快速安装使用_第10张图片

image.png

添加一个主机

  • 主机是一台计算机。主机提供运行来宾虚拟机的计算资源。每个主机都安装了虚拟机管理程序软件来管理来宾虚拟机(裸机主机除外,这是“高级安装指南”中讨论的特殊情况)。例如,支持Linux KVM的服务器,Citrix XenServer服务器和ESXi服务器是主机。在基本安装中,我们使用运行XenServer或KVM的单个主机。
  • 主机是CloudStack™部署中最小的组织单位。主机包含在群集中,群集包含在pod中,pod包含在区域中。

     

    CloudStack快速安装使用_第11张图片

    image.png

添加主存储

  • CloudStack™云基础架构使用两种类型的存储:主存储和二级存储。这两者都可以是iSCSI或NFS服务器,也可以是localdisk。
  • 主存储与群集关联,并且它为在该群集中的主机上运行的所有VM存储每个来宾VM的磁盘卷。主存储服务器通常位于主机附近。

     

    CloudStack快速安装使用_第12张图片

    image.png

添加二级存储

辅助存储与区域关联,它存储以下内容:

  • 模板 - 可用于引导VM的操作系统映像,可包含其他配置信息,例如已安装的应用程序

  • ISO映像 - 可以启动或不可启动的操作系统映像
    磁盘卷快照 - 保存的VM数据副本,可用于数据恢复或创建新模板

     

    CloudStack快速安装使用_第13张图片

    添加辅助存储

  • 最后点击完成

ISO和模板文件的管理

  • ISO和模板文件通过HTTP或HTTPS协议上传到二级存储中。CloudStack中的模板分为三种:系统模板,内置模板和用户模板:

系统模板:创建系统虚拟机实例时使用
内置模板:CloudStack内置的一组模板,供用户创建客户虚拟机实例
用户模板:由平台管理员或用户注册的模板

注册ISO和模板文件

  • 准备一个HTTP服务器,把系统模板和ISO文件上传到服务器上,供CloudStack后续下载
  • 修改全局设置,将存放模板的服务器ip地址设置到secstorage.allowed.internal.sites中,让CloudStack可以从该服务器下载模板
  • 确认辅助存储虚拟机工作状态是否正常,因为上传ISO或模板文件需要SSVM的支持
    注册ISO文件:在管理界面的模板菜单项中点击注册ISO,填入ISO的URL地址
    注册模板:类似注册ISO文件
  • 创建模板,编辑模板,下载模板,复制模板,删除模板,重置密码

安装nginx,启用web,为cloudstack提供iso下载服务

~]# vim /etc/nginx/nginx.conf 
........
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    autoindex on;          # 显示目录
    autoindex_exact_size on;   # 显示文件大小
    autoindex_localtime on;    # 显示文件时间
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
.......
#移除nginx网页根目录/usr/share/nginx/内的文件
 ~]# mkdir /tmp/nginxback
 ~]# mv  /usr/share/nginx/html/* /tmp/nginxback/  
~]# systemctl enable nginx && systemctl start nginx
#下载centos镜像到网页根目录
 ~]# wget https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso -P  /usr/share/nginx/html/centos

CloudStack快速安装使用_第14张图片

下载完成的镜像

 

CloudStack快速安装使用_第15张图片

全局设置可下载的ip地址

CloudStack快速安装使用_第16张图片

注册自定义镜像

 

CloudStack快速安装使用_第17张图片

创建实例

 

CloudStack快速安装使用_第18张图片

添加iso

 

CloudStack快速安装使用_第19张图片

image.png

 

CloudStack快速安装使用_第20张图片

image.png

 

CloudStack快速安装使用_第21张图片

给实例安装系统

 

CloudStack快速安装使用_第22张图片

安装完后,1关闭虚拟机,2移除ISO镜像,然后在开启虚拟机

根据新创建的虚拟机创建模板

CloudStack快速安装使用_第23张图片

打开虚拟机

进入虚拟机,设置通用项目

#关闭防火墙、关闭selinux
~]# sed -i '/^SELINUX=.*/c SELINUX=disable' /etc/selinux/config
~]# systemctl disable firewalld
~]# systemctl stop firewalld

#配置虚拟机网卡
~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
~]# systemctl reboot

#安装阿里云源、同步时间
~]#  yum install wget vim -y
~]# mkdir -p /etc/yum.repos.d/remark && mv  /etc/yum.repos.d/* /etc/yum.repos.d/remark/
~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
~]#  sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo
~]#  [[ -f /usr/sbin/ntpdate ]] || { echo "install ntp";yum install ntp ntpdate -y &> /dev/null; } 
~]# /usr/sbin/ntpdate ntp6.aliyun.com 
#删除持久化设备
~]# rm -f /etc/udev/rules.d/70*
~]# rm -f /var/lib/dhclient/*

CloudStack快速安装使用_第24张图片

关闭实例

 

CloudStack快速安装使用_第25张图片

创建模板

 

CloudStack快速安装使用_第26张图片

定义模板名称

 

CloudStack快速安装使用_第27张图片

创建完成

 

CloudStack快速安装使用_第28张图片

使用自定义模板创建实例虚拟机,下面输入框是创建一个数据磁盘, 可以不输入

资源域的基础网络

  • 在资源域的基础情况下,网络虚拟机创建后,系统会自动分配一个ip地址。

     

    CloudStack快速安装使用_第29张图片

    系统分配的ip地址

  • 更改IP地址,需要关闭实例。

     

    CloudStack快速安装使用_第30张图片

    给实例更改ip

     

    CloudStack快速安装使用_第31张图片

    完成

安全组的使用

  • 虚拟机创建后,使用ssh还无法连接,设置安全组规则。
  • 注意:如果启用项目,每个项目的安全组要单独设定,项目内的安全组规则只对项目内虚拟机有效。

     

    CloudStack快速安装使用_第32张图片

    设置安全组

     

    CloudStack快速安装使用_第33张图片

    设置入口规则和出口规则

项目的创建使用

CloudStack快速安装使用_第34张图片

创建项目

 

CloudStack快速安装使用_第35张图片

添加一个账户

 

CloudStack快速安装使用_第36张图片

可以根据实际资源状况,调整分配这个项目资源

 

CloudStack快速安装使用_第37张图片

登录后默认的是默认视图,可以选择项目,进入项目视图

  • 项目内部创建的实例,默认视图中看不到。
  • 项目内部创建的存储、网络、安全组只对项目内虚拟机有效。

     

    CloudStack快速安装使用_第38张图片

    默认视图下实例,迁移给其他项目账户

     

    CloudStack快速安装使用_第39张图片

    分给test项目

     

    CloudStack快速安装使用_第40张图片

    到test项目查看

你可能感兴趣的:(CloudStack快速安装使用)