任总关注
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结构
Zone
提供点(Pods)
集群(Clusters)
主机(Hosts)
CloudStack 中存在两种存储:
Primary storage
Secondary storage
通过控制台连接,您应该以root用户身份登录。我们将首先创建Cloudstack将用于网络的桥梁。创建并打开/ etc / sysconfig / network-scripts / ifcfg-cloudbr0并添加以下设置:
如果使用vmware workstation虚拟机上试验,需要cpu开启虚拟化支持并分配两个处理器,内存要4G以上
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
登录,最下面空白行可以选择成中文
第一次进行基础配置
设置区域和dns
添加一个集群
CloudStack™允许云部署中的多个群集,但对于基本安装,我们只需要一个群集。
image.png
添加一个主机
主机是CloudStack™部署中最小的组织单位。主机包含在群集中,群集包含在pod中,pod包含在区域中。
image.png
添加主存储
主存储与群集关联,并且它为在该群集中的主机上运行的所有VM存储每个来宾VM的磁盘卷。主存储服务器通常位于主机附近。
image.png
添加二级存储
辅助存储与区域关联,它存储以下内容:
模板 - 可用于引导VM的操作系统映像,可包含其他配置信息,例如已安装的应用程序
ISO映像 - 可以启动或不可启动的操作系统映像
磁盘卷快照 - 保存的VM数据副本,可用于数据恢复或创建新模板
添加辅助存储
最后点击完成
系统模板:创建系统虚拟机实例时使用
内置模板:CloudStack内置的一组模板,供用户创建客户虚拟机实例
用户模板:由平台管理员或用户注册的模板
注册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
下载完成的镜像
全局设置可下载的ip地址
注册自定义镜像
创建实例
添加iso
image.png
image.png
给实例安装系统
安装完后,1关闭虚拟机,2移除ISO镜像,然后在开启虚拟机
根据新创建的虚拟机创建模板
打开虚拟机
进入虚拟机,设置通用项目
#关闭防火墙、关闭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/*
关闭实例
创建模板
定义模板名称
创建完成
使用自定义模板创建实例虚拟机,下面输入框是创建一个数据磁盘, 可以不输入
资源域的基础网络
安全组的使用
创建项目
添加一个账户
可以根据实际资源状况,调整分配这个项目资源
登录后默认的是默认视图,可以选择项目,进入项目视图