Nova에서 사용할 rabbitmq 설치하기
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
sudo apt-key add rabbitmq-signing-key-public.asc
apt-get update
sudo apt-get install rabbitmq-server
rabbitmq-plugins enable rabbitmq_management
openstack에서 사용할 rabbitmq 계정 만들기
rabbitmqctl add_user openstack openstack
Nova 컨트롤러 노드 설치하기
mysql DB 준비
mysql -u root -p
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
source admin-openrc.sh
openstack user create --domain default --password-prompt nova
패스워드는 'nova'로 설정
openstack role add --project service --user nova admin
openstack service create --name nova --description "OpenStack Compute" compute
openstack endpoint create --region RegionOne compute public http://controller:8774/v2/%s
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2/%s
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2/%s
apt-get install nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient
vi /etc/nova/nova.conf
[DEFAULT]
dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
force_dhcp_release=True
iscsi_helper=tgtadm
libvirt_use_virtio_for_bridges=True
connection_type=libvirt
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
verbose=True
ec2_private_dns_show_ip=True
api_paste_config=/etc/nova/api-paste.ini
volumes_path=/var/lib/nova/volumes
enabled_apis=osapi_compute,metadata
rpc_backend=rabbit
auth_strategy = keystone
my_ip = 192.168.123.103
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[oslo_messaging_rabbit]
rabbit_host=controller
rabbit_userid=openstack
rabbit_password=openstack
[database]
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = nova
password = NOVA_PASS
[vnc]
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
[glance]
host=controller
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
|
api-paste.ini파일에서 authtoken영역을 아래처럼 변경
vi /etc/nova/api-paste.ini
[filter:authtoken]
#paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
identity_uri = http://controller:35357
admin_user=admin
admin_password=admin
delay_auth_decision = true
|
nova DB 마이그레이션
su -s /bin/sh -c "nova-manage db sync" nova
프로세스 재시작
service nova-api restart
service nova-cert restart
service nova-consoleauth restart
service nova-scheduler restart
service nova-conductor restart
service nova-novncproxy restart
sqlite DB 파일 삭제
rm -f /var/lib/nova/nova.sqlite
Nova Compute 노드 설치하기
apt-get install nova-compute sysfsutils
vi /etc/nova/nova.conf
컴퓨트 노드가 하드웨어 가속을 지원하는지 확인.
egrep -c '(vmx|svm)' /proc/cpuinfo
vi /etc/nova/nova-compute.conf
[DEFAULT]
compute_driver=libvirt.LibvirtDriver
[libvirt]
#virt_type=kvm
virt_type=qemu
|
service nova-compute restart
rm -f /var/lib/nova/nova.sqlite
설치내용 확인
컨트롤러 노드에서 아래명령 실행
source admin-openrc.sh
nova service-list
nova endpoints
nova image-list
참고