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 | +----+------------------+------------+----------+---------+-------+----------------------------+
相关文章推荐
- Shell 脚本编程陷阱
- openstack kilo-with-dokcer
- VBS脚本写的Windows硬件检测工具分享
- 用vbscript实现隐藏任务栏图标的脚本
- 用autoit编写第一个脚本(Hello World)
- VBS调用WMI快速关闭IE的脚本
- 什么是OpenStack 开源的云计算管理平台项目
- Oracle数据库执行脚本常用命令小结
- 收集的ROS防火墙脚本
- JSP脚本漏洞面面观
- 不错的批处理脚本 第一部分
- VBS脚本加密/解密VBS脚本(简易免杀版1.1)
- 不错的批处理脚本实例代码 第二部分
- 使用脚本和批处理清除电脑中的痕迹的代码第1/2页
- 让你的脚本说话
- Lua脚本获取喜马拉雅MP3音频地址
- Windows下Ruby+Watir自动化测试的环境搭建及数据读取
- SQL Server中数据行批量插入脚本的存储实现
- 编程界主流脚本编程语言的比较和选择