欢迎各位关注我的微博:http://weibo.com/u/216633637
1.准备结点
sudo su -
#apt-get install python-software-properties
#add-apt-repository cloud-archive:havana
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get install ntp
sed -i 's/server 0.ubuntu.pool.ntp.org/#server 0.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 1.ubuntu.pool.ntp.org/#server 1.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 2.ubuntu.pool.ntp.org/#server 2.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 3.ubuntu.pool.ntp.org/#server 3.ubuntu.pool.ntp.org/g' /etc/ntp.conf #Set the network node to follow up your conroller node sed -i 's/server ntp.ubuntu.com/server 10.10.10.2/g' /etc/ntp.conf service ntp restart
2.配置网络
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.10.10.4
netmask 255.255.255.0
auto eth0:1
iface eth0:1 inet static
address 10.20.20.4
netmask 255.255.255.0
#因为安装包的时候,还是通过apt-get来下载的,所以还是要分配一个可以连外网的IP,安装部署测试完成之后,可以将其down掉
auto eth0:2
iface eth0:2 inet static
address 192.168.122.4
netmask 255.255.255.0
gateway 192.168.122.1
dns-nameservers 192.168.122.1
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sysctl -p
3.KVM
apt-get install cpu-checker
kvm-ok
apt-get install -y kvm libvirt-bin pm-utils
cgroup_device_acl = [ "/dev/null", "/dev/full", "/dev/zero", "/dev/random", "/dev/urandom", "/dev/ptmx", "/dev/kvm", "/dev/kqemu", "/dev/rtc", "/dev/hpet","/dev/net/tun" ]
virsh net-destroy default
virsh net-undefine default
listen_tls = 0 listen_tcp = 1 auth_tcp = "none"
env libvirtd_opts="-d -l"
libvirtd_opts="-d -l"
service libvirt-bin restart
4.OpenVSwitch
apt-get install openvswitch-switch openvswitch-datapath-dkms openvswitch-datapath-source
module-assistant auto-install openvswitch-datapath
service openvswitch-switch restart
ovs-vsctl add-br br-int
5.Neutron
apt-get install neutron-plugin-openvswitch-agent
[OVS] tenant_network_type = gre tunnel_id_ranges = 1:1000 integration_bridge = br-int tunnel_bridge = br-tun local_ip = 10.20.20.4 enable_tunneling = True #Firewall driver for realizing quantum security group function [SECURITYGROUP] firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
rabbit_host = 10.10.10.2 [keystone_authtoken] auth_host = 10.10.10.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = neutron admin_password = admin signing_dir = /var/lib/neutron/keystone-signing [database] connection = mysql://neutronUser:[email protected]/neutron
service neutron-plugin-openvswitch-agent restart
6.Nova
apt-get install nova-compute-kvm python-guestfs
[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory auth_host = 10.10.10.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = nova admin_password = admin signing_dirname = /tmp/keystone-signing-nova # Workaround for https://bugs.launchpad.net/nova/+bug/1154809 auth_version = v2.0
[DEFAULT]
# This file is configuration of nova
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/run/lock/nova
verbose=True
api_paste_config=/etc/nova/api-paste.ini
compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler
nova_url=http://10.10.10.2:8774/v1.1/
sql_connection=mysql://novaUser:[email protected]/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
#Availability_zone
#default_availability_zone=fbw
# Auth
use_deprecated_auth=false
auth_strategy=keystone
# Rabbit MQ
my_ip=10.10.10.4
rabbit_host=10.10.10.2
rpc_backend = nova.rpc.impl_kombu
# Imaging service
glance_host=10.10.10.2
glance_api_servers=10.10.10.2:9292
image_service=nova.image.glance.GlanceImageService
# Vnc configuration
novnc_enabled=true
novncproxy_base_url=http://192.168.122.2:6080/vnc_auto.html
novncproxy_port=6080
vncserver_proxyclient_address=10.10.10.4 # diffrente from every node,与控制节点不一样
vncserver_listen=0.0.0.0
# Network settings
network_api_class=nova.network.neutronv2.api.API
neutron_url=http://10.10.10.2:9696
neutron_auth_strategy=keystone
neutron_admin_tenant_name=service
neutron_admin_username=neutron
neutron_admin_password=admin
neutron_admin_auth_url=http://10.10.10.2:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
#If you want Neutron + Nova Security groups
firewall_driver=nova.virt.firewall.NoopFirewallDriver
security_group_api=neutron
#If you want Nova Security groups only, comment the two lines above and uncomment line -1-.
#-1-firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
#Metadata
service_neutron_metadata_proxy = true
neutron_metadata_proxy_shared_secret = helloOpenStack
# Compute #
compute_driver=libvirt.LibvirtDriver
# Cinder #
volume_api_class=nova.volume.cinder.API
osapi_volume_listen_port=5900
# Ceilemeter #
instance_usage_audit=True
instance_usage_audit_period=hour
notify_on_state_change=vm_and_task_state
notification_driver=nova.openstack.common.notifier.rpc_notifier
notification_driver=ceilometer.compute.nova_notifier
cd /etc/init.d/; for i in $( ls nova-* ); do service $i restart; done;cd $OLDPWD
nova-manage service list
7. 为监控服务安装计算代理
ap-get install ceilometer-agent-compute
... [DEFAULT] ... instance_usage_audit=True instance_usage_audit_period=hour notify_on_state_change=vm_and_task_state notification_driver=nova.openstack.common.notifier.rpc_notifier notification_driver=ceilometer.compute.nova_notifier
service ceilometer-agent-compute restart
至此,OpenStack基本的服务已经配置完毕,接下来你就可以创建基本的虚拟网络,启动虚拟机,并分配给网络和可供外网访问的浮动IP。
至于如何通过neutron创建内网、外网,和路由,我推荐直接在dashboard的界面中来建立,当然也可以参照Awy的博文用neutron的命令去创建,或者参考官方文档,这里就不再赘述了。
不过要让外网能访问虚拟机,记得要修改安全组规则,增加icmp、ssh(tcp 22)访问规则即可。
希望,这几篇博文能帮助你成功部署基本的OpenStack环境,同也给自己做个记录,免得过一段时间又全忘了,出了问题,又不知道哪里没配好了。