OpenStack:主要目标是管理数据中心的资源和简化资源的分配
1、许多开源软件堆积的集合,功能上实现了1+1>2
2、是构建公有云iaas和私有云paas的技术实现,
3、是一个集成的框架,可以在这个框架之上进行二次开发满足业务的需要,可借助VMware和KVM搭建计算资源池

此课程基于51CTO学院的《openstack零基础入门+企业实战》课程整理而得,课程链接:https://edu.51cto.com/course/20724.html
参考博客连接:https://blog.csdn.net/qq_41998290/article/details/87620081
https://www.cnblogs.com/kevingrace/p/5707003.html
https://blog.csdn.net/hutiewei2008/article/details/87921936
https://blog.csdn.net/qq_29537269/article/details/107568489
https://blog.csdn.net/wylfengyujiancheng/article/details/51868979?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param

前言

openstack_N版本安装包:

链接:https://pan.baidu.com/s/17lpoLXfJZuEAulCkxss3mw 
提取码:0i0r 
复制这段内容后打开百度网盘手机App,操作更方便哦

准备工作:

(1)三台虚拟机
1.1controller节点:
3个硬盘 8G/4H/60G/30G/30G
两个网卡:
ens33一个浮动地址(桥接),提供出网地址:192.168.12.93
ens37一个内网IP地址(桥接),用于内网之间通信:192.168.12.91
1.2computer节点
2个硬盘 6G/4H/60G
两个网卡:
ens33一个浮动地址(桥接),提供出网地址:192.168.12.94
ns37一个内网IP地址(桥接),用于内网之间通信:192.168.12.92
两个节点均
(2)安装vim编辑器

yum install vim 或者yum -y install vim*

(3)修改ip配置文件,配置静态ip(4个网卡都要配置)

vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.12.93   
NETMASK=255.255.255.0
GATEWAY=192.168.12.1
DNS1=192.168.111.2

(4)网络重启

service network restart

(5)关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

(6)初始化,安装要用到的服务,各个节点操作

yum -y install wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel vim ncurses-devel autoconf automake zlib-devel python-devel epel-release lrzsz openssh-server

(7)关闭防火墙、networkmanager,iptables,selinux,各个节点操作

systemctl stop firewalld && systemctl disable firewalld && systemctl stop NetworkManager && systemctl disable NetworkManager

(正常情况下,Centos不存在iptables)

systemctl  stop  iptables &&  systemctl  disable  iptables

(8)修改selinux ,重启虚拟机生效

vim  /etc/sysconfig/selinux  
SELINUX=disabled

(9)配置host文件,各个节点保持一致

vim  /etc/hosts   两个节点最后一行添加如下内容
192.168.12.91 controller
192.168.12.92 computer

(10)配置主机名
192.168.12.91上操作

hostnamectl set-hostname controller

192.168.12.92操作

hostnamectl set-hostname computer

(11)做时间同步,各个节点操作

ntpdate cn.pool.ntp.org        

controller节点 上配置( 只有 centos7 能用, 6 还用 ntp)

[root@controller etc]# vim chrony.conf 
allow 192.168.0.0/16 #允许那些服务器和自己同步时间
[root@controller etc]# systemctl enable chronyd.service     #开机启动
[root@controller etc]#  systemctl start chronyd.service
[root@controller etc]# timedatectl set-timezone Asia/Shanghai      #设置时区
[root@controller etc]# timedatectl status
      Local time: 四 2020-08-06 17:07:47 CST
  Universal time: 四 2020-08-06 09:07:47 UTC
        RTC time: 四 2020-08-06 09:07:47
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

computer节点上配置

[root@computer etc]# yum install -y chrony
[root@computer etc]# vim /etc/chrony.conf
server 192.168.12.91 iburst                                  #只留一行
[root@computer etc]# systemctl enable chronyd.service
[root@computer etc]# systemctl start chronyd.service
[root@computer etc]# timedatectl set-timezone Asia/Shanghai
[root@computer etc]# chronyc sources

(12)配置无密码登陆,各个节点操作

cd /root
ssh-keygen -t rsa   

#一直回车即可

ssh-copy-id -i .ssh/id_rsa.pub controller
ssh-copy-id -i .ssh/id_rsa.pub computer

(13)上传openstack_N版本压缩包

rz--上传
sz--下载

(14)开始安装openstack,N版本
——上传openstack离线软件包到root目录下(在controllercomputer节点操作)

在root下创建一个目录openstack,然后把软件包解压到这个目录下

mkdir /root/openstack && cd /root/openstack && tar zxvf /root/openstack_N.tar.gz

——解压之后会出现一个openstack目录,把openstack目录整体移动到/下(controllercomputer节点操作)

mv openstack /

——重新配置yum源(controllercomputer节点都操作)

cd /etc/yum.repos.d/ && mkdir bak && mv CentOS-* bak/ && mv epel* bak/
cp bak/CentOS-Base.repo ./

生成一个新的openstack的yum源

cat <<EOF > /etc/yum.repos.d/openstack.repo 
[openstack]
enable=1
gpgcheck=0
baseurl=file:///openstack
EOF
yum makecache(理清缓存)

(15)openstack应答文件安装
controllercomputer节点都操作)

yum install centos-release-openstack-newton -y
cd /etc/yum.repos.d && mv *.repo bak/ && cp bak/openstack.repo ./  && cp bak/CentOS-Base.repo ./
yum makecache

(以下controller操作)

yum install openstack-packstack -y
cd /root
packstack --gen-answer-file=openstack.txt 

#这样会生成一个应答文件openstack.txt
(16)查看openstack应答文件内容

grep -vE '^$|^#' openstack.txt

(17)修改openstack.txt文件,修改的内容如下

vim openstack.txt
CONFIG_DEFAULT_PASSWORD=123456
CONFIG_SWIFT_INSTALL=n
CONFIG_NAGIOS_INSTALL=n
CONFIG_CINDER_VOLUMES_SIZE=10G
CONFIG_PROVISION_DEMO=n
CONFIG_LBAAS_INSTALL=y
CONFIG_NEUTRON_FWAAS=y
CONFIG_NEUTRON_VPNAAS=y
CONFIG_CONTROLLER_HOST=192.168.12.91
CONFIG_COMPUTE_HOSTS=192.168.12.92
CONFIG_NETWORK_HOSTS=192.168.12.92 //网络节点和计算节点复用

(18)查看修改之后的openstack.txt文件中安装哪些

grep -vE '^$|^#' openstack.txt |grep y

看到是y的表示安装
(19)基于应答文件安装组件

packstack --answer-file=openstack.txt

安装过程需要查看iptables状态,打开一个新对话,在controllercomputer节点

systemctl status iptables

如果发现iptables处于active状态,需要停掉,否则后期可能出错

systemctl stop iptables

(20)看到如下说明安装成功

192.168.12.91_controller.pp:                       [ DONE ]            
Applying 192.168.12.92_network.pp
192.168.12.92_network.pp:                          [ DONE ]         
Applying 192.168.12.92_compute.pp
192.168.12.92_compute.pp:                          [ DONE ]         
Applying Puppet manifests                            [ DONE ]
Finalizing                                           [ DONE ]

 **** Installation completed successfully ******

(21)配置rabbitmq
——启动rabbitmq的管理界面,controller节点操作(启动不了就重开一个会话)

rabbitmq-plugins enable rabbitmq_management

——在浏览器访问

192.168.12.91:15672  //RabbitMQ默认的端口是15672,可通过ss -antulp | grep :15672查看端口状态
默认账号:guest
默认密码:guest

出现如下界面
在这里插入图片描述

(22)登陆openstack的dashboad界面

在浏览器输入:
192.168.12.91
账号:admin
动态密码:d1718149f9ce41c3

获取密码:(在controller节点获取动态密码)

cd  /root
cat keystonerc_admin

登陆之后显示如下界面
在这里插入图片描述

KeyStone配置优化

(1)controller节点操作

source  /root/keystonerc_admin 

1.查看openstack中keystone的endpoint

openstack endpoint list

2.查看keystone服务

openstack service list

3.查看image镜像服务

openstack endpoint show image    //endpoint ——服务的端点

通过上面可以看到Nova访问Glance服务去获取Image时,Nova通过访问Keystone拿到Glance的Endpoint,然后通过访问该Endpoint去获取Glance服务,我们可以通过Endpoint的region属性去定义多个region。
(2)controller节点操作
#查看keystone配置文件

grep -vE '^#|^$' /etc/keystone/keystone.conf  

#修改keystone配置文件

vim /etc/keystone/keystone.conf 

在default字段下面添加如下一行

memcache_servers = 192.168.12.93:11211(用于将数据缓存到memcache)

重启服务

systemctl restart httpd

glance配置

controller节点操作
(1)#查看glance-api配置文件

[root@controller ~]# grep -vE '^#|^$' /etc/glance/glance-api.conf 

(2)修改glance-api.conf

vim /etc/glance/glance-api.conf 
新增加如下一行
memcached_servers=192.168.12.93:11211
把之前的swift去掉
stores = file,http

(3)修改glance-registry.conf

vim /etc/glance/glance-registry.conf 
新增加如下一行
memcached_servers=192.168.12.93:11211

(4)重启服务

systemctl restart openstack-glance-api
systemctl restart openstack-glance-registry

nova配置

(以下在controller节点操作)
(1)修改nova配置文件
官方文档参考地址https://docs.openstack.org/newton/install-guide-rdo/nova-controller-install.html
修改nova.conf

vim /etc/nova/nova.conf 
  #新增加如下一行,memcahce缓存
 	 memcache_servers=192.168.12.91:11211 
 #原来是只有地址,没有http协议,需要加上http协议的
   	api_servers=http://192.168.12.91:9292     
#在第一行[DEFAULT]下面加上这行
  	transport_url=rabbit://guest:guest@192.168.12.91 
#原来的ip改成这个,并且打开注释
 	my_ip=192.168.12.91   
#原来是0.0.0.0,现在改成这个
 	vncserver_listen=192.168.12.91
#原来是主机名,改成这个主机IP
 	 vncserver_proxyclient_address=192.168.12.91

(2)重启服务

systemctl restart openstack-nova-api.service \
  openstack-nova-consoleauth.service openstack-nova-scheduler.service \
  openstack-nova-conductor.service openstack-nova-novncproxy.service

(以下在computer节点操作)
(3)修改nova配置文件

vim  /etc/nova/nova.conf 
transport_url=rabbit://guest:guest@192.168.12.91   #在第一行[DEFAULT]字段加如下一行
memcache_servers=192.168.12.91:11211    #这行注释打开,ip变成这个主机ip
api_servers=http://192.168.12.91:9292       #这行注释打开,变成这个ip地址
my_ip=192.168.12.92                                 #这行注释打开,变成这个ip地址
vncserver_proxyclient_address=192.168.12.92  #这行注释打开,变成这个ip地址
novncproxy_base_url=http://192.168.12.91:6080/vnc_auto.html   #这行注释打开,变成这个ip地址
virt_type=qemu    #这行注释打开

(4)重新启动服务

systemctl enable libvirtd.service openstack-nova-compute.service
 systemctl restart libvirtd.service openstack-nova-compute.service

(5 )查看日志,检查是否有报错

 cat /var/log/nova/nova-compute.log  

(6)启动之后在controller节点查看日志, 如果没有报错即可

cat /var/log/nova/nova-api.log      

neutron组件的配置优化

controller节点操作
(1)#修改配置文件
官网参考地址如下:
https://docs.openstack.org/newton/install-guide-rdo/neutron-controller-install.html

vim  /etc/neutron/neutron.conf                                                      
memcached_servers=192.168.12.91:11211                                          #新增加一行
transport_url = rabbit://guest:guest@192.168.12.91                           #新增加一行
lock_path=/var/lib/neutron/tmp                                                             #把地址改成这种形式

(2)#修改配置文件

vim /etc/neutron/plugins/ml2/ml2_conf.ini                                           
vni_ranges = 10:10000                                                                      #把原来10:100改成10:10000

(3)上面两个文件修改好之后重启服务

systemctl restart neutron-server

(4)新开一个端口查看日志 没有报错即可

tail -f /var/log/neutron/server.log

在网络节点(computer)操作
注:我们在实验时计算节点和网络节点是一个机器
(1)创建一个桥接网卡,桥接到能够访问外网的那个网卡,也就是ens33

cd /etc/sysconfig/network-scripts
mkdir bak
cp ifcfg-ens33 bak/

(2) 创建网桥,网桥就是用来给实例分配浮动ip地址的(浮动ip也就是外网ip)

vim ifcfg-br-ex
将以下内容复制到ifcfg-br-ex配置文件中
DEVICE=br-ex
BOOTPROTO=static
ONBOOT=yes
TYPE=OVSBridge
DEVICETYPE=ovs
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
IPADDR=192.168.12.94  #外网ip
NETMASK=255.255.255.0
DNS1=192.168.111.2
GATEWAY=192.168.12.1

(3)修改配置文件 ifcfg-ens33

vim  ifcfg-ens33
将原内容全部删除,复制以下内容
DEVICE=ens33
ONBOOT=yes                    #设置开机自启动
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex        #桥接到这个网卡上

(4)重启网络

service network restart

(5)查看网卡配置

ip addr

在这里插入图片描述

上图最后br_ex的ip应该是192.168.12.94!!

(6)修改配置文件

vim  /etc/neutron/neutron.conf                                             #修改配置文件
transport_url = rabbit://guest:guest@192.168.12.91           #新增加一行配置文件
memcached_servers=192.168.12.91:11211                       #新增加一行
lock_path=/var/lib/neutron/tmp                                            #原来的路径变成这个
cd /etc/neutron
vim l3_agent.ini                                                                   #修改三层代理的和浮动ip相关的配置文件
ovs_integration_bridge = br-int                                          #这行注释打开
availability_zone = nova                                                     #这行注释打开
vim metadata_agent.ini                                                      #修改配置文件
nova_metadata_port = 8775                                             #这行注释打开
nova_metadata_protocol = http                                         #这行注释打开
memcache_servers = 192.168.12.91:11211                    #新增加一行
vim dhcp_agent.ini                                                            # 修改配置文件
ovs_integration_bridge = br-int                                        #这行注释打开
enable_metadata_network = True                                   #原来是False,需要变成True
dhcp_domain = test.localdomain                                      #新增加一行
dnsmasq_dns_servers = 192.168.111.2                          #原来的注释打开,修改成外网的dns地址
dnsmasq_lease_max = 16777216                                  #这行注释打开
availability_zone = nova                                                  #这行注释打开

上面修改好了之后重启服务
(7)重新启动服务

systemctl list-unit-files | grep neutron                             #查看启动了哪些服务
systemctl restart neutron-ovs-cleanup.service neutron-openvswitch-agent.service neutron-metering-agent.service neutron-metadata-agent.service neutron-lbaasv2-agent.service neutron-l3-agent.service neutron-dhcp-agent.service

dashboard组件安装和配置

官网安装文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon-install.html

1、安装软件包

yum install openstack-dashboard -y 

2、编辑配置文件

vim /etc/openstack-dashboard/local_settings

(1) 在 controller 节点上配置仪表盘以使用 OpenStack 服务

OPENSTACK_HOST = "192.168.12.91"

(2) 允许所有主机访问仪表板

ALLOWED_HOSTS = ['*', ]

(3) 配置 memcached 会话存储服务

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {
    'default': {
         'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
         'LOCATION': '192.168.12.91:11211',
    }
}

(4) 启用第3版认证API

OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

(5) 启用对域的支持

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

(6) 设置时区

TIME_ZONE = "Asia/Shanghai"       

(7)重启httpd服务

systemctl restart httpd

dashboard配置云主机

(3)创建云主机
登陆openstack的dashboard界面:192.168.12.91
账号:admin
密码:动态获取
第一步:创建一个项目
身份管理------>项目------>创建项目
名称:test
点击创建项目即可
第二步:给项目创建一个成员
身份管理------>用户------>创建用户
用户名: test
密码: 123
主项目: test
点击创建用户即可
第三步:管理员分配资源
管理员操作
(1)上传一个qcow2格式的centos7镜像
1.1用dashboard上传
1.2在controller用命令上传

source keystonerc_admin
openstack image create "cirros"   --file /home/image/cirros-0.3.4-x86_64-disk.img  --disk-format qcow2 --container-format bare  --public

(之前我已经将cirros-0.3.4-x86_64-disk.img镜像上传到/home/image目录下)

上传完之后查看glance镜像列表

glance image-list

在这里插入图片描述

(2)管理员------>云主机类型------>创建云主机类型
名称:Centos7-test
VCPU数量:2
内存:1024
根磁盘:20G
其他的默认
点击创建云主机类型即可
界面会显示如下
在这里插入图片描述
第四步:创建公网络
(1)创建公网
管理员------>网络------>创建网络
名称:pub
项目:test
供应商网络类型:VXLAN
物理网络:default
网段ID:11
管理状态:UP
把外部网络勾选上即可
上面配置好了之后点击提交即可
看到如下界面
在这里插入图片描述

第五步 创建子网络
(1)创建子网
选中上面的子网------>然后点击创建子网
子网名称:pub_subnet
网络地址: 192.168.12.0/24
#这个地址是用来做浮动地址的,和网络节点能够上外网的地址是一个段的
上面配好之后选则下一步,出现如下界面
在这里插入图片描述

分配地址池中配置如下网段
192.168.12.100,192.168.12.250
上面改好之后点击已创建即可,出现如下界面
在这里插入图片描述

租户(test)操作
登陆openstack的dashboard界面:192.168.12.93
账号:test
密码:123
登陆之后显示如下:
在这里插入图片描述

第一步:创建网络
项目------>网络------>网络------>创建网络
网络名称:Project_pub
选则下一步,出现如下界面
在这里插入图片描述
子网名称: Project_sub
网络地址:10.2.6.0/24
#这个地址是私网地址,随意配置网段
选则下一步,出现如下界面
在这里插入图片描述
分配地址池
10.2.6.100,10.2.6.200
上面改好之后选则已创建即可 ,出现如下界面
在这里插入图片描述

第二步:创建路由器,这样才能上网
项目------>网络------>路由------>新建路由
路由名称:Project_router
外部网络:选则pub
点击新建路由即可,出现如下界面
在这里插入图片描述
选中接口------>新增接口
子网:Project:10.2.6.0/24(Project_sub)
点击提交即可,刷新一下,出现如下界面
在这里插入图片描述

上面可以看到外部网关的固定IP是192.168.12.111
找一个能上网的机器,ping 192.168.12.111 可以ping通
在这里插入图片描述

第三步 创建云主机
项目------>计算------>云主机数量------>创建云主机
出现如下界面
在这里插入图片描述

云主机名称:Centos7
可选域:nova
数量:1
上面改好之后选则下一项
在这里插入图片描述

选择源:镜像
创建新卷:否
选则centos7后面的+,点击即可

选则下一项,出现如下界面
在这里插入图片描述

点击centos7后面的+

选择下一项,选择刚刚新建的网络,
在这里插入图片描述

点击创建云主机即可,出现如下界面
在这里插入图片描述
在这里插入图片描述

给刚才的云主机绑定一个浮动ip,关联之后显示如下

在这里插入图片描述

找一个能上外网的机器,ping 192.168.10.112 不可以ping通,需要加一个安装策略
项目------>计算------>访问和安全------>管理规则

  • 添加规则

     规则:ALL ICMP
     方向:入口
    
  • 添加即可

     规则:ALL ICMP
     方向:出口
    
  • 添加即可

     规则:ssh
     添加即可
    

上面都添加好了之后就可以ping 通了
在这里插入图片描述

创建一个卷,把卷挂到云主机上
项目------>计算------>卷------>创建卷
卷名称:disk
类型:iscsi
大小:1G
可用域:nova
点击创建卷即可,选则管理连接,连接到一个云主机,这个云主机就是刚才我们创建的

openstack镜像制作(用虚拟机192.168.85.133)

制作centos7镜像
(1)创建镜像的硬盘
(2)删除镜像的唯一性,封装压缩
1、重点!!!开启虚拟化!
2、找一个虚拟机,专门用来做镜像,需要开启虚拟化

yum install epel* -y 
yum -y install qemu-kvm libvirt virt-install bridge-utils virt-manager libguestfs-tools
qemu-img create -f qcow2 /tmp/centos.qcow2 20G

3、#设置开机自启动

systemctl start libvirtd
systemctl enable libvirtd
modprobe kvm/

4、新节点安装文件上传包

yum install -y lrzsz/

5、在/tmp/目录通过rz命令上传centOS镜像/

#rz

6、启动虚拟机

#virt-install --virt-type kvm --name centos --ram 1024 --disk /tmp/centos.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=centos7.0 --location=/tmp/CentOS-7-x86_64-Minimal-2003.iso


关于上面这条命令的说明
virt-install --virt-type kvm --name centos\ #虚拟机的虚拟化类型及名字
–ram 1024 \ #配置CUP及内存大小
–disk /tmp/centos.qcow2,format=qcow2 \ #磁盘的文件的位置及格式
–network network=default \ #网络的连接方式采用默认方式
–graphics vnc,listen=0.0.0.0 \ #图形化安装开启VNC连接5901(默认)
–noautoconsole \ #无控制端口输出
–os-type=linux\ #虚拟机操作系统类型(Linux、Windows)
–os-variant=centos7.0 \ #具体的操作系统版本,可以使用命令 “osinfo-query os” 查看支持的选项
–location=/tmp/CentOS-7-x86_64-Minimal-2003.iso\ #使用location的方式进行安装指定ISO镜像位置

7、开启Xmanager(官网下载)远程管理工具制作镜像

#virt-manager

出现界面:
在这里插入图片描述
双击centos
在这里插入图片描述
弹出安装界面,进行常规性安装
在这里插入图片描述
安装完界面:
在这里插入图片描述
等几分钟安装完成选则reboot
8、然后在linux主机(xshell)执行如下,启动虚拟机

virsh start centos

9、通过Xmanager连接
在这里插入图片描述
输入账号密码登陆进去
10、编辑centos的网卡设置

vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT设置为yes
去掉uuid这行

在这里插入图片描述

11、重启服务

service network restart 

12、ip addr 查看ip地址,显示如下
在这里插入图片描述

13、在kvm的物理机(xshell)上登陆虚拟机

ssh root@192.168.122.60                     账号:root 密码:123

14、做如下修改:(和ssh有关,禁止dns解析,这样连接速度会更快)

sed 's/.*UseDNS.*/UseDNS no/g' /etc/ssh/sshd_config -i
sed 's/^#PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config -i
sed 's/GSSAPIAuthentication.*/GSSAPIAuthentication no/g' /etc/ssh/sshd_config -i

15、关闭selinux iptables

vi /etc/sysconfig/selinux
更改SELINUX=disabled

16、

iptables -F

17、

systemctl stop firewalld
ystemctl disable firewalld         #没有的话不用理会

18、

vi /etc/default/grub
grub_cmdline_linux 这行添加如下一段
console=ttys0,115200n8
即变成如下(可直接删除原有的,复制粘贴下面这行)
GRUB_CMDLINE_LINUX="crashkernel=auto console=ttys0,115200n8 rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

19、安装一些工具包

yum install vim net-tools wget lrzsz unzip  -y

20、把cloud.zip上传到192.168.122.60这个机器上

#rz

解压

unzip  cloud.zip
cd /cloud
mv centos-cloud-init.sh cloud-init.sh               //改名
chmod 755 cloud-init.sh                                #赋予直接执行的权限
chmod +x cloud-init.sh 
sed -i 's/\r//g' cloud-init.sh                           # 删除转义符
mv cloud-init.sh /usr/bin/                     #将cloud-init.sh文件移到/usr/bin/目录下
echo ' /bin/bash /usr/bin/cloud-init.sh' >> /etc/rc.d/rc.local       #把这个文件追加到/etc/rc.d/rc.local  目录下

注:cloud-init.sh解释
在云平台中,创建云主机的时候希望能够对主机进行一些初始化操作,如配置ip,主机名,密码,ssh登录等
21、编辑网卡配置文件

#vim /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
一定要删除MAC和UUID

22、删除网卡规则文件

rm -f /etc/udev/rules.d/70-persistent-net.rules

23、清除相关记录

yum clean all
rm -rf /var/log/yum.log
rm -rf /var/lib/yum/*
rm -rf /root/install.log
rm -rf /root/install.log.syslog
rm -rf /root/anaconda-ks.cfg
rm -rf /var/log/anaconda*
rm -rf /etc/udev/rules.d/70-persistent-net.rules

24、关机

history -c; init 0     #清空历史记录

然后在kvm物理机上执行如下命令

virt-sysprep -d centos   #清理机器信息,避免开机出现冲突
cd /tmp/
virt-sparsify --compress ./centos.qcow2 ./centos7  #压缩镜像

压缩之后的镜像centos7保存到桌面(用命令sz),可以上传到openstack

#sz

openstack 常用命令行

(1) #列出所有租户的虚拟机

nova list --all-tenants

(2)#查看当前登录用户的虚拟机

nova list 

(3)查看flavor(虚拟机的配置类型)

nova flavor-list   

(4)查看所有的镜像image

glance image-list

(5)查看所有的网络信息

neutron net-list

(6)查看安全组

nova secgroup-list

(7)获取keypair

nova keypair-list

(8)查看nova的服务列表,获取compute的主机名和zone名

nova service-list

(9)上传镜像(需要在登录模式下,即先运行/root目录下的keystonerc_admin文件)

source keystonerc_admin
openstack image create "镜像名"   --file 镜像所在路径  --disk-format qcow2 --container-format bare  --public
例如:
我先把镜像cirros-0.3.4-x86_64-disk.img上传到/home/image目录
上传到云上的镜像取名为:cirrors
命令行:
openstack image create "cirros"   --file /home/image/cirros-0.3.4-x86_64-disk.img  --disk-format qcow2 --container-format bare  --public

(10)创建虚拟机(这条命令没试过!!!仅供参考

 (neutron-server)[neutron@B-OPS-9-3 /]$ nova boot --flavor m1.large  \   #flavor名字

--image xuy-Snapshot  \    #镜像id  

--nic net-id=bd0e166f-ecb4-4650-a715-32e7ca1fbecf   \

--security-groups f7f2eef3-bf34-49a2-a2e9-c8f12ec19973    \   #安全组ID

--availability-zone  nova:B-OPS-9-3  \   #在制定的区域:主机名启动instance

--key-name octavia_ssh_key    \    #KEY名字

C929    #新建虚拟机的名字

(11)查看虚拟机信息

nova show +虚机名字/id

(12)nova一些常用命令

$ nova stop [vm-name]或[vm-id] #关闭虚拟机
$ nova start [vm-name]或[vm-id] #启动虚拟机
$ nova suspend [vm-name]或[vm-id] #暂停虚拟机
$ nova resume [vm-name]或[vm-id] #启动暂停的虚拟机
$ nova delete [vm-name]或[vm-id] #删除虚拟机
$ nova-manage service list #检查服务是否正常

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐