【云计算】OpenStack单节点allinone部署

打印 上一主题 下一主题

主题 681|帖子 681|积分 2043


工具准备

   VMware Workstation Pro 16
CentOS-7-x86_64-DVD-1804.iso
SecureCRT、SecureFX
cirros-0.4.0-x86_64-disk.img
  环境搭建



  • 创建centos7假造机



这里一定内存不能少于8G,否则背面安装容易出题目!!还有假造化一定要勾上!!!


启动假造机centos7

选中文,你要英文好选英语也行。

选配置分区,可以不配,可以不配!!!不影响!!!我同学没分区还是能做!!!




可以不分区,选默认也一样,主要我电脑存储空间原来就不够,分区分了个寂寞!!
ens33要打开,背面下载openstack要网的!!

划重点:最小安装,分区可以不分选默认,禁用Kdump,ens33必须打开!!

设置root暗码,待会ssh要用。



  • ssh连接
安装完成后,登录,查ip地址

使用SecureCRT 连接

ssh乐成连上

测下网络,能访问互联网。

安装前的设置



  • 禁用防火墙
  1. Last login: Tue Apr 23 03:22:49 2024 from 192.168.196.1
  2. [root@localhost ~]#  systemctl disable firewalld
  3. Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
  4. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  5. [root@localhost ~]#  vi /etc/selinux/config
  6. # This file controls the state of SELinux on the system.
  7. # SELINUX= can take one of these three values:
  8. #     enforcing - SELinux security policy is enforced.
  9. #     permissive - SELinux prints warnings instead of enforcing.
  10. #     disabled - No SELinux policy is loaded.
  11. SELINUX=disabled
  12. # SELINUXTYPE= can take one of three two values:
  13. #     targeted - Targeted processes are protected,
  14. #     minimum - Modification of targeted policy. Only selected processes are protected.
  15. #     mls - Multi Level Security protection.
  16. SELINUXTYPE=targeted
  17. ~
  18. ~
  19. "/etc/selinux/config" 13L, 545C written
复制代码

重启
  1. [root@localhost ~]# reboot
复制代码


  • 禁用 NetworkManager服务
  1. Last login: Tue Apr 23 07:36:39 2024 from 192.168.196.1
  2. [root@localhost ~]# systemctl disable NetworkManager
  3. Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
  4. Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
  5. Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
  6. [root@localhost ~]# systemctl stop NetworkManager
复制代码


  • 启用 network 服务
  1. [root@localhost ~]# systemctl enable network
  2. network.service is not a native service, redirecting to /sbin/chkconfig.
  3. Executing /sbin/chkconfig network on
  4. [root@localhost ~]# systemctl start network
复制代码


  • 修改主机名以及映射
  1. [root@localhost ~]# hostnamectl set-hostname node-a
  2. [root@localhost ~]# vi /etc/hosts
  3. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  4. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  5. 192.168.196.44   node-a node-a.localdomain
  6. ~
  7. ~
  8. "/etc/hosts" 3L, 201C written
  9. [root@localhost ~]# ping node-a
  10. PING node-a (192.168.196.44) 56(84) bytes of data.
  11. 64 bytes from node-a (192.168.196.44): icmp_seq=1 ttl=64 time=0.020 ms
  12. 64 bytes from node-a (192.168.196.44): icmp_seq=2 ttl=64 time=0.046 ms
  13. ^Z
  14. [1]+  已停止               ping node-a
复制代码


  • 时间同步
  1. [root@localhost ~]# yum install -y chrony
  2. 已加载插件:fastestmirror
  3. Determining fastest mirrors
  4. * base: ftp.sjtu.edu.cn
  5. * extras: mirrors.bfsu.edu.cn
  6. * updates: mirrors.ustc.edu.cn
  7. base                                                                                                                       | 3.6 kB  00:00:00     
  8. extras                                                                                                                     | 2.9 kB  00:00:00     
  9. updates                                                                                                                    | 2.9 kB  00:00:00     
  10. (1/4): base/7/x86_64/group_gz                                                                                              | 153 kB  00:00:00     
  11. (2/4): extras/7/x86_64/primary_db                                                                                          | 253 kB  00:00:00     
  12. (3/4): base/7/x86_64/primary_db                                                                                            | 6.1 MB  00:00:05     
  13. (4/4): updates/7/x86_64/primary_db                                                                                         |  26 MB  00:00:24     
  14. 正在解决依赖关系
  15. --> 正在检查事务
  16. ---> 软件包 chrony.x86_64.0.3.4-1.el7 将被 安装
  17. --> 正在处理依赖关系 libseccomp.so.2()(64bit),它被软件包 chrony-3.4-1.el7.x86_64 需要
  18. --> 正在检查事务
  19. ---> 软件包 libseccomp.x86_64.0.2.3.1-4.el7 将被 安装
  20. --> 解决依赖关系完成
  21. 依赖关系解决
  22. ==================================================================================================================================================
  23. Package                              架构                             版本                                  源                              大小
  24. ==================================================================================================================================================
  25. 正在安装:
  26. chrony                               x86_64                           3.4-1.el7                             base                           251 k
  27. 为依赖而安装:
  28. libseccomp                           x86_64                           2.3.1-4.el7                           base                            56 k
  29. 事务概要
  30. ==================================================================================================================================================
  31. 安装  1 软件包 (+1 依赖软件包)
  32. 总下载量:307 k
  33. 安装大小:788 k
  34. Downloading packages:
  35. 警告:/var/cache/yum/x86_64/7/base/packages/libseccomp-2.3.1-4.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEYkB  00:00:42 ETA
  36. libseccomp-2.3.1-4.el7.x86_64.rpm 的公钥尚未安装
  37. (1/2): libseccomp-2.3.1-4.el7.x86_64.rpm                                                                                   |  56 kB  00:00:14     
  38. (2/2): chrony-3.4-1.el7.x86_64.rpm                                                                                         | 251 kB  00:00:35     
  39. --------------------------------------------------------------------------------------------------------------------------------------------------
  40. 总计                                                                                                              8.7 kB/s | 307 kB  00:00:35     
  41. 从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
  42. 导入 GPG key 0xF4A80EB5:
  43. 用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
  44. 指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
  45. 软件包     : centos-release-7-5.1804.el7.centos.x86_64 (@anaconda)
  46. 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
  47. Running transaction check
  48. Running transaction test
  49. Transaction test succeeded
  50. Running transaction
  51.   正在安装    : libseccomp-2.3.1-4.el7.x86_64                                                                                                 1/2
  52.   正在安装    : chrony-3.4-1.el7.x86_64                                                                                                       2/2
  53.   验证中      : libseccomp-2.3.1-4.el7.x86_64                                                                                                 1/2
  54.   验证中      : chrony-3.4-1.el7.x86_64                                                                                                       2/2
  55. 已安装:
  56.   chrony.x86_64 0:3.4-1.el7                                                                                                                       
  57. 作为依赖被安装:
  58.   libseccomp.x86_64 0:2.3.1-4.el7                                                                                                                 
  59. 完毕!
  60. [root@localhost ~]# vi /etc/chrony.conf
  61. # Use public servers from the pool.ntp.org project.
  62. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  63. server 0.centos.pool.ntp.org iburst
  64. server 1.centos.pool.ntp.org iburst
  65. server 2.centos.pool.ntp.org iburst
  66. server 3.centos.pool.ntp.org iburst
  67. # Record the rate at which the system clock gains/losses time.
  68. driftfile /var/lib/chrony/drift
  69. # Allow the system clock to be stepped in the first three updates
  70. # if its offset is larger than 1 second.
  71. makestep 1.0 3
  72. server ntp1.aliyun.com iburst
  73. # Enable kernel synchronization of the real-time clock (RTC).
  74. rtcsync
  75. # Enable hardware timestamping on all interfaces that support it.
  76. #hwtimestamp *
  77. # Increase the minimum number of selectable sources required to adjust
  78. # the system clock.
  79. #minsources 2
  80. # Allow NTP client access from local network.
  81. "/etc/chrony.conf" 39L, 1138C written
  82. [root@localhost ~]#
复制代码

安装openstcak

  1. [root@localhost ~]# yum -y install centos-release-openstack-train
  2. (略。。。。。。)
  3. 已安装:
  4.   centos-release-openstack-train.noarch 0:1-1.el7.centos                                                                                          
  5. 作为依赖被安装:
  6.   centos-release-ceph-nautilus.noarch 0:1.2-2.el7.centos                  centos-release-nfs-ganesha28.noarch 0:1.0-3.el7.centos                 
  7.   centos-release-qemu-ev.noarch 0:1.0-4.el7.centos                        centos-release-storage-common.noarch 0:2-2.el7.centos                  
  8.   centos-release-virt-common.noarch 0:1-1.el7.centos                     
  9. 作为依赖被升级:
  10.   centos-release.x86_64 0:7-9.2009.1.el7.centos                                                                                                   
  11. 完毕!
  12. [root@localhost ~]# yum -y install openstack-packstack
  13. (略。。。。。。)
  14.   rubygem-io-console.x86_64 0:0.4.2-39.el7_9                           rubygem-json.x86_64 0:1.7.7-39.el7_9                                      
  15.   rubygem-pathspec.noarch 0:0.2.1-3.el7                                rubygem-psych.x86_64 0:2.0.0-39.el7_9                                    
  16.   rubygem-rdoc.noarch 0:4.0.0-39.el7_9                                 rubygem-rgen.noarch 0:0.6.6-2.el7                                         
  17.   rubygems.noarch 0:2.0.14.1-39.el7_9                                  yaml-cpp.x86_64 0:0.5.1-6.el7                                             
  18. 作为依赖被升级:
  19.   libselinux.x86_64 0:2.5-15.el7   libselinux-python.x86_64 0:2.5-15.el7   libselinux-utils.x86_64 0:2.5-15.el7   libsepol.x86_64 0:2.5-10.el7  
  20. 完毕!
复制代码
挂起假造机,拍快照,因为下一步要装泰半小时,防止出意外。。。
  1. Last login: Tue Apr 23 14:05:26 2024 from 192.168.196.1
  2. [root@node-a ~]#  packstack --allinone
  3. Welcome to the Packstack setup utility
  4. The installation log file is available at: /var/tmp/packstack/20240423-141738-Yav4Yc/openstack-setup.log
  5. Packstack changed given value  to required value /root/.ssh/id_rsa.pub
  6. Installing:
  7. Clean Up                                             [ DONE ]
  8. Discovering ip protocol version                      [ DONE ]
  9. Setting up ssh keys                                  [ DONE ]
  10. Preparing servers                                    [ DONE ]
  11. Pre installing Puppet and discovering hosts' details [ DONE ]
  12. Preparing pre-install entries                        [ DONE ]
复制代码
等了半个多小时,卡住了好像。。。不用CRT了。。。直接假造机内里实行。。。

等了快一个小时了,看到successfully就是乐成了。
  1. Last failed login: Tue Apr 23 14:53:18 CEST 2024 from 192.168.196.1 on ssh:notty
  2. There was 1 failed login attempt since the last successful login.
  3. Last login: Tue Apr 23 14:20:06 2024
  4. [root@node-a ~]# nova-manage --version
  5. 20.6.0
复制代码
ping连通性测试

用户admin和demo的登录的暗码
  1. [root@node-a ~]# source keystonerc_admin
  2. [root@node-a ~(keystone_admin)]# cat keystonerc_admin
  3. unset OS_SERVICE_TOKEN
  4.     export OS_USERNAME=admin
  5.     export OS_PASSWORD='fa6313c270674503'
  6.     export OS_REGION_NAME=RegionOne
  7.     export OS_AUTH_URL=http://192.168.196.44:5000/v3
  8.     export PS1='[\u@\h \W(keystone_admin)]\$ '
  9.    
  10. export OS_PROJECT_NAME=admin
  11. export OS_USER_DOMAIN_NAME=Default
  12. export OS_PROJECT_DOMAIN_NAME=Default
  13. export OS_IDENTITY_API_VERSION=3
  14.     [root@node-a ~(keystone_admin)]#
  15. [root@node-a ~(keystone_admin)]# source keystonerc_demo
  16. [root@node-a ~(keystone_demo)]# cat keystonerc_demo
  17. unset OS_SERVICE_TOKEN
  18. export OS_USERNAME=demo
  19. export OS_PASSWORD='1a6a9ec34331441f'
  20. export PS1='[\u@\h \W(keystone_demo)]\$ '
  21. export OS_AUTH_URL=http://192.168.196.44:5000/v3
  22.    
  23. export OS_PROJECT_NAME=demo
  24. export OS_USER_DOMAIN_NAME=Default
  25. export OS_PROJECT_DOMAIN_NAME=Default
  26. export OS_IDENTITY_API_VERSION=3
复制代码
浏览器访问http://192.168.196.44并登录


项目配置



  • 主机原网络配置
   br-ex,是外部网桥
br-int,是集成网桥
  1. [root@node-a ~]# ip a
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4.     inet 127.0.0.1/8 scope host lo
  5.        valid_lft forever preferred_lft forever
  6.     inet6 ::1/128 scope host
  7.        valid_lft forever preferred_lft forever
  8. 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  9.     link/ether 00:0c:29:2e:5a:9a brd ff:ff:ff:ff:ff:ff
  10.     inet 192.168.196.44/24 brd 192.168.196.255 scope global dynamic ens33
  11.        valid_lft 1779sec preferred_lft 1779sec
  12.     inet6 fe80::20c:29ff:fe2e:5a9a/64 scope link
  13.        valid_lft forever preferred_lft forever
  14. 3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
  15.     link/ether d6:e3:e2:8c:e5:86 brd ff:ff:ff:ff:ff:ff
  16. 4: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
  17.     link/ether 2a:91:47:32:af:4e brd ff:ff:ff:ff:ff:ff
  18.     inet 172.24.4.1/24 scope global br-ex
  19.        valid_lft forever preferred_lft forever
  20.     inet6 fe80::2891:47ff:fe32:af4e/64 scope link
  21.        valid_lft forever preferred_lft forever
  22. 5: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
  23.     link/ether 36:71:1c:85:37:40 brd ff:ff:ff:ff:ff:ff
复制代码


  • 修改网络配置
  1. [root@node-a ~]#  vi ifcfg-ens33
  2. DEVICE=ens33
  3. TYPE=OVSPort
  4. DEVICETYPE=ovs
  5. OVS_BRIDGE=br-ex
  6. ONBOOT=yes
  7. ~
  8. "ifcfg-ens33" 5L, 69C written
  9. [root@node-a ~]# vi ifcfg-br-ex
  10. DEVICE=br-ex
  11. DEVICETYPE=ovs
  12. TYPE=OVSBridge
  13. BOOTPROTO=static
  14. IPADDR=192.168.196.44
  15. NETMASK=255.255.255.0
  16. GATEWAY=192.168.196.2
  17. DNS1=192.168.196.2
  18. ONBOOT=yes
  19. ~
  20. "ifcfg-br-ex" 9L, 156C written
  21. [root@node-a ~]#
复制代码


  • 使配置见效
  1. [root@node-a ~]# cp ifcfg-* /etc/sysconfig/network-scripts/
  2. cp:是否覆盖"/etc/sysconfig/network-scripts/ifcfg-br-ex"? y
  3. cp:是否覆盖"/etc/sysconfig/network-scripts/ifcfg-ens33"? y
  4. [root@node-a ~]# systemctl restart network
复制代码
查看ip
   网桥br-ex获得原ens33网卡的IP配置,而ens33作为该网桥上的一个端口后,可以没有IP地址。
  1. [root@node-a ~]# ip a
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4.     inet 127.0.0.1/8 scope host lo
  5.        valid_lft forever preferred_lft forever
  6.     inet6 ::1/128 scope host
  7.        valid_lft forever preferred_lft forever
  8. 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000
  9.     link/ether 00:0c:29:2e:5a:9a brd ff:ff:ff:ff:ff:ff
  10.     inet6 fe80::20c:29ff:fe2e:5a9a/64 scope link
  11.        valid_lft forever preferred_lft forever
  12. 3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
  13.     link/ether d6:e3:e2:8c:e5:86 brd ff:ff:ff:ff:ff:ff
  14. 5: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
  15.     link/ether 36:71:1c:85:37:40 brd ff:ff:ff:ff:ff:ff
  16. 7: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
  17.     link/ether 00:0c:29:2e:5a:9a brd ff:ff:ff:ff:ff:ff
  18.     inet 192.168.196.44/24 brd 192.168.196.255 scope global br-ex
  19.        valid_lft forever preferred_lft forever
  20.     inet6 fe80::1c59:64ff:fe70:74e/64 scope link
  21.        valid_lft
复制代码


  • 删除项目默认的路由和网络
进入管理员的分支下,先删路由,后删网络!!!




  • 创建外网ext-net





  • 创建内网int-net






  • 创建路由R1



运行云主机



  • 镜像上传
SecureFX上传 cirros-0.4.0-x86_64-disk.img 到centos7

/root目次下查看上传的img文件
  1. Last login: Tue Apr 23 14:53:29 2024 from 192.168.196.1
  2. [root@node-a ~]# ll
  3. 总用量 12484
  4. -rw-------. 1 root root     1574 4月  23 03:18 anaconda-ks.cfg
  5. -rw-r--r--  1 root root 12716032 4月  24 16:12 cirros-0.4.0-x86_64-disk.img
  6. -rw-------  1 root root      374 4月  23 14:26 keystonerc_admin
  7. -rw-------  1 root root      319 4月  23 14:26 keystonerc_demo
  8. -rw-------  1 root root    51772 4月  23 14:20 packstack-answers-20240423-142037.txt
复制代码


  • 镜像创建
镜像上传到 Glance
  1. [root@node-a ~]# source keystonerc_admin
  2. [root@node-a ~(keystone_admin)]# glance image-create --name cirros001 --disk-format qcow2 --container-format bare --visibility=public < cirros-0.4.0-x86_64-disk.img
  3. +------------------+----------------------------------------------------------------------------------+
  4. | Property         | Value                                                                            |
  5. +------------------+----------------------------------------------------------------------------------+
  6. | checksum         | 443b7623e27ecf03dc9e01ee93f67afe                                                 |
  7. | container_format | bare                                                                             |
  8. | created_at       | 2024-04-25T03:02:02Z                                                             |
  9. | disk_format      | qcow2                                                                            |
  10. | id               | 4461e269-6414-4471-b9d7-a1cc8b19396d                                             |
  11. | min_disk         | 0                                                                                |
  12. | min_ram          | 0                                                                                |
  13. | name             | cirros001                                                                        |
  14. | os_hash_algo     | sha512                                                                           |
  15. | os_hash_value    | 6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0982e |
  16. |                  | 2161b5b5186106570c17a9e58b64dd39390617cd5a350f78                                 |
  17. | os_hidden        | False                                                                            |
  18. | owner            | 13aeda797d4f4be3baa99a7d7414f6c9                                                 |
  19. | protected        | False                                                                            |
  20. | size             | 12716032                                                                         |
  21. | status           | active                                                                           |
  22. | tags             | []                                                                               |
  23. | updated_at       | 2024-04-25T03:02:02Z                                                             |
  24. | virtual_size     | Not available                                                                    |
  25. | visibility       | public                                                                           |
  26. +------------------+----------------------------------------------------------------------------------+
复制代码
查看新建的镜像
  1. [root@node-a ~(keystone_admin)]# glance image-list
  2. +--------------------------------------+-----------+
  3. | ID                                   | Name      |
  4. +--------------------------------------+-----------+
  5. | 8f054c85-6b1e-4689-8197-e4c32820c6c8 | cirros    |
  6. | 4461e269-6414-4471-b9d7-a1cc8b19396d | cirros001 |
  7. +--------------------------------------+-----------+
  8. [root@node-a ~(keystone_admin)]#
复制代码
在项目的分支下,能看到刚刚新建的镜像。



  • 创建实例






云主机正在创建。。。


云主机启动完成,查看控制台。。。

编辑安全组规则




  • 添加ALL ICMP规则



  • 添加SSH规则


连接云主机



  • 获取浮动IP





  • 绑定浮动IP




  • 查看网络拓扑

测试



  • ping测试
   cirros001 => 百度www.baidu.com【√】
cirros001 => centos7 192.168.196.44【√】
cirros001 => 网关192.168.196.2【√】
cirros001 => 物理机win10 192.168.196.1【×】
物理机win10 => cirros001 192.168.196.20【×】

  等多一会,再次尝试ping,可以用Wireshare抓包观察。
   cirros001能ping网关196.2物理机196.1,也能访问互联网,如下:

    win10也能ping通cirros001绑定的浮动ip192.168.196.20

  注:如果win10能ping云主机cirros001,云主机cirros001却无法ping通物理机win10,把物理机win10的防火墙关掉!!
   抓包验证


  云主机cirros001的ip地址为10.10.10.44,抓包时真正通信的是其绑定的浮动ip192.168.196.20


  • ssh测试
reboot重启云主机

用户名cirros暗码gocubsgo

SecureCRT连接乐成

云硬盘管理



  • 创建卷



  • 连接卷




  • 查看

云存储管理



  • 创建容器



  • 容器管理

  • 创建目次



  • 上传文件



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表