Matika版OpenStack伪生产环境部署-添加Compute节点

      由于Compute计算节点太多,一个一个节点增加比较麻烦而且感觉有些做无用功,所以想办法能够自动化部署。由于初学编辑脚本,所以只写了比较简单的脚本进行部署。

编写compute安装配置脚本

      将需要安装和操作的步骤编写到一个compute.sh脚本中,通过远程发送文件将脚本发送到各个compute节点并执行脚本。

#!/bin/bash
HOST_IP=$(ifconfig |grep 'inet '|awk '{ print $2}'|grep '10')
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
cat > /etc/hosts << OFF
10.0.0.10    controller
10.0.0.11    controller1
10.0.0.12    controller1
10.0.0.31    compute01
10.0.0.32    compute02
10.0.0.33    compute03
10.0.0.34    compute04
10.0.0.35    compute05
10.0.0.36    compute06
10.0.0.37    compute07
10.0.0.38    compute08
10.0.0.39    compute09
10.0.0.40    compute10
10.0.0.41    compute11
10.0.0.42    compute12
10.0.0.51    cinder1
10.0.0.52    cinder2
OFF

yum install -y ntp
sed -i "s/server 0.centos.pool.ntp.org iburst/server 127.127.1.0 iburst/" /etc/ntp.conf
sed -i "22,24d" /etc/ntp.conf
systemctl disable chronyd.service
systemctl enable ntpd.service
systemctl start ntpd.service
yum install -y https://rdoproject.org/repos/rdo-release.rpm
yum upgrade -y
yum install -y python-openstackclient
yum install -y openstack-selinux

yum install -y openstack-nova-compute qemu-kvm libvirt virt-install bridge-utils openstack-utils \
openstack-neutron-linuxbridge ebtables ipset openstack-ceilometer-compute python-ceilometerclient python-pecan
#Nova configure
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 ${HOST_IP}
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 DEFAULT instance_usage_audit True
openstack-config --set /etc/nova/nova.conf DEFAULT instance_usage_audit_period hour
openstack-config --set /etc/nova/nova.conf DEFAULT notify_on_state_change vm_and_task_state
openstack-config --set /etc/nova/nova.conf oslo_messaging_notifications driver messagingv2

openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_hosts controller1,controller2
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 SWPUcs406rabbit

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 controller1:11211,controller2: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 SWPUcs406nova

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://172.23.253.11:6080/vnc_auto.html
openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf cinder os_region_name RegionOne
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp

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 SWPUcs406neutron

# Neutron configure
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 oslo_messaging_rabbit rabbit_hosts controller1,controller2
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 SWPUcs406rabbit

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 controller1:11211,controller2: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 SWPUcs406neutron
openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp

openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini  linux_bridge physical_interface_mappings provider:enp3s0
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini  vxlan enable_vxlan True
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini  vxlan local_ip ${HOST_IP}
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini  vxlan l2_population True
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

# Ceilometer configure
openstack-config --set /etc/ceilometer/ceilometer.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/ceilometer/ceilometer.conf DEFAULT auth_strategy keystone

openstack-config --set /etc/ceilometer/ceilometer.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/ceilometer/ceilometer.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/ceilometer/ceilometer.conf oslo_messaging_rabbit rabbit_password SWPUcs406rabbit

openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken auth_type password
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken project_name service
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken username ceilometer
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken password SWPUcs406ceilometer

openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials os_auth_url http://controller:5000/v2.0
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials os_username ceilometer
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials os_tenant_name service
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials os_password SWPUcs406ceilometer
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials interface internalURL
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials region_name RegionOne
sed -i "s/BOOTPROTO=static/BOOTPROTO=none/" /etc/sysconfig/network-scripts/ifcfg-enp3s0
sed -i "/IPADDR/d" /etc/sysconfig/network-scripts/ifcfg-enp3s0
sed -i "/NETMASK/d" /etc/sysconfig/network-scripts/ifcfg-enp3s0
sed -i "/GATEWAY/d" /etc/sysconfig/network-scripts/ifcfg-enp3s0
sed -i "/DNS1/d" /etc/sysconfig/network-scripts/ifcfg-enp3s0

systemctl restart network.service
systemctl enable libvirtd.service openstack-nova-compute.service neutron-linuxbridge-agent.service openstack-ceilometer-compute.service
systemctl start libvirtd.service openstack-nova-compute.service neutron-linuxbridge-agent.service openstack-ceilometer-compute.service

编写远程发送文件脚本

编写远程发送脚本,将compute.sh脚本发送到每一个compute节点并执行

COMPUTE=$(cat /etc/hosts |grep -E "10.0.0.2|10.0.0.3" |awk -F[:" "]+ '{print $1}')
for n in $COMPUTE;do
    # Copy the hosts file from localhost to ${n}host
    if [ $n == '10.0.0.31'] 
    then
       echo "This is host"${n}
    else
       scp compute.sh ${n}:
       ssh ${n} 'sh compute.sh'
    fi
done

验证安装

. admin-openrc
openstack compute service list
+----+------------------+------------+----------+---------+-------+----------------------------+
| Id | Binary           | Host       | Zone     | Status  | State | Updated At                 |
+----+------------------+------------+----------+---------+-------+----------------------------+
|  1 | nova-scheduler   | controller | internal | enabled | up    | 2016-05-24T14:23:42.000000 |
|  2 | nova-conductor   | controller | internal | enabled | up    | 2016-05-24T14:23:42.000000 |
|  3 | nova-consoleauth | controller | internal | enabled | up    | 2016-05-24T14:23:46.000000 |
|  9 | nova-compute     | compute02  | nova     | enabled | up    | 2016-05-24T14:23:46.000000 |
| 10 | nova-compute     | compute03  | nova     | enabled | up    | 2016-05-24T14:23:45.000000 |
| 11 | nova-compute     | compute04  | nova     | enabled | up    | 2016-05-24T14:23:51.000000 |
| 12 | nova-compute     | compute05  | nova     | enabled | up    | 2016-05-24T14:23:46.000000 |
| 13 | nova-compute     | compute06  | nova     | enabled | up    | 2016-05-24T14:23:44.000000 |
| 14 | nova-compute     | compute07  | nova     | enabled | up    | 2016-05-24T14:23:41.000000 |
| 15 | nova-compute     | compute12  | nova     | enabled | up    | 2016-05-24T14:23:49.000000 |
| 16 | nova-compute     | compute11  | nova     | enabled | up    | 2016-05-24T14:23:41.000000 |
| 17 | nova-compute     | compute10  | nova     | enabled | up    | 2016-05-24T14:23:45.000000 |
| 18 | nova-compute     | compute09  | nova     | enabled | up    | 2016-05-24T14:23:46.000000 |
| 19 | nova-compute     | compute08  | nova     | enabled | up    | 2016-05-24T14:23:42.000000 |
| 20 | nova-compute     | compute01  | nova     | enabled | up    | 2016-05-24T14:23:44.000000 |
+----+------------------+------------+----------+---------+-------+----------------------------+
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值