当前位置:   article > 正文

Openstack快速入门_openstack学习

openstack学习

一、熟悉OpenStack图形界面操作

1、了解Horizon项目

  • Horizon项目
    • 各OpenStack服务的图形界面都是由Horizon提供的。
    • Horizon提供基于Web的模块化用户界面。
    • Horizon为云管理员提供一个整体的视图
    • Horizon为终端用户提供一个自主服务的门户。
    • Horizon由云管理员进行管理与控制,云管理员可以通过Web界面管理OpenStack平台上的资源。
  • Horizon与Django框架
    • Horizon是一个基于Django框架的Web应用。
    • Django基于MVC(模型—视图—控制器)模式设计实现。
      • 模型(Models)文件——model.py,使用Python类来描述数据表及其操作。
      • 视图(Views)文件——views.py,包含页面的业务逻辑,该文件中的函数被称为视图。
      • Urls文件——urls.py,指出使用URL地址访问时需要调用的视图。 模板(Templates)文件——HTML网页,定义HTML模板。
    • Horizon秉承Django的设计理念,注重可重用性,致力于开发可扩展性的面板框架。
  • Horizon功能架构

  • 项目与用户
    • 项目是OpenStack服务调度的基本单元
    • 用户又称云用户,是指使用OpenStack云服务的个人、系统或服务的账户名称。
    • 可以将用户分配给特定的项目,用户作为该项目的成员就拥有该项目的权限,而权限由用户的角色决定。
    • 一个项目可以有多个用户(项目成员),一个用户可以操作和管理多个项目。
    • OpenStack用户要访问云资源,必须通过项目发出请求,项目中必须包括相关的用户。
    • 用户用于身份认证,项目用于资源管理,而两者又是相互关联的。

2、访问OpenStack主界面

  • OpenStack仪表板登录界面

OpenStack安装过程中会默认创建两个云用户账户,一个是云管理员账号admin ,另一个是用于测试的普通用户账号demo。使用PackStack安装器安装时如果没有提供应答文件,这两个账号的初始密码会随机生成,保存在keystonerc_adminkeystonerc_demo文件(位于安装时linux的主目录)。OS_PASSWORD为密码

  1. [root@node-a ~]# cat /root/keystonerc_admin
  2. unset OS_SERVICE_TOKEN
  3. export OS_USERNAME=admin
  4. export OS_PASSWORD='8dcf323357f74aec'
  5. export OS_REGION_NAME=RegionOne
  6. export OS_AUTH_URL=http://192.168.241.10:5000/v3
  7. export PS1='[\u@\h \W(keystone_admin)]\$ '
  8. export OS_PROJECT_NAME=admin
  9. export OS_USER_DOMAIN_NAME=Default
  10. export OS_PROJECT_DOMAIN_NAME=Default
  11. export OS_IDENTITY_API_VERSION=3
  12. [root@node-a ~]# cat /root/keystonerc_demo
  13. unset OS_SERVICE_TOKEN
  14. export OS_USERNAME=demo
  15. export OS_PASSWORD='8a8e6279c2154dc7'
  16. export PS1='[\u@\h \W(keystone_demo)]\$ '
  17. export OS_AUTH_URL=http://192.168.241.10:5000/v3
  18. export OS_PROJECT_NAME=demo
  19. export OS_USER_DOMAIN_NAME=Default
  20. export OS_PROJECT_DOMAIN_NAME=Default
  21. export OS_IDENTITY_API_VERSION=3

使用admin账号登录,成功登录后的主界面如图:

  • OpenStack仪表板主界面

  •  用户菜单:

  • 用户设置:

  •  界面布局:
    • 项目(Project):普通用户登录之后的项目管理
    • 管理员(Admin):云管理专用的仪表盘,普通用户不能访问该仪表盘
    • 身份管理(Identity):云管理员能够管理整个系统的身份认证任务,而普通用户只能管理自己的项目信息。

3、访问“项目”仪表盘

  • 项目>计算>概况:列出当前项目的计算资源概况。
  • 实例:指的是虚拟机。
  • :指的是虚拟机的存储设备。

 4、访问“管理员”仪表板

  • 只有以admin云管理员账户登录才能看到。

 5、访问“身份管理”仪表板

  • 身份管理>项目:显示当前登录用户可管理的项目列表。使用Packstack安装器安装的Openstack会默认提供三个项目:
    • admin:云管理员的。
    • services:为主要组件提供服务的特殊项目(没有关联登录用户)。
    • demo:测试用户demo的。

  • 用户列表:
    • 身份管理>用户:会显示当前登录用户可查看的用户列表。

6、访问“设置”仪表板

 7、自定义仪表板和面板

  • Horizon负责OpenStack管理的统一Web界面,其源代码分布在两个位置。
    • /usr/lib/python2.7/site-packages/horizon:存放最基本的、可以共享的类、表格和模板等。
    • /usr/share/openstack-dashboard:存放与界面有直接关系、更加具体的类、表格和模板等,这些文件可以由用户修改以实现界面定制。
  • Horizon提供4个仪表板,对应着图形界面的一级节点,其中每个仪表板目录中又定义其下级节点(面板)。
    • admin(管理员)
    • identity(身份管理)
    • project(项目)
    • settings(设置) 

二、创建和操作虚拟机实例

1、了解并准备创建虚拟机实例的前提

  • 创建虚拟机实例的前提条件
    • 实例的源——镜像、实例快照(镜像快照)、卷或卷快照。
    • 实例类型——实例规格,表示一组特定的虚拟资源。
    • 密钥对——虚拟机实例启动时注入镜像中的SSH凭据。
    • 安全组——一组特定防火墙规则的集合。
    • 网络——虚拟网络,在云中为虚拟机实例提供网络通信,使实例能够访问内部网络和外部网络
  • 虚拟机实例与镜像
    • 实例是在云中的物理节点上运行的虚拟机个体。
    • 镜像是由特定的一系列文件按照规定格式制作,便于用户下载和使用的单一文件。
    • 创建虚拟机实例所用的镜像是一个完整的操作系统。
    • 镜像包括一个持有可启动操作系统的虚拟磁盘。
    • 实例运行过程中的任何改变都不会影响其基础镜像,基础镜像是只读的。

2、熟悉创建虚拟机实例的基本步骤 

1、准备镜像

默认的镜像列表:这是Packstack安装器预置的,用来测试Linux操作系统镜像。免费、体积非常小的Linux操作系统发行版。要使用Cirros操作系统进行镜像测试,使用admin身份将其删除并从官网下载新的Cirros操作系统镜像。

  • 新创建的两个镜像:
    • 可以看到"cirros"镜像虽然由云管理员创建,但由于是公有的,demo项目也可以使用。

2、查看实例类型:

实例类型由admin云管理员提供,普通用户无权限。“管理员>计算>实例类型”:显示当前的实例类型列表。默认的5个满足大部分虚拟机实例需要。

3、查看网络

不同的项目使用的网络不尽相同。以demo登录。项目>网络>网络:显示当前的网络列表。demo项目目前只能使用"private”的网络,这是属于该项目的私有网络。另一个“public”的网络不属于demo项目,所无法看到信息。

 4、添加安全组规则

每个项目都可以定义自己的安全组。项目>网络>安全组

默认有一个“打default”的安全组,单击“管理规则”:先俩规则允许关联该默认安全组的虚拟机实例访问外部网络;后两条规则不允许从外部网络访问关联该默认安全组的虚拟机实例,但是关联该默认安全组的虚拟机实例之间可相互访问。

 后续实验要允许外部网络中通过SSH协议访问虚拟机实例,使用ping工具测试虚拟机实例的连通性,需修改:

5、添加密钥对

密钥对是虚拟机实例启动时被注入镜像的SSH凭证,每个项目可以定义自己的密钥对。项目>计算>密钥对。

创建新的密钥对时需要注册公钥并提供私钥文件(.pem格式)下载。注意保管。

6、创建虚拟机实例

项目>计算>实例:显示当前实例列表。

  • 第一步:为实例命名,并设置实例的数量(默认为1)

  • 第二步:为实例设置源(用来创建实例的模板)。这里以镜像作为实例的源。将“删除实例时删除卷”设置为“是”。

  • 第三步:由于所用的镜像很小,这里选择分配系统资源最少的“m1.tiny”实例类型。

  • 第四步:默认网络类型即可

  • 第五步:默认

  • 第六步:默认

  •  第七步:参照上述步骤,在基于Fedora操作系统镜像创建一个虚拟机实例。注意存储卷大小为1GB,这里该为10GB以满足组Fedora操作系统运行的需要(不能仅看镜像文件的大小),在用可用的镜像列表中选择“fedora”镜像。实例类型至少选择“m1.small”

3、在虚拟机实例上进行简单的操作 

  • 切换到“控制台”可以对该实例进行交互操作。
  • 进入Fedora-VM实例的控制台进行测试。
  • 进入Cirros-VM实例使用ping工具测试与Fedora-VM的连通性。 

三、实现虚拟机与外部网络的通信

1、了解OpenStack的虚拟网络

  • OpenStack的虚拟网络
    • OpenStack的网络服务为虚拟机实例提供网络连接
    • Neutron为整个OpenStack环境提供软件定义网络(SDN)支持。
    • 开放式虚拟交换机(OVS)成为OpenStack部署中非常受欢迎的虚拟交换机。
    • 开放式虚拟网络(OVN)增加了对虚拟网络的原生支持,提高OVS在实际应用环境中的性能和规模。
    • 只要能够运行OVS,就可以运行OVN,从OVS升级到OVN非常容易。
    • 典型的Neutron虚拟网络包括外部网络内部网络路由器
  • 浮动IP地址
    • 私有地址是由DHCP服务器自动分配给虚拟机实例网络接口的IP地址。
    • 浮动IP地址由Neutron组件提供的服务。
    • 将数据包发送到分配有浮动IP地址的网络接口的工作由Neutron负责。
    • 分配有浮动IP地址的实例能够通过浮动IP地址从外部网络被访问。
    • 要从外部网络中的其他计算机访问实例,需为实例分配浮动IP地址

2、掌握外部网络和路由器的基本配置

1、将OpenStack主机网卡添加到br-ex网桥

  1. # 查看本机IP地址
  2. [root@node-a ~]# ip a
  3. 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  4. link/ether 00:0c:29:cb:04:e6 brd ff:ff:ff:ff:ff:ff
  5. inet 192.168.241.10/24 brd 192.168.241.255 scope global ens33
  6. valid_lft forever preferred_lft forever
  7. inet6 fe80::20c:29ff:fecb:4e6/64 scope link
  8. valid_lft forever preferred_lft forever
  9. 6: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
  10. link/ether 2e:1f:51:41:d0:46 brd ff:ff:ff:ff:ff:ff
  11. inet 172.24.4.1/24 scope global br-ex
  12. valid_lft forever preferred_lft forever
  13. inet6 fe80::2c1f:51ff:fe41:d046/64 scope link
  14. valid_lft forever preferred_lft forever
  15. 7: br-int: <BROADCAST,MULTICAST> mtu 1442 qdisc noop state DOWN group default qlen 1000
  16. link/ether 22:36:36:4b:33:4c brd ff:ff:ff:ff:ff:ff
  17. [root@node-a ~]# ovs-vsctl list-br
  18. br-ex #外部网桥
  19. br-int #集成网桥
  20. #查看网桥的端口
  21. [root@node-a ~]# ovs-vsctl list-ports br-ex
  22. patch-provnet-f72fc90f-cc54-4f75-9f54-43664d452b26-to-br-int
  23. # 修改网络配置文件
  24. [root@node-a ~]# cd /etc/sysconfig/network-scripts
  25. [root@node-a network-scripts]# cp ifcfg-ens33 ifcfg-br-ex
  26. [root@node-a network-scripts]# ls
  27. ifcfg-br-ex ifdown-Team ifdown-ib ifdown-ovs ifdown-sit ifup-TeamPort ifup-ib ifup-ovs ifup-ppp ifup-wireless
  28. ifcfg-ens33 ifdown-TeamPort ifdown-ippp ifdown-post ifdown-tunnel ifup-aliases ifup-ippp ifup-plip ifup-routes init.ipv6-global
  29. ifcfg-lo ifdown-bnep ifdown-ipv6 ifdown-ppp ifup ifup-bnep ifup-ipv6 ifup-plusb ifup-sit network-functions
  30. ifdown ifdown-eth ifdown-isdn ifdown-routes ifup-Team ifup-eth ifup-isdn ifup-post ifup-tunnel network-functions-ipv6
  31. [root@node-a network-scripts]# vi ifcfg-br-ex
  32. # 主要修改TYPE为OVSBridge,将DEVICETYPE修改为ovs,将NAME和DEVICE修改为br-ex
  33. [root@node-a network-scripts]# cat ifcfg-br-ex
  34. TYPE=OVSBridge
  35. DEVICETYPE=ovs
  36. BOOTPROTO=none
  37. NAME=br-ex
  38. DEVICE=br-ex
  39. ONBOOT=yes
  40. IPADDR=192.168.241.10
  41. NETMASK=255.255.255.0
  42. GATEWAY=192.168.241.86
  43. DNS1=8.8.8.8
  44. # 修改ens33配置文件,主要将TYPE修改为OVSPort,并添加最后两行定义
  45. [root@node-a network-scripts]# vi ifcfg-ens33
  46. [root@node-a network-scripts]# cat ifcfg-ens33
  47. TYPE=OVSPort
  48. NAME=ens33
  49. DEVICE=ens33
  50. ONBOOT=yes
  51. DEVICETYPE=ovs
  52. OVS_BRIDGE=br-ex
  53. # 重启network服务使修改生效
  54. [root@node-a network-scripts]# systemctl restart network
  55. # 外部网桥br-ex获得原ens33网卡的IP配置,而ens33网卡作为该网桥上的一个端口后,可以没有IP地址
  56. [root@node-a network-scripts]# ip a
  57. ...
  58. 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000
  59. link/ether 00:0c:29:cb:04:e6 brd ff:ff:ff:ff:ff:ff
  60. inet6 fe80::20c:29ff:fecb:4e6/64 scope link
  61. valid_lft forever preferred_lft forever
  62. link/ether 4a:20:80:5a:03:52 brd ff:ff:ff:ff:ff:ff
  63. 11: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
  64. link/ether 00:0c:29:cb:04:e6 brd ff:ff:ff:ff:ff:ff
  65. inet 192.168.241.10/24 brd 192.168.241.255 scope global br-ex
  66. valid_lft forever preferred_lft forever
  67. inet6 fe80::b7:e5ff:fefe:434b/64 scope link
  68. valid_lft forever preferred_lft forever
  69. ...

2、调整网络配置

  • 显示所有网络

  • 显示所有路由器

  • 清除现有路由器的网关:将外部网关类型的接口删除

  • 配置外部网络

  • 删除外部网络现有的子网

  • 设置同名子网基本信息

  • 设置子网详情

  • 为外部网络新创建的子网

  • demo项目默认的路由器

  • 为路由设置网关:以demo用户登录。为该项目的虚拟机的实例提供内外网通信支持

  • 为路由增加接口

  • 查看网络拓扑:可以查看当前项目的网络拓扑结构

3、熟悉虚拟机实例的浮动IP地址分配

  • 管理浮动IP的关联:以demo用户为例查看cirros的

  • 已分配一个浮动IP

  • 为虚拟机实例成功分配浮动IP地址

  • 两个实例都分配有浮动IP地址

  • 从虚拟机实例上访问外部网络

  • 从外部网络访问虚拟机实例

4、学会通过SSH从外部网络访问虚拟机实例

  • 测试SSH密码登录
  1. [root@node-a network-scripts]# ssh cirros@192.168.241.80
  2. The authenticity of host '192.168.241.80 (192.168.241.80)' can't be established.
  3. ECDSA key fingerprint is SHA256:ZPcFAfVbq/qns2ozvNqj/vDe9Ye4/6DIzZxBdNaiqIA.
  4. ECDSA key fingerprint is MD5:57:b2:6c:e0:06:3f:c8:8e:c7:0c:e4:d5:80:5e:2a:50.
  5. Warning: Permanently added '192.168.241.80' (ECDSA) to the list of known hosts.
  6. cirros@192.168.241.80's password: # 默认密码为gocubsgo
  7. $ date # 登录成功后测试
  8. Wed Mar 20 12:43:50 UTC 2024
  9. $ exit
  10. Connection to 192.168.241.80 closed.
  11. You have new mail in /var/spool/mail/root
  • SSH证书登录
  1. # 通常将整数私钥文件(.pem)存放到用户主目录下的.ssh子目录(该子目录默认隐藏)
  2. # 复制前面添加私钥时下载的SSH私钥文件复制到该目录,可rz工具上传
  3. [root@node-a ~]# cp Downloads/demo-key.pem ~/.ssh
  4. # 修改密钥文件的访问权限,是该文件只能所有者访问
  5. [root@node-a ~]# chmod 700 ~/.ssh/demo-key.pem
  6. # 访问虚拟机实例
  7. [root@node-a ~]# ssh -i ~/.ssh/demo-key.pem cirros@192.168.241.80
  8. $ date # 免密码登录成功
  9. Wed Mar 20 12:52:02 UTC 2024
  10. $ exit
  11. Connection to 192.168.241.80 closed.
  • 设置PuTTY会话基本选项
  • PuTTY安全警告
  • 使用SSH密码成功登录虚拟机实例
  • 载入SSH私钥文件
  • PuTTYgen警告
  • 保存转换的SSH私钥文件
  • 设置控制SSH认证的选项
  • 设置自动登录的用户名
  • 保存会话设置
  • 使用SSH证书成功登录虚拟机实例
  • 通过SSH证书登录Fedora-VM虚拟机实例修改root账户密码
  • 在控制台中以root账户和密码登录Fedora-VM虚拟机实例
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/757358
推荐阅读
相关标签
  

闽ICP备14008679号