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