增加前的小问题

  在增加一个计算节点(compute2)之前我们先安装一个libvirt这个软件,这个软件一般都是安装在计算节点的,这是一个管理虚拟机和其它虚拟化功能的软件。安装方法:

yum install libvirt

  装完之后可以看看这个软件的用法)这个包7.4以下的centOS都是装了的,在7.4及以后就没装了。输入下面的命令可以直接查看实例的状态信息:

virsh list --all

  可以看到有的状态是running,也有的是shut off,就是运行中或者关闭的状态。然后我们会发现每次重启了OpenStack之后就会是shut off。就是关闭的状态,那么我们要怎样让服务器关机或者断电了重启之后OpenStack自动启动,也要让我们的实例也自启动呢。可以利用下面的virsh命令启动虚拟机,然后用shell写一个for循环来然后把脚本加入开机自启动就可以了。

virsh start instance-00000001

增加计算节点

  扯远了,现在直接看一下怎么再添加一个计算节点吧。首先你需要再制作一个centos7的虚拟机,如果之前在做模板机的时候备份了那我们这里就说了,一定要网卡名是eth0,也就是开始安装的那里,然后基础开发工具装上,我们这里从装好时候修改ip说起:
修改ip同步hosts

  进入虚拟机之后修改ip地址为10.0.0.32,然后就可以用xshell连接了, ip配置文件路径:

vim /etc/sysconfig/network-scripts/ifcfg-eth0 

  把地址改成10.0.0.32,之后在controller控制节点里面把hosts解析10.0.0.32 compute2的解析加上:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.31   compute1
10.0.0.32   compute2
10.0.0.11   controller

  加上之后在控制节点输入下面的命令可以把当前修改的后hosts文件同步给compute2:

scp /etc/hosts 10.0.0.32:/etc/hosts

  上面的命令输入完成之后会提示我们输入yes还是no当然是yes,之后输入我们给compute2创建的root密码。之后就会把控制节点的hosts文件同步给compute2。

完善其他配置

  如果你是模板机那么就好说,这里就不需要做什么,如果你的是刚才新建的,之前没有保存模板机的话,建议点我回到之前的文章去把这台机器当成模板机设置一下,注意不要修改ip就行了。一定要把防火墙还有ssh啥的都优化了,尤其是防火墙!!!
添加源并配置软件

  添加yum源之前还是把虚拟机上面的光盘挂载上:
wSFt.png
  也就是点击虚拟机的右下角。然后先搞本地源:

umount /mnt/
cd /etc/yum.repos.d/
\mv *.repo test
echo '[local]
name=local
baseurl=file:///mnt
gpgcheck=0' >local.repo
mount /dev/cdrom /mnt/
yum makecache

  这个步骤前面也有,可以点我查看,之后安装软件停用网卡图形化设置模式,并关闭邮箱服务,这里我都写在一起来了,如果是模板机只需要再检查一下你的源就可以了:

systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
yum install -y bash-completion.noarch net-tools vim lrzsz wget tree screen lsof tcpdump
systemctl stop postfix.service
systemctl disable postfix.service

  然后再挂载OpenStack的源:

cd /opt
rz
tar xf openstack_rpm.tar.gz
echo '[local]
name=local
baseurl=file:///mnt
gpgcheck=0

[openstack]
name=openstack
baseurl=file:///opt/repo
gpgcheck=0' >/etc/yum.repos.d/local.repo
yum makecache
yum repolist

  输入了rz之后把OpenStack的yum源传上来。后面的时间服务啥的都不说了,就是按照计算节点来就行了。
  再把OpenStack的基础包安装到compute2上面就可以了。

yum install python-openstackclient openstack-selinux -y

安装nova服务

  keystone服务和镜像服务都是安装在控制节点的,无需再安装到计算节点,直接从nova服务开始即可

yum install openstack-nova-compute -y
yum install openstack-utils.noarch -y

  安装好之后修改配置文件:

cp /etc/nova/nova.conf{,.bak}
grep '^[a-Z\[]' /etc/nova/nova.conf.bak >/etc/nova/nova.conf
openstack-config --set /etc/nova/nova.conf  DEFAULT rpc_backend  rabbit
openstack-config --set /etc/nova/nova.conf  DEFAULT auth_strategy  keystone
openstack-config --set /etc/nova/nova.conf  DEFAULT my_ip  10.0.0.32
openstack-config --set /etc/nova/nova.conf  DEFAULT use_neutron  True
openstack-config --set /etc/nova/nova.conf  DEFAULT firewall_driver  nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf  glance api_servers  http://controller:9292
openstack-config --set /etc/nova/nova.conf  keystone_authtoken  auth_uri  http://controller:5000
openstack-config --set /etc/nova/nova.conf  keystone_authtoken  auth_url  http://controller:35357
openstack-config --set /etc/nova/nova.conf  keystone_authtoken  memcached_servers  controller:11211
openstack-config --set /etc/nova/nova.conf  keystone_authtoken  auth_type  password
openstack-config --set /etc/nova/nova.conf  keystone_authtoken  project_domain_name  default
openstack-config --set /etc/nova/nova.conf  keystone_authtoken  user_domain_name  default
openstack-config --set /etc/nova/nova.conf  keystone_authtoken  project_name  service
openstack-config --set /etc/nova/nova.conf  keystone_authtoken  username  nova
openstack-config --set /etc/nova/nova.conf  keystone_authtoken  password  NOVA_PASS
openstack-config --set /etc/nova/nova.conf  oslo_concurrency lock_path  /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf  oslo_messaging_rabbit   rabbit_host  controller
openstack-config --set /etc/nova/nova.conf  oslo_messaging_rabbit   rabbit_userid  openstack
openstack-config --set /etc/nova/nova.conf  oslo_messaging_rabbit   rabbit_password  RABBIT_PASS
openstack-config --set /etc/nova/nova.conf  vnc enabled  True
openstack-config --set /etc/nova/nova.conf  vnc vncserver_listen  0.0.0.0
openstack-config --set /etc/nova/nova.conf  vnc vncserver_proxyclient_address  '$my_ip'
openstack-config --set /etc/nova/nova.conf  vnc novncproxy_base_url  http://10.0.0.11:6080/vnc_auto.html

  之后输入下面的命令检查一下你的虚拟化开了吗:

egrep  '(vmx|svm)' /proc/cpuinfo

  最后记得开启并开机自启动

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

安装网路服务

  好了还是可以参照
  装包,改配置:

yum install openstack-neutron-linuxbridge ebtables ipset -y
cp /etc/neutron/neutron.conf{,.bak}
grep '^[a-Z\[]' /etc/neutron/neutron.conf.bak >/etc/neutron/neutron.conf
openstack-config --set /etc/neutron/neutron.conf  DEFAULT rpc_backend  rabbit
openstack-config --set /etc/neutron/neutron.conf  DEFAULT auth_strategy  keystone
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken auth_uri  http://controller:5000
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken auth_url  http://controller:35357
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken memcached_servers  controller:11211
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken auth_type  password
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken project_domain_name  default
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken user_domain_name  default
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken project_name  service
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken username  neutron
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken password  NEUTRON_PASS
openstack-config --set /etc/neutron/neutron.conf  oslo_concurrency lock_path  /var/lib/neutron/tmp
openstack-config --set /etc/neutron/neutron.conf  oslo_messaging_rabbit rabbit_host  controller
openstack-config --set /etc/neutron/neutron.conf  oslo_messaging_rabbit rabbit_userid  openstack
openstack-config --set /etc/neutron/neutron.conf  oslo_messaging_rabbit rabbit_password  RABBIT_PASS
cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak}
grep '^[a-Z\[]' /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak >/etc/neutron/plugins/ml2/linuxbridge_agent.ini
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini  linux_bridge physical_interface_mappings  provider:eth0
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini  securitygroup enable_security_group  True
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini  securitygroup firewall_driver  neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini  vxlan enable_vxlan  False
openstack-config --set /etc/nova/nova.conf  neutron url  http://controller:9696
openstack-config --set /etc/nova/nova.conf  neutron auth_url  http://controller:35357
openstack-config --set /etc/nova/nova.conf  neutron auth_type  password
openstack-config --set /etc/nova/nova.conf  neutron project_domain_name  default
openstack-config --set /etc/nova/nova.conf  neutron user_domain_name  default
openstack-config --set /etc/nova/nova.conf  neutron region_name  RegionOne
openstack-config --set /etc/nova/nova.conf  neutron project_name  service
openstack-config --set /etc/nova/nova.conf  neutron username  neutron
openstack-config --set /etc/nova/nova.conf  neutron password  NEUTRON_PASS
systemctl restart openstack-nova-compute.service
systemctl enable neutron-linuxbridge-agent.service
systemctl start neutron-linuxbridge-agent.service

  之后在控制节点输入下面的命令显示出了compute2就可以了:

neutron agent-list

  同时是个微笑才行哟,如图:
wzAC.png
  到此增加了一个计算节点就算OK了,无需安装http的web端,如果你的电脑配置低,你可以把compute1关闭,然后在compute2上面去装一个http的服务。

其他问题

  现在有一个问题就是当我们创建虚拟机的时候怎么默认使用compute2的资源,不使用compute1的资源呢?
  打开web端的控制台,选择左侧管理员---系统---主机聚集
w403.png
  会发现我们的compute1和compute2都属于nova域,然后我们每次用web端创建虚拟机的时候都会选择nova域,因为只有这一个:
wKBB.png
  我们可以点击刚才主机聚集的右上角有一个创建主机聚集,然后这里的主机聚集信息里面的名称和可用域随便起一个名字即可:
wYgW.png
  然后不要急着确认,在右边有一个管理聚集内的主机,然后可以把compute2拉进去,最后再点击创建主机聚集即可。
wusg.png
  现在可以在compute2上面创建几台机器看看:
wEyO.png
  创建的时候可以选择compute2的域,同时也可以批量创建:
wEyO.png
  下面的就是创建完成的样子:
wclT.png
  ip地址也是按照顺序走的
  然后由于我们是在控制节点注入了秘钥对的。所以可以直接在控制节点连接:

ssh cirros@10.0.0.104

  然后只需要输入一个yes就可以连接了:
wfu1.png
  好了,如果你的虚拟机可以ping通百度,而且主机名不是默认的cirros就可以了。

最后修改:2020 年 08 月 06 日 02 : 11 AM
请俺喝杯咖啡呗