更改主机名
controller
hostnamectl set-hostname controller
compute
hostnamectl set-hostname compute
更改hosts文件
vi /etc/hosts
插入以下
192.168.100.* controller
192.168.100.* compute
关闭防火墙并关闭开机自启
syscemctl stop firewalld
syscemctl disable firewalld
更改selinux文件
vi /etc/selinux
添加如下
SELINUX=disabled
sentenforce 0 立即生效
挂载光盘(controller)
mkdir opt/centos opt/iaas
mount CentOS-7-x86_64-DVD-2009.iso /mnt/
mkdir /opt/centos & mkdir /opt/iaas
cp -rvf /mnt/* /opt/centos/
umount /mnt/
搭建ftp服务器
【controller节点和compute节点】
yum -y install vsftpd
修改vsftpd文件
vi /etc/vsftpd/vsftpd.conf
添加如下内容
anon_root=/opt/
设置共享目录/opt
systemctl start vsftpd
systemctl enable vsftpd
配置yum源
mv /etc/yum.repos.d/* /etc/yum
vi /etc/yum.repos.d/loca.repo
添加如下
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas-repo
gpgcheck=0
enabled=1
compute节点
添加如下
[centos]
name=centos
baseurl=ftp://controller/opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://controller/opt/iaas-repo
gpgcheck=0
enabled=1
重新生成yum源
yum makecache
清除缓存,验证yum源
【controller/compute】
yum clean all
yum list
无密钥登录
生成密钥对
【controller节点和compute节点】
ssh-keygen
【controller】复制密钥给compute节点
ssh-copy-id compute
ssh-copy-id controller
【compute】复制密钥给controller节点
ssh-copy-id controller
ssh-copy-id compute
计算节点分区
先在compute节点添加一个硬盘
用lsblk命令查看分区情况
对sdb进行分区
fdisk /dev/sdb
输入n 分第一个区
按四次回车默认
再输入+20G 设置分区大小
输入n 分第二个区
按四次回车默认
再输入+20G 设置分区大小
输入w保存退出
[root@compute ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p):
Using default response p
Partition number (3,4, default 3):
First sector (2059-104857599, default 4096):
Using default value 4096
Last sector, +sectors or +size{K,M,G} (4096-41943039, default 41943039): +10G
Partition 3 of type Linux and of size 10 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
OpenStack 搭建任务
编辑环境变量
安装xiandian
yum -y install iaas-xiandian 或 openstack-iaas
备份
cp /etc/xiandian/openrc.sh /etc/xiandian/openrc.sh.bak
vi /etc/xiandian/openrc.sh
修改内容
ctrl+V delete删除第一行注释
底线输入赋值PASS=换成PASS=000000
:%s/PASS=/PASS=000000/
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.24.10
#Controller HOST Password. example:000000
HOST_PASS=000000
#Controller Server hostname. example:controller
HOST_NAME=controller
#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.24.20
#Compute HOST Password. example:000000
HOST_PASS_NODE=000000
#Compute Node hostname. example:compute
HOST_NAME_NODE=compute
#--------------------Chrony Config-------------------##
#Controller network segment IP. example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.24.0/24
#--------------------Rabbit Config ------------------##
#user for rabbit. example:openstack
RABBIT_USER=openstack
#Password for rabbit user .example:000000
RABBIT_PASS=000000
#--------------------MySQL Config---------------------##
#Password for MySQL root user . exmaple:000000
DB_PASS=000000
#--------------------Keystone Config------------------##
#Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=doma
ADMIN_PASS=000000
DEMO_PASS=000000
#Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000
#--------------------Glance Config--------------------##
#Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000
#Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000
#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000
#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000
#--------------------Neturon Config-------------------##
#Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000
#Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000
#metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000
#Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.24.10
#External Network Interface. example:eth1
INTERFACE_NAME=ens34
#External Network The Physical Adapter. example:provider
Physical_NAME=provider
#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=101
#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=200
#--------------------Cinder Config--------------------##
#Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000
#Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000
#Cinder Block Disk. example:md126p3
BLOCK_DISK=sdb1
#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000
#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdb2
#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.24.10
#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000
#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000
#--------------------Zun Config-----------------------##
#Password for Mysql Zun user. exmaple:000000
ZUN_DBPASS=000000
#Password for Keystore Zun user. exmaple:000000
ZUN_PASS=000000
#Password for Mysql Kuryr user. exmaple:000000
KURYR_DBPASS=000000
#Password for Keystore Kuryr user. exmaple:000000
KURYR_PASS=000000
#--------------------Ceilometer Config----------------##
#Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000
#Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000
#--------------------AODH Config----------------##
#Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000
#Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000
#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000
#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000
----------------------------------------
将配置文件复制到compute节点
scp /etc/xiandian/openrc.sh compute:/etc/xiandian/openrc.sh
通过脚本安装服务
(安装前必须执行此命令否则无法进行后续操作)
【Controller节点和Compute节点】
iaas-pre-host.sh
提取compute节点的yum所有需要安装的服务
【compute节点】
cat /usr/local/bin/iaas-*compute.sh | grep yum
复制粘贴运行即可
搭建数据库组件
【controller节点】
iaas-install-mysql.sh
修改配置文件将缓存 CACHESIZE 修改为 128
vi etc/sysconfig/memcached
CACHESIZE="128"
并重启相应服务
systemctl restart mariadb
搭建认证服务组件
【controller节点】
iaas-install-keystone.sh
创建一个名为 tom 的账户,密码为 tompassword123,邮箱为tom@example.com
openstack user create --domain dema --password tompassword123 --email tom@example.com tom
--domain{记得要加域名}
搭建镜像服务组件
【controller节点】
iaas-install-glance.sh
创 建 一 个 名 为 cirros 的 镜 像 , 镜 像 文 件 使 用cirros-0.3.4-x86_64-disk.img
openstack image create --container-format bare --disk-format qcow2 --file cirros-0.3.4-x86_64-disk.img cirros
搭建计算服务组件
使用 nova 命令创建一个名为 t,ID 为 5,内存为 2048MB,磁盘容量为 10GB,vCPU 数量为 2 的云主机类型
nova flavor-create test 5 2048 10 2
搭建网络服务组件
controller 节点执行
iaas-install-neutron-controller.sh
compute 节点执行
iaas-install-neutron-compute.sh
创建云主机外部网络 ext-net,子网为 ext-subnet,云主机浮动 IP 可用网段为 192.168.10.100~192.168.10.200,
网关为 192.168.100.1。
# neutron net-create --router:external=true ext-net1
# neutron subnet-create --name ext-subnet1 --allocation-pool
start=192.168.200.100,end=192.168.200.200 --gateway 192.168.200.1 --enable-dhcp
--ip-version 4 ext-net 192.168.200.0/24
搭建图形化界面
iaas-install-dashboard.sh
修改nova配置文件使之能通过公网 IP 访问 dashboard 首页
vi /etc/nova/nova.conf
修改如下
routing_source_ip= = ['公网IP']
#修改nova配置文件,需要重启:
[root@controller1 nova]# systemctl restart libvirtd
openstack运维任务
项目管理
[root@controller ~]# openstack project create --domain dema --description "Hello shop" shop shop
用户管理
更新配额
[root@controller ~]# nova quota-update admin --instances 13
查看配额
[root@controller ~]# nova quota-class-show admin
+----------------------+-------+
| Quota | Limit |
+----------------------+-------+
| instances | 13 |
| cores | 20 |
| ram | 51200 |
| metadata_items | 128 |
| key_pairs | 100 |
| server_groups | 10 |
| server_group_members | 10 |
+----------------------+-------+
镜像管理
登 录 controller 节 点 , 使 用 glance 相 关 命 令 上 传 镜 像 , 源 使 用
CentOS_7.5_x86_64_XD.qcow2,名字为 centos7.5,修改这个镜像为共享状态,并设置最小磁盘为 5G。
glance image-create --name "centos7.5" --file chinaskills_cloud_iaas.iso --container-format bare --disk-format qcow2 --min-disk 5
后端配置文件管理
修改配置文件
vi /etc/glance/glance-api.conf
user_storage_quota = 10
重启glance服务
systemctl start openstack-glance-api
数据库管理
请使用数据库命令将所有数据库进行备份,备份文件名为 openstack.sql
mysqldump --opt --all-databases > openstack.sql
存储服务管理
创建一个名为 lvm 的卷类型,创建该类型规格键值对,要求 lvm 卷类型对应 cinder后端驱动 lvm所管
理的存储资源,名字 lvm_test,大小 1G 的云硬盘并查询该云硬盘的详细信息。
[root@controller ~]# cinder type-create lvm
+--------------------------------------+------+-------------+-----------+
| ID | Name | Description | Is_Public |
+--------------------------------------+------+-------------+-----------+
| 96d48f5e-7f57-43da-aa02-ec1446b9f3a5 | lvm | - | True |
+--------------------------------------+------+-------------+-----------+
[root@controller ~]# cinder create --name lvm_test --volume-type lvm 1
数据库管理
进入数据库myqle,创建本地用户 examuser,密码为 000000,然后查询 mysql 数据库中的 user 表的 user,host,password 字段。
insert into mysql.user(host,user,password) values("localhost","examuser",password("000000"));
然后赋予这个用户所有数据库的“查询”“删除”“更新”“创建”的权限。
grant select,delete,update,create on *.* to examuser@'localhost' identified by '000000';
存储管理
请使用 openstack 命令创建一个名为 test 的 cinder 卷,卷大小为 5G。
openstack volume create test --size 5
存储管理
存储管理
在 controller 节 点 执 行 iaas-install-swift-controller.sh, compute 节 点 执 行
iaas-install-swift-compute.sh
创建一个名为 file 的容器。
swift post file 或者 openstack container create file
存储管理
用 swift 命令,把 cirros-0.3.4-x86_64-disk.img 上传到 file 容器中。
[root@controller ~]# swift upload file cirros-0.3.4-x86_64-disk.img
添加控制节点资源到云平台
一、修改openrc.sh(控制节点)
把compute节点的名称和IP都改成controller节点的名称和IP
vi /etc/xiandian/openrc.sh
#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.20.30 --改为controller节点ip
#Compute HOST Password. example:000000
HOST_PASS_NODE=000000
#Compute Node hostname. example:compute
HOST_NAME_NODE=controller --改为controller节点hostname
————————————————
二、在Controller节点安装nova-compute服务
iaas-install-nova-compute.sh
安装到最后需要输入Controller节点密码即可成功