先電雲 iaas搭建及運維


IaaS平台搭建

1. 操作系統環境配置

 

1.1 修改網卡

# 1. 修改網卡
vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
DEVICE=eth0 //配置網卡的設備名稱
IPADDR=172.24.2.10 //配置實際網絡地址
NETMASK=255.255.255.0 //配置網絡子網掩碼
GATEWAY=172.24.2.1 //配置網絡網關
BOOTPROTO=static //配置靜態網絡地址
ONBOOT=yes //開機啟動網絡
USERCTL=no //不允許非root用戶修改此設備

1.2 分區,swift和cinder

# 2. 分區,swift和cinder
fdisk -l   # 判斷未分區空間的大概起始位置

[root@compute ~]# parted /dev/md126                                    
(parted) mkpart cinder 702G 803G    # 創建cinder分區,從702G到803G                                                  
[root@compute ~]# mkfs.xfs /dev/md126p5

[root@compute ~]# parted /dev/md126   # 將cinde分區設置為lvm
(parted)set
Flag to Invert? LVM  
New state? On/off on

[root@compute ~]# parted /dev/md126                                    
(parted) mkpart swift 803G 904G    # 創建swift分區,從803G到904G                                                  

[root@compute ~]# mkfs.xfs /dev/md126p6
# 最后用fdisk –l 查看修改結果。

1.3 設置主機名

# 3.設置控制節點主機名 controller;計算節點主機名:compute。
hostnamectl set-hostname controller
hostnamectl set-hostname compute
hostname     # 查看主機名

1.4 關閉防火牆

# 4.各個節點關閉防火牆,設置開機不啟動
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld
setenforce 0

1.5 selinux狀態為permissive

# 5.設置各個節點selinux狀態為permissive
vi /etc/selinux/config
SELINUX=permissive
getenforce     # 查看selinux防火牆的狀態
sestatus
[root@controller ~]#systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
  Active: inactive (dead)
    Docs: man:firewalld(1)
[root@controller ~]# getenforce
Permissive

1.6 上傳鏡像

  • 在控制節點上通過 SecureFX 上傳兩個鏡像文件CentOS-7-x86_64-DVD-1511.iso, XianDian-IaaS-v2.2.iso到opt 下

  • 使用命令創建/opt下兩個目錄,並將以上鏡像文件分別掛載到上述兩個目錄下

  • 並 使用命令查看掛載的情況(需顯示掛載的文件系統類型和具體的大小)。

mkdir /opt/centos 
mkdir /opt/iaas
mount -o loop CentOS-7-x86_64-DVD-1511.iso /opt/centos
mount -o loop XianDian-IaaS-v2.2.iso /opt/iaas
df-Th    # 查看掛載情況
umount /mnt     # 取消掛載

1.7 yum源配置

  • 配置控制節點本地 yum 源文件 local.repo ,搭建 ftp 服務器指向存放 yum 源路徑;

  • 配置計算節點 yum 源文件 ftp.repo 使用之前配置的控制節點 ftp 作 為 yum 源,其中的兩個節點的地址使用主機名表示。

  • 使用 cat 命令查看上述 控制/計算節點的 yum 源全路徑配置文件。

 mv /etc/yum.repos.d/* /etc/yum
#[controller]
# 在/etc/yum.repos.d創建local.repo源文件
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
# cat /etc/yum.repos.d/local.repo
# [compute]
# 在/etc/yum.repos.d創建ftp.repo源文件
[centos]
name=centos //設置此yum的資源描述名稱
baseurl=ftp://192.168.100.10/centos //設置yum源的訪問地址及路徑
gpgcheck=0 //禁用gpg檢查gpgkey
enabled=1 //啟動此yum源
[iaas]
name=iaas
baseurl=ftp://192.168.100.10/iaas/iaas-repo
gpgcheck=0
enabled=1
# cat /etc/yum.repos.d/ftp.repo

如果遇到進程卡死的狀態
[root@compute yum.repos.d]# rm -r /var/run/yum.pid            
rm: remove regular file ‘/var/run/yum.pid’? y

1.8 搭建FTP服務器開機自啟

[root@controller ~]# yum install vsftpd –y
[root@controller ~]# vi /etc/vsftpd/vsftpd.conf
# 添加anon_root=/opt/
# wq 保存退出
[root@controller ~]# systemctl start vsftpd
[root@controller ~]# systemctl enable vsftpd

1.9 環境變量配置

[root@controller ~]# yum install iaas-xiandian –y
[root@compute ~]# yum install iaas-xiandian –y
[root@controller ~]# vi /etc/xiandian/openrc.sh
# 跟據表中給定參數設置,注意,外網網卡名稱之前用ip a 驗證過,根據實際寫。
# Cinder和swift分區名不能混了,lvm那個分區是cinder.
Mysql_Admin_Passwd=000000                         //數據庫用戶密碼
Admin_Passwd=000000                               //管理員密碼
Demo_User_Passwd=000000                           //演示用戶密碼
Demo_DB_Passwd=000000                             //演示數據庫密碼
Contoller_Hostname=controller                     //控制節點主機名
Controller_Mgmt_IPAddress=172.24.2.10             //控制節點管理網段密碼
Gateway_Mgmt=172.24.2.1                           //管理網段網關
Controller_External_IPAddress=172.24.3.10         //外部地址
Network_Start_Vlan_ID=43                     //網絡節點開始Vlan ID
Network_End_Vlan_ID=46                       //網絡節點結束Vlan ID
Compute_Hostname=compute                     //實例節點主機名
Compute_Mgmt_IPAddress=172.24.3.20           //實例節點管理地址
Compute_External_IPAddress=172.24.3.20       //實例節點外部地址
Stroage_Cinder_Disk=sda3                     //Cinder存儲磁盤分區名稱
Stroage_Swift_Disk=sda2                      //Swift存儲磁盤分區名稱

scp   /etc/xiandian/openrc.sh  192.168.100.20:///etc/xiandian/openrc.sh 
# 將文件傳給compute節點
[root@controller opt]# grep -vE "^$|^#" /etc/xiandian/openrc.sh 

2. 基礎配置操作

[root@controller ~]# iaas-pre-host.sh
[root@controller ~]# reboot
[root@compute ~]# iaas-pre-host.sh
[root@compute ~]# reboot

 

3. MySQL搭建

[root@controller ~]#iaas-install-mysql.sh
[root@controller ~]# time iaas-install-mysql.sh
[root@compute ~]# yum -y install  MySQL-python

#使用腳本安裝數據庫服務,以root用戶身份登錄數據庫,查詢mysql數據庫中所有表的信息
mysql -uroot -p000000
show databases
use mysql
show tables;
#查到運行時間
#查到默認的存儲引擎 InnoDB
#查到支持的存儲引擎
MariaDB [(none)]> show variables like "storage_engine"; 
+----------------+--------+ 
| Variable_name  | Value  | 
+----------------+--------+ 
| storage_engine | InnoDB | 
+----------------+--------+ 
1 row in set (0.00 sec) 
MariaDB [(none)]> show variables like "have%"; 
+----------------------+----------+ 
| Variable_name        | Value    | 
+----------------------+----------+ 
| have_compress        | YES      | 
| have_crypt           | YES      | 
| have_dynamic_loading | YES      | 
| have_geometry        | YES      | 
| have_openssl         | YES      | 
| have_profiling       | YES      | 
| have_query_cache     | YES      | 
| have_rtree_keys      | YES      | 
| have_ssl             | DISABLED | 
| have_symlink         | DISABLED | 
+----------------------+----------+ 
10 rows in set (0.00 sec) 

 

4. keystone管理認證用戶

[root@controller ~]#iaas-install-keystone.sh 

# 創建用戶testuser,密碼為xiandian,將testuser用戶分配給admin項目,賦予用戶admin的權限。

source /etc/keystone/admin-openrc.sh

openstack user create --domain demo --password xiandian testuser  #創建用戶

openstack role add --project admin --user testuser admin   # 分配給admin項目,賦予用戶admin權限

# 列出數據庫 keystone 中的所有表


# 將其中 keystone 的數據庫導出為 keystone.sql 文件,並使用 sed 命令顯示文件 keystone.sql 中前 20 行內容。
[root@controller ~]# mysqldump -uroot -p000000 keystone>keystone.sql

sed -n '1,20p' keystone.sql

5. glance 搭建

[root@controller ~]# iaas-install-glance.sh


# 使用CentOS_6.5_x86_64_XD.qcow2文件創建名為examimage的鏡像;使用openstack命令查看鏡像列表;設置該鏡像的標簽為lastone,查詢鏡像詳細信息

[root@controller ~]glance image-create --name "examimage" --disk-format qcow2 --container-format bare --progress </opt/iaas/images/CentOS_6.5_x86_64_XD.qcow2
[root@controller ~]# openstack image set examimage  --tag  lastone  打上標簽

openstack image list   # 查看鏡像列表	

openstack image show examimage   # 查看鏡像詳細標簽

6. nova搭建

[root@controller ~]# iaas-install-nova-controller.sh
[root@compute ~]# iaas-install-nova-compute.sh
#使用nova相關命令查詢nova服務狀態列表。
 nova service-list
 # 使用 nova 相關命令,查詢 nova 所有的監控列表,並查看監控主機的詳細 信息
[root@controller ~]#nova hypervisor-list
[root@controller ~]#nova hypervisor-show compute
[root@controller ~]# nova usage-list 
[root@controller ~]# nova quota-show
[root@controller ~]# nova host-list
[root@controller ~]# nova host-describe compute

 

7. neutron搭建

[root@controller ~]#iaas-install-neutron-controller.sh
[root@compute ~]#iaas-install-neutron-compute.sh

source /etc/keystone/admin-openrc.sh

[root@controller ~]#iaas-install-neutron-controller-gre.sh
[root@compute ~]#iaas-install-neutron-compute -gre.sh

[root@controller ~]# systemctl enable neutron-lbaas-agent

# 使用neutron相關命令查詢子網的列表信息,並查看int-subnet1的詳細信息。
neutron subnet-list
+----------------------------------+-------------+------------------+-----------------------------------+
| id                               | name        | cidr             | allocation_pools                  |
+----------------------------------+-------------+------------------+-----------------------------------+
| dbec58ae-                        | int-subnet2 | 10.0.1.0/24      | {"start": "10.0.1.2", "end":      |
| 0e36-4de8-8b40-15c7b28df550      |             |                  | "10.0.1.254"}                     |
| ba1f3480-7212-43a6-9c29-dd67415e | int-subnet1 | 10.0.0.0/24      | {"start": "10.0.0.2", "end":      |
| 4f1e                             |             |                  | "10.0.0.254"}                     |
| b2934fee-b3ae-                   | ext-subnet  | 192.168.200.0/24 | {"start": "192.168.200.2", "end": |
| 4a5e-8964-818e76361570           |             |                  | "192.168.200.254"}                |
+----------------------------------+-------------+------------------+-----------------------------------+
neutron subnet-show int-subnet1
+-------------------+--------------------------------------------+
| Field             | Value                                      |
+-------------------+--------------------------------------------+
| allocation_pools  | {"start": "10.0.0.2", "end": "10.0.0.254"} |
| cidr              | 10.0.0.0/24                                |
| created_at        | 2020-10-16T18:35:22                        |
| description       |                                            |
| dns_nameservers   |                                            |
| enable_dhcp       | True                                       |
| gateway_ip        | 10.0.0.1                                   |
| host_routes       |                                            |
| id                | ba1f3480-7212-43a6-9c29-dd67415e4f1e       |
| ip_version        | 4                                          |
| ipv6_address_mode |                                            |
| ipv6_ra_mode      |                                            |
| name              | int-subnet1                                |
| network_id        | 3e31a959-8719-480f-9bf0-a95f07c8eebc       |
| subnetpool_id     |                                            |
| tenant_id         | 550b28f573584fafb9d7a1601caa7ee1           |
| updated_at        | 2020-10-16T18:35:22                        |
+-------------------+--------------------------------------------+
# 用 neutron 命令 查詢網絡服務的列表信息
[root@controller ~]# neutron agent-list -c binary -c agent_type -c alive
+---------------------------+--------------------+-------+
| binary                    | agent_type         | alive |
+---------------------------+--------------------+-------+
| neutron-l3-agent          | L3 agent           | :-)   |
| neutron-metadata-agent    | Metadata agent     | :-)   |
| neutron-dhcp-agent        | DHCP agent         | :-)   |
| neutron-metadata-agent    | Metadata agent     | :-)   |
| neutron-openvswitch-agent | Open vSwitch agent | :-)   |
| neutron-lbaas-agent       | Loadbalancer agent | :-)   |
| neutron-openvswitch-agent | Open vSwitch agent | :-)   |
+---------------------------+--------------------+-------+

 

8. 安裝Dashboard服務

[root@controller ~]#iaas-install-dashboard.sh

#打開瀏覽器訪問Dashboard
http://controller(或本機內網ip)/dashboard

# 使用curl命令查詢http://192.168.100.10/dashboard。
curl -i http://192.168.100.10/dashboard

9. 網絡創建

# 創建雲主機外部網絡 ext-net,子網為 ext-s。+
ubnet,雲主機浮動 IP 可用網段為 192.168.200.100 ~ 192.168.200.200,網關為192.168.200.1。
# 創建雲主機內部網絡int-net1, 子網為 int-subnet1,雲主機子網 IP 可用網段為 10.0.0.100 ~ 10.0.0.200,網關為 10.0.0.1; 
# 創建雲主機內部網絡 int-net2,子網為 int-subnet2,雲主機子網 IP 可用網段為 10.0.1.100 ~ 10.0.1.200,網關為 10.0.1.1。
# 添加名為 ext-router 的路由器,添加網關在 ext-net 網絡, 添加內部端口到 int-net1 網絡,完成內部網絡 int-net1 和外部網絡的連通。 


(1)管理員 → 網絡 → 創建網絡ext-net → 創建子網ext-subnet(192.168.200.100 ~ 192.168.200.200,網關為192.168.200.1) 
(2)管理員 → 網絡 → 創建網絡int-net1 → 創建子網int-subnet1(10.0.0.100 ~ 10.0.0.200,網關為 10.0.0.1) 
(3)管理員 → 網絡 → 創建網絡int-net2 → 創建子網int-subnet2(10.0.1.100 ~ 10.0.1.200,網關為 10.0.1.1) 
(4)項目 → 網絡 → 路由 → 新建路由 → 添加網關ext-net,內網接口int-net1
(5)項目 → 計算 → 訪問安全 → 管理規則 → 添加規則(ICMP、TCP、UDP)


# 使用neutron相關命令查詢子網的列表信息,並查看int-subnet1的詳細信息。
如果顯示An auth plugin is required to fetch a token:
source /etc/keystone/admin-openrc.sh
neutron subnet-list
neutron subnet-show int-subnet1

 

10. 安裝cinder塊存儲服務

[root@controller ~]# iaas-install-cinder-controller.sh
[root@compute ~]#iaas-install-cinder-compute.sh

11. 安裝Swift對象存儲服務

[root@controller~]#source /etc/keystone/admin-openrc.sh
[root@controller ~]#iaas-install-swift-controller.sh
[root@compute ~]#iaas-install-swift-compute.sh

12. trove 安裝

[root@controller ~]# iaas-install-trove.sh
[root@controller ~]# trove list

13. trove 管理

# 上傳軟件包中的鏡像文件 MySQL_5.6_XD.qcow2 到雲平台,並創建trove 數據庫服務存儲類型 mysql
[root@controller ~]# glance image-create --name "mysql-5.6" --disk-format qcow2  --container-format bare --progress </opt/iaas/images/MySQL_5.6_XD.qcow2

將顯示的內容復制到答題框

# 注意:如果有錯誤,可能是鏡像存放目錄的問題
[root@controller ~]# trove-manage datastore_update mysql ''
將顯示的內容復制到答題框

trove-manage datastore_update mysql ''

14.ALarm安裝

[root@controller ~]# iaas-install-alarm.SH

15.添加控制節點資源到計算節點

[root@controller ~]#  vi /etc/xiandian/openrc.sh
將Compute 節點的 IP 和主機名改為controller 節點和 IP
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.100.10
##Controller Server hostname. example:controller
HOST_NAME=controller
##Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.100.10
##Compute Node hostname. example:compute
HOST_NAME_NODE=controller
在controller 節點執行 nova-compute 腳本
[root@controller ~]# iaas-install-nova-compute.sh

 

IaaS平台運維

IaaS平台運維准備工作:
按以下配置在雲平台中創建雲主機:
(1)名稱:iaas_all;
(2)鏡像文件:iaas-all;
(3)雲主機類型:m1.large;
(4)網絡1:int-net1,綁定浮動IP;
(5)網絡2:int-net2。
[root@controller ~]glance image-create --name "iaas-all" --disk-format qcow2  --container-format bare --progress </opt/iaas/images/XianDian-IaaS-All.qcow2             
[=============================>] 100%

1.MongoDB管理

1.MongoDB管理
# 登錄“iaas_all”雲主機,e登錄mongodb數據庫。
mongo –host 127.0.0.1:27017
# 新建一個名為xiandian的數據庫;
use xiandian

# 使用for循環,向數據庫xiandian下的集合student中插入100條數據:"_id" : i,"name" : "xiaoming", "age" : "21",其中循環變量為“i”;
for(vari=1;i<=100;i++)db.student.insert({"_id":i,"name":"xiaoming","age":"21"});

# 使用命令統計集合student中的數據條數;
db.student.find().count()

# 使用命令查詢集合stduent中_id小於等於33、忽略前15個數據、並按照_id降序排列的結果。
db.student.find({"_id":{$lte:33}}).skip(15).sort({"_id":-1})

2.rabbitmq管理

2.rabbitmq管理
# 登錄“iaas_all”雲主機。
# 使用rabbitmqctl命令創建用戶xiandian-admin,密碼為admin;\
rbbitmqctl add_user xiandian-admin admin
 
# 賦予xiandian-admin用戶administrator的角色並查詢;
rabbitmqctl set_user_tags xiandian-admin administrator
rabbitmqctl list_users


# 授予用戶xiandian-admin對本機所有資源可寫可讀可執行的權限,查詢xiandian-admin用戶的授權信息。
  	rabbitmqctl set_permissions -p / xiandian-admin ".*" ".*" ".*"
	rabbitmqctl list_user_permissions xiandian-admin

3.cinder管理

3.cinder管理
# 登錄http://192.168.100.10/dashboard,創建雲主機名為“vm_extend”,鏡像使用“centos6.5”,flavor使用“m1.medium”;	
# 登錄“vm_extend”雲主機,從該主機的硬盤“/dev/vda”中分出一個10G的分區,使用這個分區將雲主機“vm_extend”根目錄所在邏輯分區擴容5G;
# 在雲主機上用df -h命令查看掛載信息。
[root@host-10-10-10-115 ~]#fdisk /dev/vda
[root@host-10-10-10-115 ~]# lsblk 	
[root@host-10-10-10-115 ~]# vgs 
[root@host-10-10-10-115 ~]# lvs 
[root@host-10-10-10-115 ~]# pvcreate /dev/vda3 
[root@host-10-10-10-115 ~]# vgextend VolGroup /dev/vda3
[root@host-10-10-10-115 ~]# vgs 
[root@host-10-10-10-115~]# lvextend -L +5G /dev/mapper/VolGroup-lv_root 
[root@host-10-10-10-115~]# resize2fs /dev/mapper/VolGroup-lv_root  
[root@host-10-10-10-115 ~]# df -h

4. heat管理

4.heat管理(4分)
#在controller節點,安裝heat服務,使用提供的文件server.yml創建名為heat的stack,其中glance鏡像使用centos7,網絡使用int-net1。提交查詢stack列表信息以文本形式提交到答題框中
glance image-list
nova network-list
heat stack-create -f server.yml  -P  ImageID=查詢到的鏡像名 -P NetID=查詢到的網絡名   mystack
heat  stack-list  
#登錄“iaas_all”雲主機,使用heat相關命令,查詢heat模板的版本信息。依次將操作命令及返回結果以文本形式提交到答題框。
heat template-version-list

5. MariaDB管理

5.MariaDB管理
# 登錄http://192.168.100.10/dashboard,創建兩台centos7系統的雲主機,構建maria--db高可用數據庫集群,通過命令查詢集群狀態。

6.nova管理

#登錄“iaas_all”雲主機,通過nova的相關命令創建名為exam、ID為1234、內存為1024M、硬盤為20G、虛擬內核數量為2的雲主機類型,查看exam的詳細信息。依次將操作命令及返回結果以文本形式提交到答題框。
nova flavor-create exam 1234 1024 20 2 
nova flavor-show exam

7.對象存儲管理

#登錄“iaas_all”雲主機,使用openstack命令,創建名為examtest的容器並查詢,上傳一個aaa.txt(可自行創建)文件到這個容器中並查詢。依次將操作命令和返回結果以文本形式提交到答題框。
[root@xiandian ~]# openstack container create examtest
[root@xiandian ~]# openstack container list
[root@xiandian ~]# openstack object create examtest aaa.txt 
[root@xiandian ~]# openstack object list examtest

8.KVM管理

#登錄controller節點,首先查看當前系統有多少大頁,然后設置大頁數量為20並查看,其次使用命令使配置永久生效,最后將大頁掛載到/dev/hugepages/上。依次將操作命令和返回結果以文本形式提交到答題框。
[root@controller ~]#cat /proc/meminfo | grep HugePages  
[root@controller ~]#echo 2000 > /proc/sys/vm/nr_hugepages 
[root@controller ~]#sysctl -w vm.nr_hugepages=2000 
[root@controller ~]#mount -t hugetlbfs hugetlbfs /dev/hugepages 

9.防火牆管理

#登錄http://192.168.100.10/dashboard
#創建名為nginx的防火牆;
#添加防火牆規則nginx-80,放行所有源IP、源端口、目的IP、目的端口為80的報文;
#創建防火牆策略nginx-policy,添加nginx-80規則。
#使用neutron命令查詢防火牆詳細信息、策略詳細信息、規則詳細信息,依次將操作命令和返回結果以文本形式提交到答題框。
[root@controller ~]# neutron firewall-show nginx
[root@controller ~]# neutron firewall-policy-show nginx-policy
[root@controller ~]# neutron firewall-rule-show nginx-80

10.glance管理

#登錄“iaas_all”雲主機,使用glance相關命令,上傳cirros鏡像,名字為“cirros”,類型為qcow2,然后使用curl的方法,查詢glance image api的狀態和版本信息。將上述所有操作命令和返回結果以文本形式提交到答題框。
glance image-create --name " cirros " --disk-format qcow2 --container-format bare --progress < /opt/ cirros-0.3.4-x86_64-disk.img  

curl -i -H "X-Auth-Token:`openstack token issue | awk -F '|' ' / id / {print $2}'`" http://controller:9292/v2/images

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM