您的位置:首页 > 运维架构

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

2016-05-25 21:47 483 查看
由于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 |
+----+------------------+------------+----------+---------+-------+----------------------------+
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  openstack 脚本 自动化