注意:如果web登录Dashboard仪表盘出错了请联系管理员刷新,使用https://协议登录成功,可能跟ssl有关。
在配置httpd.conf文件时,需要修改主目录为opt,这样在网站上打开时才会显示opt目录中的文件
修改以下两处:
DocumentRoot "/opt"
使用提供的http服务地址,在http服务下,存在centos7.5和iaas的网络yum源,使用该http源作为安装iaas平台的网络源。分别设置controller节点和compute节点的yum源文件http.repo。
[root@controller yum.repos.d]#cat http.repo
[centos]
name=centos
baseurl=http://IP地址/centos #该IP是提供的http服务地址,练习改成自己的
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=http://IP地址/iaas #该IP是提供的http服务地址,练习改成自己的
gpgcheck=0
enabled=1
在controller节点上部署chrony服务器,允许其他节点同步时间,启动服务并设置为开机启动;在compute节点上指定
controller节点为上游NTP服务器,重启服务并设为开机启动。
[root@controller /]# yum install -y chrony && systemctl enable chronyd
[root@controller /]# vi /etc/chrony.conf
allow 192.168.0.0/16 #根据自身IP段进行配置,意为允许广播到的网络范围
local stratum 10
[root@controller /]# systemctl start chronyd
[root@compute /]# yum install -y chrony && systemctl enable chronyd
[root@compute /]# vi /etc/chrony.conf
server controller节点IP iburst
注意域名解析服务器,因为是通过主机名解析不是直接通过IP地址,如果域名解析没有配置好,那么时间同步不会成功,CST:中央标准时区。UTC:世界协调时间。我国为CST+8的时间标准。
[root@controller /]# date
2018年 03月 02日 星期五 14:09:45 CST
[root@controller /]# tzselect #设置时区
时区的设置文件:/etc/timezone
时间相关文件:/etc/localtime
时间相关的文件:/usr/share/zoneinfo/Asia 这里边放着亚洲主要城市的时间
设置时间 rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
登录数据库服务,创建库test,并在库test中创建表company(表结构如(id int not null primary key,name varchar(50),addr varchar(255))所示),在表company中插入一条数据(1,"alibaba","china")。
[root@controller /]#mysql -uroot -p000000
mysql> create database test;
mysql> \u test
mysql> create table company(
->id int not null primary key,
->name varchar(50),
->addr varchar(255)
->);
mysql> insert into company values(1,'alibaba','china');
使用RabbitMQ服务的相关命令创建用户chinaskill,密码为chinapd,并赋予该用户administrator权限。
[root@controller /]#rabbitmqctl add_user chinaskill chinapd
[root@controller /]#rabbitmqctl set_user_tags chinaskill administrator
[root@controller /]#rabbitmqctl set_permissions chinaskill ".*" ".*" ".*"
启动RabbitMQ Web服务检验
[root@controller /]#rabbitmq-plugins enable rabbitmq-management
浏览器输入http://192.168.100.10:15672使用chinaskill登录
主从数据库配置:
1、安装数据库mariadb-server(多节点操作):
[root@node-1 /]# yum install -y mariadb-server
[root@node-2 /]# yum install -y mariadb-server
[root@node-3 /]# yum install -y mariadb-server
2、主数据库修改配置文件:
[root@node-1 /]# vi /etc/my.cnf
[mysqld]
server-id=1 #各服务器确保ID唯一性
log-bin=mysql-bin #log-bin不指定默认datadir指向的目录,mysql-bin也是头文件名
3、各节点初始化数据库:
[root@node-1 /]# mysql_install_db --user=mysql
[root@node-2 /]# mysql_install_db --user=mysql
[root@node-3 /]# mysql_install_db --user=mysql
4、从数据库修改配置文件:
[root@node-2 /]# vi /etc/my.cnf
[mysqld]
server-id=2
[root@node-3 /]# vi /etc/my.cnf
[mysqld]
server-id=3
5、启动各节点的数据库,设置开机自启:
[root@node-1 /]# systemctl start mariadb && systemctl enable mariadb
[root@node-2 /]# systemctl start mariadb && systemctl enable mariadb
[root@node-3 /]# systemctl start mariadb && systemctl enable mariadb
6、创建主从连接账号与授权:
[root@node-1 /]# create user '用户名slave'@'%' identified by '密码';
[root@node-1 /]# grant replication slave on *.* to 'slave'@'%';
#grant 允许 #replication 同步复制 # slave从权限为*.*全部 账号为'slave'@'主机名'
[root@node-1 /]# flush privileges;
[root@node-1 /]# show master status;
#查看masterlog文件和pos偏移量
7、从数据库连接:
[root@node-2 /]# change master to master_host='IP',master_user='slave',master_password='密码',master_log_file='mysql-logXXX',master_log_pos='570';
[root@node-2 /]# show slave status\G
#查看详细信息
使用自己搭建的openstack云平台,在/root目录下编写模板server.yaml,创建名为“m1.flavor”、 ID 为 1234、内存为1024MB、硬盘为20GB、vcpu数量为 1的云主机类型。
[root@controller /]#vi /root/server.yaml
heat_template_version: 2013-05-23 #模板版本
resources: #资源,不可少
m1: #名字随便起
type: OS::Nova::Flavor #不可少,使用Flavor代表要创建的是主机类型,可以在web中查看所有模板
properties: #参数,不可少
ram: 1024
name: m1.flavor
flavorid: 1234
disk: 20
vcpus: 1
[root@controller /]#openstack stack create -f yaml -t /root/server.yaml stack2
*openstack stack create命令执行yaml文件
*-f指定类型为yaml,可以不写
*-t指定模板为/root/server.yaml文件
*stack2为给堆栈起一个名字,自己定义
或者使用以下表达方式:
heat_template_version: '2013-05-23'
resources:
m1:
properties: {disk: 20, flavorid: 1234, name: m1.flavor, ram: 1024, vcpus: 1}
type: OS::Nova::Flavor
*yaml写法:每个冒号“:”符号后必须有空格
*大小写敏感
*使用缩进表示层级关系,缩进不能用tab只能是空格,缩进空格数目不重要,只要相同等级元素左对齐
注意:若执行命令报ERROR: You must provide ······,请执行source /etc/keystone/admin-openrc.sh
一、先创建lvm卷类型
[root@controller /]#cinder type-create lvm
二、创建名为blockvolume大小为2G的云硬盘
[root@controller /]#cinder create --volume-type lvm --display-name blockvolume 2
三、云硬盘扩容
[root@controller /]#lvdisplay /dev/mapper/cinder--volumes-volume--e8fa3391--867c--4fe0--84db--042498969a83
*查看卷名称和详细信息
[root@controller /]#cinder list
*查看cinder卷名称
[root@controller /]#cinder extend blockvolume 3
*扩展到3G
使用自己搭建的openstack云平台,将云主机VM1保存为qcow2格式的快照并保存到controller节点/root/cloudsave目录下,保存名字为csccvm.qcow2。
在web中创建快照生成镜像
glance image-list 查看生成的镜像
glance image-download --file /root/cloudsave/csccvm.qcow2 239cb73a-f05a-46fd-affe-a28a50341168(imageID) --progress
使用自己搭建的openstack云平台,使用http:// /cirros-0.3.4-x86_64-disk.img镜像,使用命令创建一个名为cirros的镜像。
[root@controller /]#openstack image create --disk-format qcow2 --container-format bare --file /opt/iaas/images/CentOS_7.2_x86_64.qcow2 cirros --public --project admin
*--disk-format 硬盘格式qcow2
*--container-format 容器格式为bare
*--public 公有镜像
*--project 项目为admin
*--file 后跟文件(镜像)地址
在控制节点和计算节点上分别使用iaas-install-swift-controller.sh和iaas-install-swift-compute.sh脚本安装Swift服务并创建test容器。
[root@controller /]# iaas-install-swift-controller.sh
[root@controller /]# swift post test
*使用swift post后跟容器名
在OpenStack私有云平台上,使用命令创建一个名为Fmin,ID为1,内存为1024 MB,磁盘为10 GB,vcpu数量为1的云主机类型。
[root@controller /opt/iaas/iaas-repo]# nova flavor-create Fmin 1 1024 10 1
格式:nova flavor-create
在openstack私有云平台上,使用命令创建云主机外部网络extnet,子网extsubnet,虚拟机浮动 IP 网段为172.18.x.0/24(其中x是考位号), 网关为172.18.x.1,网络使用vlan模式。
(1)首先创建外部网络
[root@controller /opt/iaas/iaas-repo]# openstack network create --project admin --provider-network-type vlan --provider-physical-network provider --external extnet
(2)创建外部网络子网
[root@controller /opt/iaas/iaas-repo]# openstack subnet create --network extnet --subnet-range 172.18.X.0/24 --gateway 172.18.X.1 --allocation-pool start=172.18.X.10,end=172.18.X.200 --dhcp extsubnet
在openstack私有云平台上,通过使用命令创建云主机内网intnet,子网intsubnet,虚拟机子网 IP 网段为10.10.x.0/24(其中x是考位号),网关为10.10.x.1。
(1)首先创建内部网络
[root@controller /opt/iaas/iaas-repo]# openstack network create --internal intnet
(2)创建内部网络子网
[root@controller /opt/iaas/iaas-repo]# openstack subnet create --subnet-range 10.10.x.0/24 --gateway 10.10.x.1 --dhcp --network intnet intsubnet
添加名为 ext-router 的路由器,配置路由接口地址,完成内网子网intsubnet和外部网络extnet的连通。
[root@controller /opt/iaas/iaas-repo]# openstack router create ext-router
[root@controller /opt/iaas/iaas-repo]# openstack router add subnet ext-subnet intsubnet
[root@controller /opt/iaas/iaas-repo]# openstack router set --enbale --enable-snat --external-gateway extnet ext-router
在openstack私有云平台上,基于“cirros” 镜像、1vCPU/1G /10G 的flavor、 intsubnet的网络,绑定浮动IP,使用命令创建一台虚拟机VM1,启动VM1,并使用PC机能远程登录到VM1。
[root@controller /opt/iaas/iaas-repo]# openstack flavor create --ram 1024 --disk 10 --vcpus 1 flavor
[root@controller /opt/iaas/iaas-repo]# nova boot --flavor flavor --image cirros --nic net-name=intnet --security-groups default VM1
(1) 创建浮动IP地址
[root@controller /opt/iaas/iaas-repo]# neutron floatingip-create extent
[root@controller /opt/iaas/iaas-repo]# neutron floatingip-list
(2)绑定浮动IP
[root@controller /opt/iaas/iaas-repo]# neutron floatingip-list
[root@controller /opt/iaas/iaas-repo]# neutron port-list
[root@controller /opt/iaas/iaas-repo]# neutron floatingip-associate --fixed-ip-address 10.10.x.3 9fb1f908-167c-4f48-9113-1d061136eff1(floatingip的ID) 2c773859-32cb-47f3-80c2-79432bd8e6e3(内网prot的ID)
连接上去需要修改安全组规则,如果可以使用图形化界面可以到Web删除
[root@controller /opt/iaas/iaas-repo]#Openstack help security
[root@controller /opt/iaas/iaas-repo]#Openstack security group list
[root@controller /opt/iaas/iaas-repo]#Opensatck security group rule list
[root@controller /opt/iaas/iaas-repo]#Openstack security group rule delete ID
[root@controller /opt/iaas/iaas-repo]#Openstack help security group rule create
[root@controller /opt/iaas/iaas-repo]#Openstack security group rule create --egress --ethertype IPv4 安全组ID 放行所有IPv4流量出去
[root@controller /opt/iaas/iaas-repo]#Openstack security group rule create --ingress --ethertype IPv4 安全组ID 放行所有IPv4流量进入
[root@controller /opt/iaas/iaas-repo]#Openstack security group rule create --ingress --protocol icmp 安全组ID 允许ICMP流量进去
[root@controller /opt/iaas/iaas-repo]#Openstack security group rule create --egress --protocol icmp/udp 安全组ID 允许ICMP出口
在openstack私有云平台上,创建一个名为“lvm”的卷类型,创建1块卷类型为lvm的40G云盘,并附加到虚拟机VM1上。
[root@controller /opt/iaas/iaas-repo]# openstack volume type create lvm
[root@controller /opt/iaas/iaas-repo]# openstack volume create --type lvm --size 40 v1
[root@controller /opt/iaas/iaas-repo]# openstack server add volume VM1 v1
在虚拟机VM1上,使用附加的云盘,划分为4个10G的分区,创建一个raid 5,其中1个分区作为热备。
[root@controller /opt/iaas/iaas-repo]# fdisk /dev/vdb #输入m可以查看fdisk帮助,创建4个分区
[root@controller /opt/iaas/iaas-repo]# Mdadm -Cv /dev/md5 -l 5 -n 3 -x 1 /dev/vdb{1,2,3,4}
或者使用一下命令指定热备盘:
[root@controller /opt/iaas/iaas-repo]# Mdadm -Cv /dev/md5 -l 5 -n 3 /dev/vdb{1,2,3} --spare-devices=1 /dev/vdb4
在Controller节点中编写/root/openstack/deletevm.sh的shell脚本,释放虚拟机VM1,执行脚本完成实例释放。
[root@controller /opt/iaas/iaas-repo]# source /etc/keystone/admin-openrc.sh
[root@controller /opt/iaas/iaas-repo]# vi /root/openstack/deletevm.sh
openstack server stop vm1
openstack server delete vm1
[root@controller /opt/iaas/iaas-repo]# chmod 755 /root/openstack/deletevm.sh #给脚本执行权限
[root@controller /root/openstack]# ./deletevm.sh #执行脚本