由於Nova 的部分 比較複雜 將會分為幾天來做教學
首先 我們先需要一個Controller Node 來做虛擬機器的管理
所以,今天就讓我們先來安裝Controller node吧
Install
Compute controller services on controller node
#
apt-get install -y nova-api nova-cert nova-conductor nova-consoleauth
nova-novncproxy nova-scheduler python-novaclient nova-compute-kvm
python-guestfs nova-network
(若使用qemu,請改裝nova-compute-qemu,並修改nova.conf)
設定libguestfs0
: Create or update supermin appliance now? (是)
#
rm /var/lib/nova/nova.sqlite
#
dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-$(uname
-r)
#
modprobe kvm_intel
#
nano /etc/libvirt/qemu.conf (modify)
user
= "root"
group
= "root"
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"
]
#
service libvirt-bin restart
Configure
Compute controller services on controller node
#
nano /etc/nova/nova.conf (清空檔案再新增內容)
[DEFAULT]
#force_config_drive=true
verbose=True
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
rootwrap_config=/etc/nova/rootwrap.conf
root_helper=sudo
nova-rootwrap /etc/nova/rootwrap.conf
rpc_backend=rabbit
rabbit_host=[Controller_IP]
rabbit_password=RABBIT_PASS
bindir=/usr/bin
#
GLANCE
image_service=nova.image.glance.GlanceImageService
glance_api_servers=[Controller_IP]:9292
#
NOVA
nova_url=http://[Controller_IP]:8774/v1.1/
connection_type=libvirt
compute_driver=libvirt.LibvirtDriver
compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
instance_name_template=instance-%08x
api_paste_config=/etc/nova/api-paste.ini
libvirt_use_virtio_for_bridges=True
osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions
ec2_dmz_host=[Controller_IP]
s3_host=[Controller_IP]
enabled_apis=ec2,osapi_compute,metadata
allow_resize_to_same_host=True
resume_guests_state_on_host_boot=True
start_guests_on_host_boot=False
#
Networking
network_api_class
= nova.network.api.API
security_group_api
= nova
network_manager=nova.network.manager.FlatDHCPManager
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
dhcpbridge=/usr/bin/nova-dhcpbridge
dhcpbridge_flagfile=/etc/nova/nova.conf
force_dhcp_release=True
network_size=254
allow_same_net_traffic=False
send_arp_for_ha=True
share_dhcp_address=True
flat_network_bridge=br0
flat_interface=eth0
public_interface=eth1
fixed_range=192.168.1.0/24
#
VOVNC CONSOLE
my_ip=[Controller_IP]
novncproxy_base_url=http://[Controller_IP]:6080/vnc_auto.html
vncserver_listen=[Controller_IP]
vncserver_proxyclient_address=[Controller_IP]
#
Cinder
volumes_path=/var/lib/nova/volumes
volume_api_class=nova.volume.cinder.API
volume_driver=nova.volume.driver.ISCSIDriver
volume_group=cinder-volumes
volume_name_template=volume-%s
iscsi_helper=tgtadm
auth_strategy=keystone
[keystone_authtoken]
auth_host=[Controller_IP]
auth_port=35357
auth_protocol=http
auth_uri=http://[Controller_IP]:5000
admin_tenant_name=service
admin_user=nova
admin_password=NOVA_PASS
signing_dirname=/tmp/keystone-signing-nova
[database]
connection=mysql://nova:NOVA_DBPASS@[Controller_IP]/nova
[libvirt]
libvirt_type=kvm
建立For Nova的表格
#
mysql -u root -p
>
CREATE DATABASE nova;
>
GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
>
GRANT ALL ON nova.* TO 'nova'@'localhost' IDENTIFIED BY
'NOVA_DBPASS';
#
su -s /bin/sh -c "nova-manage db sync" nova
#
keystone user-create --name=nova --pass=NOVA_PASS
--email=nova@example.com
#
keystone user-role-add --user=nova --tenant=service --role=admin
#
keystone service-create --name=nova --type=compute
--description="Nova Compute service"
#
keystone endpoint-create --service-id=$(keystone service-list | awk
'/ compute / {print $2}')
--publicurl=http://[Controller_IP]:8774/v2/%\(tenant_id\)s
--internalurl=http://[Controller_IP]:8774/v2/%\(tenant_id\)s
--adminurl=http://[Controller_IP]:8774/v2/%\(tenant_id\)s
#
nano ~/restart.sh
#!/bin/bash
service
nova-api restart
service
nova-cert restart
service
nova-consoleauth restart
service
nova-scheduler restart
service
nova-conductor restart
service
nova-novncproxy restart
service
nova-compute restart
service
nova-network restart
#
chmod +x ~/restart.sh
#
~/restart.sh
#
nova-manage service list
理論上你應該會看到6個笑臉正在對你笑
這代表著是 目前所有服務正常啟動中
Day 28 Ending !