注意:建议大家直接打开编辑复制,由于编辑器的编码问题,会出现自动将:
“sudo sed -i "/ \ [ DEFAULT \ ] / a \ rpc_backend = rabbit" /etc/nova/nova.conf”
转换为sudo sed -i "/ DEFAULT /a\rpc_backend = rabbit" /etc/nova/nova.conf
#=============================================================== # #Compute Node Configuate OS Env # #=============================================================== export controller_eth=eth0 export data_eth=eth1 export SourceIP=192.168.3.199 export controller=192.168.3.180 export my_ip="$(/sbin/ifconfig $controller_eth | awk '/inet addr/ {print $2}' | cut -f2 -d ":")" export my_tunnel_ip="$(/sbin/ifconfig $data_eth | awk '/inet addr/ {print $2}' | cut -f2 -d ":")" export nova_pass=nova4smtest export rabbit_pass=mq4smtest export neutron_pass=neutron4smtest export nova_db_user=novadbadmin export nova_db_pass=nova4smtest sleep 3s export is_configuate_openstack_source=0 export is_update_os=0 export is_Install_SoftWare=0 export is_NTP=0 export is_ip_forward=0 export is_Neutron_conf=0 export is_Nova_conf=0 export is_cpuinfo=0 export is_Configuate_statoverride=0 #=============================================================== # #Network Node Configuate OpenStack Source # #=============================================================== configuate_openstack_source_func(){ file=/etc/apt/sources.list > $file echo "deb http://$SourceIP/openstack trusty icehouse" >> $file echo "deb http://$SourceIP/openstack trusty icehouse-ext" >> $file echo "deb http://$SourceIP/openstack trusty os" >> $file echo "deb http://$SourceIP/openstack trusty tools" >> $file } Update_os_func(){ sudo apt-get update } Install_SoftWare_func(){ echo "*" echo "*" echo "*" echo "=====================openssh-server" echo "*" echo "*" echo "*" sudo apt-get install openssh-server -y --force-yes echo "*" echo "*" echo "*" echo "=====================ntp" echo "*" echo "*" echo "*" sudo apt-get install ntp -y --force-yes echo "*" echo "*" echo "*" echo "=====================mysql" echo "*" echo "*" echo "*" sudo apt-get install python-mysqldb -y --force-yes sudo apt-get install python-software-properties -y --force-yes echo "*" echo "*" echo "*" echo "=====================nova" echo "*" echo "*" echo "*" sudo apt-get install nova-compute-kvm python-guestfs -y --force-yes echo "*" echo "*" echo "*" echo "=====================neutron" echo "*" echo "*" echo "*" sudo apt-get install neutron-common neutron-plugin-ml2 neutron-plugin-openvswitch-agent openvswitch-datapath-dkms -y --force-yes } #=============================================================== # #Network Node Configuate NTP # #=============================================================== NTP_func(){ echo "===============Start configuate ntp" sudo sed -i -e " s/server 0.ubuntu.pool.ntp.org/#server 0.ubuntu.pool.ntp.org/g;\ s/server 1.ubuntu.pool.ntp.org/#server 1.ubuntu.pool.ntp.org/g;\ s/server 2.ubuntu.pool.ntp.org/#server 2.ubuntu.pool.ntp.org/g;\ s/server 3.ubuntu.pool.ntp.org/#server 3.ubuntu.pool.ntp.org/g;\ s/server ntp.ubuntu.com/server $controller/g" /etc/ntp.conf sudo service ntp stop sudo ntpdate $controller sudo service ntp start echo "Successfull===================Start configuate ntp" sleep 3s } Configuate_statoverride_func(){ sudo dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-$(uname -r) sudo touch /etc/kernel/postinst.d/statoverride echo "#!/bin/sh" >> /etc/kernel/postinst.d/statoverride sudo sed -i '1a version="$1"' /etc/kernel/postinst.d/statoverride sudo sed -i '2a # passing the kernel version is required' /etc/kernel/postinst.d/statoverride sudo sed -i '3a [ -z "${version}" ] && exit 0' /etc/kernel/postinst.d/statoverride sudo sed -i '4a dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-${version}' /etc/kernel/postinst.d/statoverride sudo chmod +x /etc/kernel/postinst.d/statoverride } Nova_func(){ nova_file=/etc/nova/nova.conf > $nova_file echo "[DEFAULT]" >> $nova_file echo "dhcpbridge_flagfile=/etc/nova/nova.conf" >> $nova_file echo "dhcpbridge=/usr/bin/nova-dhcpbridge" >> $nova_file echo "logdir=/var/log/nova" >> $nova_file echo "state_path=/var/lib/nova" >> $nova_file echo "lock_path=/var/lock/nova" >> $nova_file echo "force_dhcp_release=True" >> $nova_file echo "iscsi_helper=tgtadm" >> $nova_file echo "libvirt_use_virtio_for_bridges=True" >> $nova_file echo "connection_type=libvirt" >> $nova_file echo "root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf" >> $nova_file echo "verbose=True" >> $nova_file echo "ec2_private_dns_show_ip=True" >> $nova_file echo "api_paste_config=/etc/nova/api-paste.ini" >> $nova_file echo "volumes_path=/var/lib/nova/volumes" >> $nova_file echo "enabled_apis=ec2,osapi_compute,metadata" >> $nova_file echo "rpc_backend = rabbit" >> $nova_file echo "rabbit_host = $controller" >> $nova_file echo "rabbit_userid = guest" >> $nova_file echo "rabbit_password = $rabbit_pass" >> $nova_file echo "rabbit_port = 5672" >> $nova_file echo "my_ip = $my_ip" >> $nova_file echo "vnc_enabled = True" >> $nova_file echo "vncserver_listen = 0.0.0.0" >> $nova_file echo "vncserver_proxyclient_address = $my_ip" >> $nova_file echo "vnc_enabled = True" >> $nova_file echo "novncproxy_base_url = http://$controller:6080/vnc_auto.html" >> $nova_file echo "vif_plugging_timeout = 10" >> $nova_file echo "vif_plugging_is_fatal = False" >> $nova_file echo "auth_strategy = keystone" >> $nova_file echo "glance_host = $controller" >> $nova_file echo "network_api_class = nova.network.neutronv2.api.API" >> $nova_file echo "neutron_url = http://$controller:9696" >> $nova_file echo "neutron_auth_strategy = keystone" >> $nova_file echo "neutron_admin_tenant_name = service" >> $nova_file echo "neutron_admin_username = neutron" >> $nova_file echo "neutron_admin_password = $neutron_pass" >> $nova_file echo "neutron_admin_auth_url = http://$controller:35357/v2.0" >> $nova_file echo "linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver" >> $nova_file echo "firewall_driver = nova.virt.firewall.NoopFirewallDriver" >> $nova_file echo "security_group_api = neutron" >> $nova_file echo "[keystone_authtoken]" >> $nova_file echo "auth_uri = http://$controller:5000" >> $nova_file echo "auth_host = $controller" >> $nova_file echo "auth_port = 35357" >> $nova_file echo "auth_protocol = http" >> $nova_file echo "admin_tenant_name = service" >> $nova_file echo "admin_user = nova" >> $nova_file echo "admin_password = $nova_pass" >> $nova_file echo "[database]" >> $nova_file echo "connection = mysql://$nova_db_user:$nova_db_pass@$controller/nova" >> $nova_file # delete nova.sqlite export nova_sqlite="/var/lib/nova/nova.sqlite" if [ -f "$nova_sqlite" ]; then sudo rm "$nova_sqlite" fi } CpuInfo_func(){ temp=`egrep -c '(vmx|svm)' /proc/cpuinfo` if [ "$temp" = 0 ]; then sudo sed -i -e " s/virt_type=kvm/virt_type=qemu/g" /etc/nova/nova-compute.conf fi } Configuate_ip4_func(){ echo "net.ipv4.conf.all.rp_filter=0" >> /etc/sysctl.conf echo "net.ipv4.conf.default.rp_filter=0" >> /etc/sysctl.conf sysctl -p } Neutron_func(){ echo "===============Start configuate neutron.conf" #Keystone sudo sed -i -e 's/# auth_strategy = keystone/auth_strategy = keystone/g' /etc/neutron/neutron.conf sudo sed -i -e " s/%SERVICE_TENANT_NAME%/service/g; s/%SERVICE_USER%/neutron/g; \ s/%SERVICE_PASSWORD%/$neutron_pass/g; \ s/auth_host = 127.0.0.1/auth_host = $controller/g" /etc/neutron/neutron.conf sudo sed -i "/\[keystone_authtoken\]/a\auth_uri = http://$controller:5000" /etc/neutron/neutron.conf #RabbitMQ sudo sed -i -e " s/# rpc_backend = neutron.openstack.common.rpc.impl_kombu/rpc_backend = neutron.openstack.common.rpc.impl_kombu/g; \ s/# rabbit_host = localhost/rabbit_host = $controller/g; \ s/# rabbit_password = guest/rabbit_password = $rabbit_pass/g; \ s/# rabbit_userid = guest/rabbit_userid = guest/g" \ /etc/neutron/neutron.conf #ML2 plug-in sudo sed -i -e 's/core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin/core_plugin = ml2/g' /etc/neutron/neutron.conf sudo sed -i -e 's/# service_plugins =/service_plugins = router/g' /etc/neutron/neutron.conf sudo sed -i -e 's/# allow_overlapping_ips = False/allow_overlapping_ips = True/g' /etc/neutron/neutron.conf echo "Successfull=================== Start configuate neutron.conf" sleep 3s #*************************************************************** #ml2_conf.ini #*************************************************************** echo "===============Start configuate ml2_conf.ini" #[ml2] sudo sed -i -e 's/# type_drivers = local,flat,vlan,gre,vxlan/type_drivers = gre/g' /etc/neutron/plugins/ml2/ml2_conf.ini sudo sed -i -e 's/# tenant_network_types = local/tenant_network_types = gre/g' /etc/neutron/plugins/ml2/ml2_conf.ini sudo sed -i -e 's/# mechanism_drivers =/mechanism_drivers = openvswitch/g' /etc/neutron/plugins/ml2/ml2_conf.ini #[ml2_type_gre] sudo sed -i -e 's/# tunnel_id_ranges =/tunnel_id_ranges = 1:1000/g' /etc/neutron/plugins/ml2/ml2_conf.ini #[securitygroup] sudo sed -i -e 's/# enable_security_group = True/enable_security_group = True/g' /etc/neutron/plugins/ml2/ml2_conf.ini echo "firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver" >> /etc/neutron/plugins/ml2/ml2_conf.ini #[ovs] echo "[ovs]" >> /etc/neutron/plugins/ml2/ml2_conf.ini echo "local_ip = $my_tunnel_ip" >> /etc/neutron/plugins/ml2/ml2_conf.ini echo "tunnel_type = gre" >> /etc/neutron/plugins/ml2/ml2_conf.ini echo "enable_tunneling = True" >> /etc/neutron/plugins/ml2/ml2_conf.ini echo "Successfull=================== Start configuate ml2_conf.ini" } if [ `id -u ` -ne "0" ]; then echo "please use root login in " exit 1 fi if [ "$is_configuate_openstack_source" = 0 ]; then configuate_openstack_source_func; fi if [ "$is_update_os" = 0 ]; then Update_os_func; fi if [ "$is_Install_SoftWare" = 0 ]; then Install_SoftWare_func; fi if [ "$is_NTP" = 0 ]; then NTP_func; fi if [ "$is_Configuate_statoverride" = 0 ]; then Configuate_statoverride_func; fi if [ "$is_Nova_conf" = 0 ]; then Nova_func; fi if [ "$is_cpuinfo" = 0 ]; then CpuInfo_func; fi sudo service nova-compute restart sleep 5s sudo service nova-compute restart if [ "$is_ip_forward" = 0 ]; then Configuate_ip4_func; fi if [ "$is_Neutron_conf" = 0 ]; then Neutron_func; fi sudo service openvswitch-switch restart sudo service nova-compute restart sudo service neutron-plugin-openvswitch-agent restart sleep 3s echo "*" sudo service openvswitch-switch restart sudo service nova-compute restart sudo service neutron-plugin-openvswitch-agent restart