【巨量資料實驗】cloudstack安裝部署(小白式傻瓜教學)

2020-10-22 14:00:52

0 說明

  • 百度網路硬碟統一提取碼:0818
  • 按照官網快速安裝指南進行👇,manegement和agent在同一臺虛擬機器器上(看不懂後半句沒關係,搞完你就有點懂了)

http://docs.cloudstack.apache.org/en/4.14.0.0/quickinstallationguide/qig.html

  • 本文用來記錄所遇的坑和解決方案,參考了各路大佬的解決方法
  • 英文不好啊,按著翻譯對照著看,以下按照官網分配標題進行
  • 解釋什麼的去官網看,這裡簡單粗暴只寫命令
  • 一步一步跟著來,預設你懂虛擬機器器最最基礎的操作,比如知道哪些命令在終端寫,哪些是寫到檔案中

1 Prerequisites 先決條件

  1. 安裝虛擬機器器

  2. 至少一臺支援並啟用硬體虛擬化的計算機

  3. CentOS 7.7 x86_64 ISO百度網路硬碟下載

  4. 一個/ 24網路,其閘道器位於xxx.xxx.xxx.1,該網路上不應有DHCP,並且任何執行CloudStack的計算機都不會具有動態地址。再次,這是為了簡單起見。

  5. centos網路設定為橋接模式(2.2就是幫你設定的)
    初始配置

2 Environment 環境

2.0 先看看有沒有KVM

lsmod | grep kvm

有內容就對了

2.1 Operating System 作業系統

此時如果你沒開網,那就先做完步驟2.2(2.2的第一步也要用yum,也先暫且放一放)再回來執行這條命令

yum -y upgrade

2.2 Configuring the network 設定網路

  1. 安裝「brctl」和「net-tools」

沒網就先執行下面的聯網步驟

yum install bridge-utils net-tools -y

【接下來開始設定聯網】

解決bug0👉傳送門

  1. 設定橋
vi /etc/sysconfig/network-scripts/ifcfg-cloudbr0

鍵入【i】開始編輯ifcfg-cloudbr0
退出:【Esc】→鍵入【:wq】(注意冒號)

#【ifcfg-cloudbr0】,原本沒有這個檔案
DEVICE=cloudbr0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPV6INIT=no
IPV6_AUTOCONF=no
DELAY=5
# 此模組以官網指南為例,但需要根據實際情況填寫,【】中為提示
# 因此檔案中有這些網段的,都要替換成實際的IP
IPADDR=172.16.10.2【和主機同網段的ip地址】
GATEWAY=172.16.10.1【閘道器xxx.xxx.xxx.1】
NETMASK=255.255.255.0
#
DNS1=8.8.8.8
DNS2=8.8.4.4
STP=yes
USERCTL=no
NM_CONTROLLED=no
  1. 修改網路設定
vi /etc/sysconfig/network-scripts/ifcfg-eth0

eth0為例,根據實際情況修改檔案
比如我的是ens33,那就是vi /etc/sysconfig/network-scripts/ifcfg-ens33,有eth0的地方都換成ens33

#【ifcfg-eth0】
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=cloudbr0
# 【UUID不要改,但要有】
# 【保持和cloudbr0統一,把這個ens33檔案裡的下面兩個改成no】
# IPV6INIT=no
# IPV6_AUTOCONF=no
  1. 重新啟動網路

解決bug1👉傳送門

systemctl enable network
systemctl restart network
  1. 測試有無網路
ping baidu.com

有網就對了,記得返回去把上面兩個yum執行了

2.3 Hostname

  1. 改名兒hostname
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.10.2 srvr1.cloud.priv
  1. 重新啟動網路,並看看改名成功了沒
systemctl restart network
hostname -fqdn

顯示srvr1.cloud.priv就對了

2.4 SELinux

  1. 將SELinux設定為在正在執行的系統中允許使用
setenforce 0
  1. 反映許可狀態
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. 檢視當前selinux
getenforce

顯示Permissive就對了

2.5 NTP

yum -y install ntp
systemctl enable ntpd
systemctl start nypd

2.6 Configuring the CloudStack Package Repository 設定CloudStack軟體包儲存庫

vi /etc/yum.repos.d/cloudstack.repo
# 原本沒有這個檔案
[cloudstack]
name=cloudstack
baseurl=http://download.cloudstack.org/centos/$releasever/4.14/
enabled=1
gpgcheck=0

2.7 NFS

  1. 安裝nfs-utils
yum -y install nfs-utils
  1. 設定NFS以提供兩個不同的共用
vi /etc/exports
# 原本沒有這個檔案
/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/export/primary *(rw,async,no_root_squash,no_subtree_check)
  1. 建立目錄
mkdir -p /export/primary
mkdir /export/secondary
  1. 域設定
vi /etc/idmapd.conf
# 取消註釋並修改
Domain = cloud.priv
  1. /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
  1. 禁用防火牆
systemctl stop firewalld
systemctl disable firewalld
  1. 將nfs服務設定為在啟動時啟動並在主機上實際啟動它
systemctl enable rpcbind
systemctl enable nfs
systemctl start rpcbind
systemctl start nfs

3 Management Server Installation 管理伺服器安裝

3.1 Database Installation and Configuration 資料庫安裝和設定

解決可能出現的bug2👉傳送門

  1. 新增一個MySQL社群儲存庫
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
  1. 安裝mysql
  • 此時安裝的是5.6.49版本
    在2020.10.16時安裝是5.6.49版本,在2020.10.19時安裝是5.6.50版本。
    說這個有什麼用呢?因為在步驟3.2遇到了坑
yum -y install mysql-server
  1. 更改/etc/my.cnf,在[mysqld]部分中新增
vi /etc/my.cnf
# 對於Ubuntu 16.04和更高版本,開頭加上這句:server-id=master-01
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
  1. 啟動mysql
systemctl enable mysqld
systemctl start mysqld

3.2 MySQL Connector Installation MySQL聯結器安裝

安裝Python MySQL聯結器

  • 此時安裝的是8.0.21版本
    在2020.10.16時安裝是8.0.21版本,在2020.10.19時安裝是8.0.22版本。
  1. 假如是8.0.22版本的聯結器,會和mysql5.6.50版本相沖突,然後讓你安裝mysql8.0.22,即使你成功了,後續還會產生問題

應該是mysql80安全性太高的緣故,按照官網操作的話,用mysql56吧

  1. 未測試5.6.50版本的mysql和8.0.21版本的聯結器是否會有衝突
yum -y install mysql-connector-python

3.3 Installiation 安裝

  1. 安裝管理伺服器
yum -y install cloudstack-management

下載可能會比較慢,建議官網下載了之後進行本地安裝

  1. CloudStack 4.14需要Java 11 JRE。確認Java 11是選定的/活動的Java。
alternatives --config java
  1. 設定資料庫
    之前提到的資料庫版本問題會在這裡出現錯誤
    假如你執意用mysql8,我沒找到解決方法,如果找到了還請告訴我一聲怎麼做的呀~
cloudstack-setup-databases cloud:password@localhost --deploy-as=root

看到successfully字樣你就對了

  1. 設定管理伺服器

如果servlet容器是Tomcat7,則必須使用引數–tomcat7

cloudstack-setup-management

3.4 System Template Setup 系統模板設定

官網不顧網速死活的方法

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

老規矩本地下載

4 KVM Setup and Installation KVM設定和安裝

4.1 Prerequisites 先決條件

  • 同 2
  • 由於我們的manegement和agent安裝在一臺虛擬機器器上,所以這一步不用管

4.2 Installation 安裝

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

本地安裝

4.3 KVM Configuration KVM設定

4.3.1 QEMU Configuration QEMU設定

vi /etc/libvirt/qemu.conf
# 取消註釋下面這一行
vnc_listen=0.0.0.0

4.3.2 Libvirt Configuration Libvirt設定

  1. 關閉libvirts嘗試使用多播DNS廣告的嘗試
vi /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0
  1. 修改/etc/sysconfig/libvirtd
vi /etc/sysconfig/libvirtd
# 取消註釋下面這一行
LIBVIRTD_ARGS="--listen"
  1. 重新啟動libvirt
systemctl restart libvirtd

4.4 KVM configuration complete

看看你的KVM在不在

lsmod | grep kvm

5 Configuration 組態

5.1 UI Access

  • 網址:http://172.16.10.2:8080/client
  • 預設使用者名稱:admin
  • 預設密碼:password
  • 第三個框框空著
  • 可以選擇語言
  • 不要跳過新手步驟

5.2 Setting up a Zone 新增資源域

  • 名稱:Zone1
  • DNS1:8.8.8.8
  • DNS2:8.8.4.4
  • 內部DNS1:8.8.8.8
  • 內部DNS2:8.8.4.4

5.3 Pod Configuration

5.3.1 新增提供點

  • 名稱:Pod1
  • 閘道器:172.16.10.1
  • 網路掩碼:255.255.255.0
  • IP範圍:172.16.10.10-172.16.10.20

5.3.2 新增來賓網路

  • 閘道器:172.16.10.1
  • 網路掩碼:255.255.255.0
  • IP範圍:172.16.10.30-172.16.10.200

5.4 Cluster

5.4.1 新增群集

  • 虛擬機器器管理程式:KVM
  • 名稱:Cluster1

5.4.2 新增主機

  • 主機名稱:172.16.10.2
  • 使用者名稱:root
  • 密碼:【虛擬機器器root密碼】

5.5 Primary Storage 新增主機

  • 名稱:Primary1
  • 協定:NFS
  • 範圍:群集
  • 伺服器:172.16.10.2
  • 路徑:/export/primary

5.6 Secondary Storage 新增二級儲存

  • NFS伺服器:172.16.10.2
  • 提供程式:NFS
  • 路徑:/export/secondary

6 完成

過程
成功

配置