当前位置:   article > 正文

OpenStack-国基北盛搭建,跑脚本安装各组件步骤详解_chinaskill_cloud_iaas.iso

chinaskill_cloud_iaas.iso

搭建openstack平台所需要的两个镜像包:CentOS-7-X86_64-DVD-1804.iso 和 chinaskill_cloud_iaas.iso镜像文件。

需要镜像的自行下载:

链接:https://pan.baidu.com/s/1ElZEnrN6VDEMlI_2Ixk1Aw 
提取码:8888


一、搭建openstack平台,需在VMware上准备两台虚拟机,分别作为controller节点和compute节点。下面是VMware上虚拟机的基础配置。

 上面内存给了4G,处理器给了两个,硬盘给了50G,这个根据个人电脑的配置来设置,不用设置太大,将虚拟机放置的位置一定不要放在C盘,多添的一块网卡作为openstack对外提供服务的网络(创建云主机实例时使用的IP地址)默认的第一块网卡作为openstack本地服务的IP地址(访问openstack的WEB界面时的IP地址),这里看你的虚拟网络编辑器里网络的信息(自行修改)。如下图所示:

我这里的NET模式的子网地址给的是100段(cidr)WEB访问的IP地址,仅主机模式的子网地址给的是200段的。这里可以根据自己的需要去进行配置。

二、开始配置虚拟机的网卡:


  1. 利用vi文本编辑器去配置虚拟机的虚拟网卡;
    vi /etc/sysconfig/network-scripts/ifcfg-#需要配置的网卡名
  2. 配置好后重启网络服务,使配置生效;
    1. systemctl restart network #第一种重启网络的方法
    2. service network restart #第二种重启网络的方法
  3. 配置好后ping自己配置好的IP地址;
    ping #IP地址
  4. 最后,配置网卡的最终目的就是利用远程工具(Xshell,SecureCRT,mobaXterm等)去连接虚拟机。接下来的服务部署都是在SecureCRT上完成。接下来按照上述步骤去进行操作截屏如下:

 

 

:wq (保存退出)

 

第二快网卡无需配置,当后面跑脚本的时候会自动将它kill掉,用作创建云主机实例的IP地址

三、当第一台VM虚拟机的网卡配置好,用命令或手动点击将VM虚拟机关机后,对它进行克隆,克隆出的虚拟机作为compute节点:

  1. poweroff #第一种关机命令
  2. shutdown -h now #第二种关机命令
  3. init 0 #第三种关机命令

 记得克隆时最好选择完全克隆,它是独立的,并不依赖controller节点,当你删掉controller节点也不会影响到compute节点。(不像电脑上的快捷方式)

克隆完后记得重命名(这是一个好习惯)

修改它的配置,给compute虚拟机增加两块20G的硬盘,分别提供给cinder和swift组件

四、开启克隆的虚拟机将它的网络IP地址修改(因为克隆虚拟机的配置是controller节点的配置)

 修改IP地址后的配置:

 本人在重启网卡时遇到的问题:

也可以直接将NetworkManagerdisable

五、连接SecureCRT或其它远程连接工具,进行OpenStack-国基北盛的搭建 

1.修改主机名(使得后面能过直接通过主机名去传输文件和配置ftp yum源) 

  1. #永久修改主机名(两个节点都需要配置):
  2. hostnamectl set-hostname controller #第一个节点
  3. su #使修改生效
  4. hostnamectl set-hostname compute #第二个节点
  5. su #使修改生效

2.配置域名解析的文件(/etc/hosts

vi /etc/hosts

  1. scp /etc/hosts 192.168.100.20:/etc/hosts
  2. # 将controller节点上的配置文件传输到compute节点上将其替换,省的两头来回切换的敲代码了,在后面这点好处会体现的更明显

这一步做完后,后面就可以直接使用域名controller,compute)来代替IP地址了

3.移走本地网络yum源(两个节点都需要执行)

  1. 1.mv /etc/yum.repos.d/* /media
  2. # 将网络yum源移到media目录下
  3. 2.rm -rf /etc/yum.repos.d/*
  4. # 删除网络yum源,*代表当前目录下的所有文件或目录

4.配置本地yum源(只需在controller节点而配置,配置centos源和iaas源)

 ​​​​​

创建两个需要被挂载的本地路劲centosiaas(这里创建的目录名称需要和yum配置文件里面的路劲目录名一样)

yum源配置好后,通过SecureCRT上自带的传输工具将iaas镜像上传,这里centos镜像我已经在做虚拟机配置的时候就使用了centos这个镜像,它默认存储在/dev/cdrom /dev/sr0中,如果和我一样,就可以直接将存放centos镜像的路径挂载到/opt/centos下了(当你挂载了这个目录,这个目录就只有读的权限了)如果不希望这个目录只有读的权限我们可以向下面挂载iaas镜像一样先挂载到/mnt目录下,在cp到需要的挂载点目录下。

当出现上面的提示就说明挂载成功,并以只读方式挂载。 

接下来在挂载iaas镜像,挂载这个镜像的时候可以先将这个镜像挂在到/mnt目录下面,再将/mnt下面的所有文件复制到/opt/iaas目录下,这样重启虚拟机后也不需要再次挂载了。

 

我们也可以在/etc/fstab中进行配置,让它开机自动挂载,这样在启动虚拟机时就不用再手动挂载了(用于直接挂载到挂载点的时候使用)

上图中的挂载点有问题,应该是/opt/centos

这里注意千万不要写错了,不然会进入Ctrl+D界面,解决办法:

重启虚拟机,在加载页面时按空格键暂停,再按E键;找到linux16那一行,在最后rd.break进入救援命令模式;按Ctrl+X继续;此时进入后需要挂载sysroot目录(sysroot是交叉编译时指定临时根目录的方式) mount -o remount,rw /sysrootchroot /sysroot; 进入linux命令行界面,vi /etc/fstab 将自己写的那一行注释掉或修改正确;exitexit退出进入人正常界面

配置好本地yum源后,我们需要清理一下yum源缓存,和列出能用的yum仓库中的包

 出现上述结果说明本地yum源配置成功(有7203个可用的包)

 5.关闭防火墙,清空规则(两个节点都需要执行)

  1. systemctl stop firewalld && systemctl disable firewalld
  2. # 关闭防火墙和移除防火墙
  3. iptables -F
  4. iptables -X
  5. iptables -Z
  6. iptables-save
  7. # 清空规则
  8. setenforce 0
  9. # 临时关闭selinux模式 setenforce 0
  10. getenforce
  11. # 查看selinux的模式
  12. sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
  13. # 永久关闭selinux规则

6.安装vsftpd服务,是为了能让compute节点通过ftp访问到controller节点上的镜像

 修改vsftpd服务的配置文件:

 在第一行添加anon_root=/opt

 重启服务,使修改的配置生效,并设置开机自启

systemctl restart vsftpd && systemctl enable vsftpd

7.配置compute节点的yum源

用scp命令将controller节点的yum源传到compute节点:

scp /etc/yum.repos.d/local.repo compute:/etc/yum.repos.d/

 Ctrl+Tab键切换到compute节点(标红的是需要修改的地方)

 这里就用到了/etc/hosts中配置将controller的IP地址替换成了node_name

修改完后,保存退出

执行清理yum源和列出可用的yum源命令:

  1. yum clean all
  2. yum repolist all

 这样compute节点就不用在配置本地yum源了

8.安装iaas-xiandian服务(在两节点执行)

yum -y install iaas-xiandian

 9.修改xiandian服务的配置文件

  1. vi /etc/xiandian/openrc.sh
  2. # 进入配置文件后需要在命令行模式下敲
  3. :%s/^#//g # 一行中只带有一个#注释的,作用去除#注释
  4. :%s/PASS=/PASS=000000/g # 将PASS=全部替换成PASS=000000,这样省的我们自己手动敲很多代码了
  1. #--------------------system Config--------------------##
  2. #Controller Server Manager IP. example:x.x.x.x
  3. HOST_IP=192.168.100.10 #controller节点的IP地址
  4. #Controller HOST Password. example:000000
  5. HOST_PASS=000000
  6. #Controller Server hostname. example:controller
  7. HOST_NAME=controller #controller节点的主机名
  8. #Compute Node Manager IP. example:x.x.x.x
  9. HOST_IP_NODE=192.168.100.20 #compute节点的IP地址
  10. #Compute HOST Password. example:000000
  11. HOST_PASS_NODE=000000
  12. #Compute Node hostname. example:compute
  13. HOST_NAME_NODE=compute #compute节点的主机名
  14. #--------------------Chrony Config-------------------##
  15. #Controller network segment IP. example:x.x.0.0/16(x.x.x.0/24)
  16. network_segment_IP=192.168.100.0/24 #控制节点的网段
  17. #--------------------Rabbit Config ------------------##
  18. #user for rabbit. example:openstack
  19. RABBIT_USER=openstack #rabbit用户名
  20. #Password for rabbit user .example:000000
  21. RABBIT_PASS=000000
  22. #--------------------MySQL Config---------------------##
  23. #Password for MySQL root user . exmaple:000000
  24. DB_PASS=000000
  25. #--------------------Keystone Config------------------##
  26. #Password for Keystore admin user. exmaple:000000
  27. DOMAIN_NAME=demo #OpenStack中登录页面的认证域名
  28. ADMIN_PASS=000000
  29. DEMO_PASS=000000
  30. #Password for Mysql keystore user. exmaple:000000
  31. KEYSTONE_DBPASS=000000
  32. #--------------------Glance Config--------------------##
  33. #Password for Mysql glance user. exmaple:000000
  34. GLANCE_DBPASS=000000
  35. #Password for Keystore glance user. exmaple:000000
  36. GLANCE_PASS=000000
  37. #--------------------Nova Config----------------------##
  38. #Password for Mysql nova user. exmaple:000000
  39. NOVA_DBPASS=000000
  40. #Password for Keystore nova user. exmaple:000000
  41. NOVA_PASS=000000
  42. #--------------------Neturon Config-------------------##
  43. #Password for Mysql neutron user. exmaple:000000
  44. NEUTRON_DBPASS=000000
  45. #Password for Keystore neutron user. exmaple:000000
  46. NEUTRON_PASS=000000
  47. #metadata secret for neutron. exmaple:000000
  48. METADATA_SECRET=000000
  49. #Tunnel Network Interface. example:x.x.x.x
  50. INTERFACE_IP=192.168.100.10 #隧道接口的IP地址,填当前节点的IP地址
  51. #External Network Interface. example:eth1
  52. INTERFACE_NAME=ens34 #第二块网卡作为外网,对外提供服务(云主机实例)的网卡名
  53. #External Network The Physical Adapter. example:provider
  54. Physical_NAME=provider #物理适配器的外网
  55. #First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
  56. minvlan=5 #VLAN最小从5开始(自己根据需要来给定)
  57. #Last Vlan ID in VLAN RANGE for VLAN Network. example:200
  58. maxvlan=201 #VLAN最大到201
  59. #--------------------Cinder Config--------------------##
  60. #Password for Mysql cinder user. exmaple:000000
  61. CINDER_DBPASS=000000
  62. #Password for Keystore cinder user. exmaple:000000
  63. CINDER_PASS=000000
  64. #Cinder Block Disk. example:md126p3
  65. BLOCK_DISK=sdb #compute节点增加的第一快磁盘名称(lsblk查看)
  66. #--------------------Swift Config---------------------##
  67. #Password for Keystore swift user. exmaple:000000
  68. SWIFT_PASS=000000
  69. #The NODE Object Disk for Swift. example:md126p4.
  70. OBJECT_DISK=sdc #compute节点的增加的第二快磁盘名称
  71. #The NODE IP for Swift Storage Network. example:x.x.x.x.
  72. STORAGE_LOCAL_NET_IP=192.168.100.20 #对象存储的IP地址
  73. #--------------------Heat Config----------------------##
  74. #Password for Mysql heat user. exmaple:000000
  75. HEAT_DBPASS=000000
  76. #Password for Keystore heat user. exmaple:000000
  77. HEAT_PASS=000000
  78. #--------------------Zun Config-----------------------##
  79. #Password for Mysql Zun user. exmaple:000000
  80. ZUN_DBPASS=000000
  81. #Password for Keystore Zun user. exmaple:000000
  82. ZUN_PASS=000000
  83. #Password for Mysql Kuryr user. exmaple:000000
  84. KURYR_DBPASS=000000
  85. #Password for Keystore Kuryr user. exmaple:000000
  86. KURYR_PASS=000000
  87. #--------------------Ceilometer Config----------------##
  88. #Password for Gnocchi ceilometer user. exmaple:000000
  89. CEILOMETER_DBPASS=000000
  90. #Password for Keystore ceilometer user. exmaple:000000
  91. CEILOMETER_PASS=000000
  92. #--------------------AODH Config----------------##
  93. #Password for Mysql AODH user. exmaple:000000
  94. AODH_DBPASS=000000
  95. #Password for Keystore AODH user. exmaple:000000
  96. AODH_PASS=000000
  97. #--------------------Barbican Config----------------##
  98. #Password for Mysql Barbican user. exmaple:000000
  99. BARBICAN_DBPASS=000000
  100. #Password for Keystore Barbican user. exmaple:000000
  101. BARBICAN_PASS=000000
  102. #--------------------system Config--------------------##
  103. #Controller Server Manager IP. example:x.x.x.x
  104. HOST_IP=192.168.100.10
  105. #Controller HOST Password. example:000000
  106. HOST_PASS=000000
  107. #Controller Server hostname. example:controller
  108. HOST_NAME=controller
  109. #Compute Node Manager IP. example:x.x.x.x
  110. HOST_IP_NODE=192.168.100.20
  111. #Compute HOST Password. example:000000
  112. HOST_PASS_NODE=000000
  113. #Compute Node hostname. example:compute
  114. HOST_NAME_NODE=compute
  115. #--------------------Chrony Config-------------------##
  116. #Controller network segment IP. example:x.x.0.0/16(x.x.x.0/24)
  117. network_segment_IP=192.168.100.0/24
  118. #--------------------Rabbit Config ------------------##
  119. #user for rabbit. example:openstack
  120. RABBIT_USER=openstack
  121. #Password for rabbit user .example:000000
  122. RABBIT_PASS=000000
  123. #--------------------MySQL Config---------------------##
  124. #Password for MySQL root user . exmaple:000000
  125. DB_PASS=000000
  126. #--------------------Keystone Config------------------##
  127. #Password for Keystore admin user. exmaple:000000
  128. DOMAIN_NAME=demo
  129. ADMIN_PASS=000000
  130. DEMO_PASS=000000
  131. #Password for Mysql keystore user. exmaple:000000
  132. KEYSTONE_DBPASS=000000
  133. #--------------------Glance Config--------------------##
  134. #Password for Mysql glance user. exmaple:000000
  135. GLANCE_DBPASS=000000
  136. #Password for Keystore glance user. exmaple:000000
  137. GLANCE_PASS=000000

需要修改的地方已在后面增加注释(有的地方还需输入六个零上面会有 example: 提示)

通过scp方法将修改过的xiandian配置文件传输到compute节点

scp /etc/xiandian/openrc.sh compute:/etc/xiandian/openrc.sh

在compute节点中将xiandian配置文件修改第69行的IP地址,改成对应节点的IP地址(在compute节点只需修改这一行)

修改完成后保存退出

10.跑iaas-pre-host.sh脚本(在两节点执行)

跑脚本之前要养成一个拍快照的好习惯,当跑错的时候,能够恢复跑之前的状态

出现这个后两个节点都需要Ctrl+D重启一下虚拟机

接下来开始跑部署OpenStack各个组件的脚本了(important) 

11.进入/usr/local/bin目录下(脚本存放的位置)

为了让我们更轻松些,我们可以在脚本中跑脚本

ls | tee 1.sh #查看当前目录下的脚本文件并将结果发送到tee命令,tee命令将输出显示到终端,同时将其保存在1.sh文件中

在1.sh脚本中将几个需要跑的组件脚本排序,并将不需要跑的组件脚本删掉(在1.sh中操作,需熟练掌握vi编辑器下命令行模式(默认模式)下的快捷命令,在这里会用到 yy : 复制,p : 粘贴,dd : 删除

controller节点执行脚本的顺序 [ mysql组件,keystone组件,glance组件,nova-controller组件,neutron-controller组件,dashboard组件,cinder-controller组件,swift-controller组件 ] (跑完controller节点,再跑compute节点

compute节点执行脚本的顺序 [ nova-compute组件,neutron-compute组件,cinder-compute组件,swift-compute组件 ]

controller节点:

给1.sh增加可执行权限

chmod +x 1.sh

执行:

./1.sh

 compute节点:

 两边依次跑完后,去浏览器输入 controller节点IP地址/dashboard 访问OpenStack-国基北盛

 

 

最后openstack-国基北盛就搭建成功了。

欢迎点赞收藏哦!感谢支持~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/70470
推荐阅读
相关标签
  

闽ICP备14008679号