(VMwareWorkstations12)CentOS7下搭建CloudStack4.10.0雲平臺

一篇學習性質的文章,關於CloudStack怎麼實現這些功能一概不瞭解。只是跟着他人博客學着搭建一下。如有侵權,立刪。
http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/4.9/qig.html#environment

https://www.cnblogs.com/sss4/p/10619350.html

https://blog.csdn.net/albenxie/article/details/80973674

https://www.cnblogs.com/wangmuchen/p/11215304.html
https://cloud.tencent.com/developer/article/1411396

一、準備工作

1. 安裝CentOS系統

使用VMwareWorkststions設置兩個CentOS7的虛擬機。CentOS7鏡像下載地址CentOS-7-x86_64-DVD-1908.iso

一臺作爲管理節點 manager 用於管理雲平臺。建議分配

  • 20G硬盤
  • 3G 內存(2G也可)
  • 2個處理器 開啓虛擬化Intel VT
  • 橋接模式(使用比較方便,與所在主機使用用一個網段,可能引發IP衝突問題,但是一般自己做些小實驗應該沒問題)

另一臺作爲受控節點 agent 存放鏡像虛擬機等。

  • 20G硬盤
  • 4G 內存(3G也可) 受控節點纔是爲用戶提供虛擬計算服務的
  • 2個處理器 開啓虛擬化Intel VT
  • 橋接模式

開啓虛擬化
安裝過程就略過了。基本上設置一下root密碼,選擇一下自動分配空間即可。注,在圖形界面中最好也將網絡連接,默認是未連接的。
點擊網絡和主機名開啓連接
可以再打開的界面中設置主機名 管理節點可設置爲 manager 受控節點可設置爲agent
設置主機名

2 設置靜態IP 設置主機名和DNS服務。

如果圖形界面時未開啓網絡。搜索一下如何解決吧
dhclient

ip addr 	# 查看網絡
dhclient 網卡
1,設置靜態IP

設置靜態IP不是必要的。但是我之前用的虛擬機重啓後IP總是變動。所以就設置一下了。。。
查看網絡設置文件夾

ls /etc/sysconfig/network-scripts

可以查看到ip地址和網卡名(我的是)。然後編輯網卡的配置文件
修改靜態IP

vi ifcfg-網卡名

注,BOOTPROTO設置爲靜態
IPADDR表示要設置的本機IP地址,
NETMASK 子網掩碼
GATEWAY 網關

如manager 節點修改爲

BOOTPROTO=static
IPADDR=192.168.199.101
NETMASK=255.255.255.0
GATEWAY=192.168.199.1
ONBOOT=yes

agent節點IPADDR修改爲192.168.199.102
設置完成保存退出,重啓網卡

systemctl restart network

IP變爲101

2,修改主機名。

查看主機名

hostname --fqdn

修改主機名
將管理節點主機設爲manager受控節點設置爲agent即可

vi /ets/hostname

在打開的文件中輸入自己的主機名即可。

3,將管理節點和受控節點的IP地址和主機名添加進/etc/hosts
vi /etc/hosts
192.168.199.101	manager
192.168.199.102	agent

ping manager
設置DNS服務。好像沒什麼太大必要。使用該DNS服務器解析不在/etc/hosts中的主機名。
編輯 /etc/resolv.conf文件設置爲

nameserver 8.8.8.8
nameserver 8.8.4.4

測試聯通
agent主機測試聯通manager

ping manager

manager主機測試聯通agent

ping agent

測試聯通外網 www.baidu.com # 這裏是要設置/etc/resolv.conf才能ping通,或者將百度的ip 域名寫入 /etc/hosts文件

二、開始進行安裝。

操作過多 就不放截圖了。。。 不加註明 表示manager和agent都需要進行改操作

1, 設置SELINUX

服務器上的SELinux會攔截CloudStack的一些命令,導致CloudStack操作失敗,因此啓動CloudStack前需要對SELinux進行設置。

setenforce 0
vi /etc/selinux/config

修改
SELINUX=permissive

以上修改需重啓服務器才能生效,爲使設置立即生效可使用下邊的命令

setenforce permissive
2,關閉防火牆,簡單粗暴

關閉防火牆並設置開機不會自動啓動

systemctl stop firewalld.service
systemctl disable firewalld.service
3,安裝epel yum源 並進行源配置
yum -y install epel*

安裝wget

yum -y install wget

備份源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

安裝阿里源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

然後我們新建cloudstack.repo文件並編輯

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

添加一下內容 實驗使用的是CentOS7系統CloudStack版本是4.10,因此baseurl這裏是http://cloudstack.apt-get.eu/centos7/4.10/ CentOS版本和CloudStack版本不同可自行更改
網絡源

[cloudstack]

name=cloudstack

baseurl=http://cloudstack.apt-get.eu/centos7/4.10/

enabled=1

gpgcheck=0

配置完成可以安裝一個vim測試一下

yum -y install vim
4,安裝ntp服務 保證主從時間同步。
yum -y install ntp

啓動服務並設置開機自啓

systemctl start ntpd.service
systemctl enable ntpd.service

這裏有可能開機自啓會和一個名爲chronyd 的服務自啓動衝突,可以選擇關閉chronyd 的開機自啓

systemctl disable chronyd.service
5,安裝nfs服務。 並掛載nfs

網絡文件系統能使使用者訪問網絡上別處的文件就像在使用自己的計算機一樣。
這裏manager和agent稍有不同。。。分開來寫

配置NFS提供兩個不同的掛載點。通過編輯/etc/exports文件即可簡單實現。兩個掛載點分別在manager節點和agent節點,agent節點上是主存儲,manager節點上是二級存儲。

(1)manager

安裝 nfs 服務

yum -y install nfs-utils

掛載一個新硬盤到 /export/secondary目錄

創建 /export/secondary目錄

mkdir -p /export/secondary

manager的 /export/secondary作爲二級存儲,用於存儲模板文件,ISO 鏡像和磁盤卷快照。

向manager主機添加一塊硬盤然後掛載到/export/secondary作爲二級存儲

  • 查看未加硬盤時狀態
df -h
fdisk -l

df -h 查看空間使用情況
fdisk -l 查看硬盤分配情況
未添加硬盤
添加新硬盤。最好在關機情況下添加然後重啓manager虛擬機
添加新硬盤
再次查看硬盤情況。發現多了一個 /dev/sdb 的硬盤。
多了一個硬盤
格式化硬盤 執行過程輸入y

mkfs.ext4 /dev/sdb

然後將這塊硬盤掛載到 /export/secondary
注,給自己解釋一下命令是什麼意思
第一行表示將 /dev/sdb /export/secondary ext4 defaults 0 0這一句話添加到/etc/fstab 文件中
第二行表示 掛載 fstab 中的所有文件系統

echo "/dev/sdb  /export/secondary  ext4 defaults 0 0"  >> /etc/fstab
mount -a

查看完成後狀態
完成硬盤添加

掛載完成後 開始nfs的相關內容
編輯/etc/exports文件

vim /etc/exports

添加下面內容

/export/secondary *(rw,async,no_root_squash,no_subtree_check)

重新加載exports文件

exportfs -a

打開NFS配置文件

vim /etc/sysconfig/nfs

使以下配置生效 注: RQUOTAD_PORT=875需自己加入

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

RQUOTAD_PORT=875

STATD_PORT=662

STATD_OUTGOING_PORT=2020

如果防火牆未關閉。 此時要配置防火牆策略允許NFS客戶端訪問
如果防火牆已經關掉了 就被再修改重啓iptables服務了。

vim /etc/sysconfig/iptables

添加以下內容

-A INPUT -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A INPUT -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -p udp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -p udp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A INPUT -m state --state NEW -p udp --dport 662 -j ACCEPT

重啓iptables服務

service iptables restart

開啓nfs服務並設置 開機自啓動

(2)agent

與manager操作類似 ,但是掛載的是主存儲點。

安裝 nfs 服務

yum -y install nfs-utils

爲agent 節點也添加一塊硬盤。

創建 /export/primary目錄

mkdir -p /export/primary

格式化硬盤

fdisk -l
mkfs.ext4 /dev/sdb

掛載

echo "/dev/sdb  /export/primary  ext4 defaults 0 0"  >> /etc/fstab
mount -a

編輯/etc/exports文件

vim /etc/exports

添加下面內容

/export/primary *(rw,async,no_root_squash,no_subtree_check)

重新加載exportfs文件

exportfs -a

打開NFS配置文件

vim /etc/sysconfig/nfs

使以下配置生效

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

RQUOTAD_PORT=875

STATD_PORT=662

STATD_OUTGOING_PORT=2020

啓動nfs服務並設置開機自啓

systemctl start rpcbind
systemctl enable rpcbind
systemctl start nfs
systemctl enable nfs
(3)測試 和掛載

manager 查看是否可訪問agent

 showmount -e agent

agent 查看是否可訪問 manager

showmount -e manager

agent訪問
agent 節點 掛載二級存儲到 /opt 目錄

mount -t nfs manager:/export/secondary /opt

agent掛載二級存儲

6,CloudStack管理節點manager搭建

在manager節點上操作,安裝管理節點。

1,安裝數據庫 並進行相應設置

安裝 數據庫mariadb因爲沒有mysql的版權 無法直接安裝mysql要下載相應的mysql rpm包才能安裝。。mariadb和mysql效果一樣。

 yum install mariadb-server mariadb

設置開機啓動

systemctl enable mariadb

設置數據庫配置 /etc/my.cnf文件

vim /etc/my.cnf

使以下內容生效
max_connections 最大連接數 據說設爲 受控節點數量*350

innodb_rollback_on_timeout=1

innodb_lock_wait_timeout=600

max_connections=350

log-bin=mysql-bin

binlog-format = 'ROW'

啓動服務器
systemctl start mariadb

設置mysql密碼刪除空用戶 我設置的是123456

mysqladmin -uroot password 123456
mysql -uroot -p123456
delete from mysql.user where user='';
[root@agent ~]# mysqladmin -u root password 123456
[root@agent ~]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [mysql]> delete from mysql.user where user='';
Query OK, 2 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

給 root用戶授權 可以遠程訪問數據庫

mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '123456'";
2, 安裝Management

安裝。管理之前已經設置過CloudStack的網絡源,會安裝網絡源指定的版本。 不成功就再次安裝一次。

yum -y install cloudstack-management cloudstack-common
3,Cloudstack數據庫初始化
cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:123456

數據初始化

4,啓動Management服務

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

cloudstack-setup-management --tomcat7

這個看安裝的CloudStack是怎麼樣的

查看cloudstack-management 運行狀態

systemctl status cloudstack-management

這時候就可以從瀏覽器輸入http://managerIP:8080/client/查看web控制面板了 我的是 http://192.168.199.101:8080/client/
成功顯示
默認用戶名是 admin 密碼是 password 不過此時模板鏡像管理之類的都沒裝,所以不能進行什麼操作。

5,安裝KVM模板

CloudStack通過一系列系統虛擬機提供功能,如訪問虛擬機控制檯,如提供各類網絡服務,以及管理輔助存儲的中的各類資源。

該步驟會獲取系統虛擬機模板,用於雲平臺引導後系統虛擬機的部署。
然後需要下載系統虛擬機模板,並把這些模板部署於剛纔創建的輔助存儲中;管理服務器包含一個腳本可以正確的操作這些系統虛擬機模板:

選擇和CloudStack 版本相同的模板進行安裝。

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
-m /export/secondary \
-u http://cloudstack.apt-get.eu/systemvm/4.10/systemvm64template-4.10-4.10.0.0-kvm.qcow2.bz2 \
-h kvm -F

或者可以先將,模板文件下載到本地,然後再使用腳本文件進行操作。

cd /root/
wget http://cloudstack.apt-get.eu/systemvm/4.10/systemvm64template-4.10-4.10.0.0-kvm.qcow2.bz2

下載完成後cloudstack自帶的一個腳本來導入模板執行以下命令

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -f /root/systemvm64template-4.10-4.10.0.0-kvm.qcow2.bz2 -h kvm –F

安裝完成後應該不用重啓 cloudstack-management 服務的。重啓一下也沒關係. 重新啓動應該比較慢

systemctl restart cloudstack-management

7,CloudStack受控節點agent搭建

1,安裝Agent
yum -y install cloudstack-agent cloudstack-common
2,虛擬化配置

CloudStack也是通過libverd來管理所有的kvm
我們有兩部分需要進行配置, libvirt和QEMU

注意文件名稱 不要改錯了
1) 編輯QEMU VNC配置文件/etc/libvirt/qemu.conf

vim /etc/libvirt/qemu.conf

這裏 修改爲 "0.0.0.0"還是0.0.0.0 不確定,但是我的改爲"0.0.0.0"後服務才能正常啓動

vnc_listen="0.0.0.0"

2)CloudStack使用libvirt管理虛擬機
/etc/libvirt/libvirtd.conf文件中進行配置

vim /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16059"
auth_tcp = "none"
mdns_adv = 0

配置/etc/sysconfig/libvirtd文件

vim /etc/sysconfig/libvirtd
LIBVIRTD_ARGS="--listen"

3)重啓libvirtd 並設置爲開機自啓

systemctl restart libvirtd
systemctl enable libvirtd

4)檢查

lsmod | grep kvm

驗證libvirtd述

啓動cloudstack-agent
編輯agent配置文件

vi /etc/cloudstack/agent/agent.properties

使以下設置生效,注,這是控制節點manager的IP

host=192.168.199.101

開啓服務並設置爲開機啓動

systemctl start cloudstack-agent
systemctl enable cloudstack-agent

最好也重啓一下 libvirtd服務

systemctl restart libvirtd

8,節點日誌查看

manager查看管理節點日誌

tail -f /var/log/cloudstack/management/management-server.log

agent 查看Agent節點日誌

tail -f /var/log/cloudstack/agent/agent.log 

有關如何通過Web界面 UI進行設置。後續再記錄。

三 CloudStack重裝

安裝完CloudStack後,我們往往會做各種實驗,可能會把系統搞得很亂。想刪除的話非常麻煩,因爲它們之間往往存在層級關係,必須先從最底層刪起。有沒簡單的辦法直接推倒重來呢?答案是有的,最簡單隻要重置下其數據庫即可。

先停掉CloudStack服務:

systemctl stop cloudstack-management

登陸mysql控制檯,刪除數據庫:

mysql -u root -p
1 drop database cloud;
2 drop database cloud_usage;
3 drop database cloudbridge;
4 quit;

重新導入基礎數據:
cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:root密碼

重新導入系統虛機:

重啓cloudstack服務
1 service cloudstack-management start

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章