Cloud: Compute Node Setup

From CSCWiki
Revision as of 17:50, 24 March 2018 by Ztseguin (talk | contribs) (Created page with "= Configuring a new compute node = '''NOTE: These instructions are a WIP''' == Machine setup == === Networking configuring === We will be using 2 interfaces on the machine...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Configuring a new compute node

NOTE: These instructions are a WIP

Machine setup

Networking configuring

We will be using 2 interfaces on the machine:

  • 1gbps for management (VLAN 529 (CSC Cloud Management))
  • 10gbps for VMs (VLAN 134 (MSO), 425 (CSC Cloud))

/etc/network/interfaces

# Management interface
auto eno1.529
iface eno1.529 inet manual
iface eno1.529 inet6 manual
   vlan-raw-device   eno1

auto br529
iface br529 inet static
   bridge_ports   eno1.529
   address        172.19.168.23
   netmask        255.255.255.224
   gateway        172.19.168.1

iface br529 inet6 static
   address fd74:6b6a:8eca:4902::23
   netmask 64
   gateway fd74:6b6a:8eca:4902::1

#################
# VM NETWORKING #
#################

auto enp94s0.134
iface enp94s0.134 inet manual
iface enp94s0.134 inet6 manual
   vlan-raw-device enp94s0

auto enp94s0.425
iface enp94s0.425 inet manual
iface enp94s0.425 inet6 manual
   vlan-raw-device enp94s0

auto enp94s0.520
iface enp94s0.520 inet manual
iface enp94s0.520 inet6 manual
   vlan-raw-device enp94s0

Compute service

Prerequisites

  • debian.csclub APT repository configured

Installation

Configure virtualization

  1. Allow syscom access to libvirt.

    /etc/polkit-1/localauthority/50-local.d/libvirt.pkla

    [Allow syscom to libvirt]
    Identity=unix-group:syscom
    Action=org.libvirt.unix.manage
    ResultAny=yes
  2. sudo apt install qemu qemu-kvm libvirt-bin bridge-utils

Install Nova Compute

From:

sudo apt install nova-compute neutron-linuxbridge-agent

Now configure:

/etc/nova/nova.conf
[DEFAULT]
# ...
auth_strategy=keystone
transport_url=rabbit://$USER:$PASS@rabbit.cloud.csclub.uwaterloo.ca
my_ip=172.19.168.23
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
default_availability_zone = csc-mc

[oslo_concurrency]
lock_path=/var/lock/nova

[database]
connection=mysql+pymysql://$USER:$PASS@db.cloud.csclub.uwaterloo.ca/nova_api

[libvirt]                                                                                           
use_virtio_for_bridges=True                                                                         
inject_password=true                                                                                
live_migration_flag = VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_TUNNELLED
block_migration_flag = VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_LIVE, VIR_MIGRATE_TUNNELLED, VIR_MIGRATE_NON_SHARED_INC

[keystone_authtoken]
auth_uri = https://auth.cloud.csclub.uwaterloo.ca
auth_url = https://admin.cloud.csclub.uwaterloo.ca
memcached_servers = memcache1.cloud.csclub.uwaterloo.ca:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = $USER
password = $PASS

[vnc]
enabled = true
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = https://console.cloud.csclub.uwaterloo.ca/vnc_auto.html

[glance]
api_servers = https://image.cloud.csclub.uwaterloo.ca

[neutron]
url = https://network.cloud.csclub.uwaterloo.ca
auth_url = https://admin.cloud.csclub.uwaterloo.ca
auth_type = password
project_domain_name = Default 
user_domain_name = Default
project_name = service
region_name = csc-mc
username = $USER
password = $PASS

[placement]
os_region_name = csc-mc
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = https://admin.cloud.csclub.uwaterloo.ca/v3
username = $USER
password = $PASS
/etc/neutron/neutron.conf
[DEFAULT]
# ...
transport_url=$USER:$PASS@rabbit.cloud.csclub.uwaterloo.ca
auth_strategy=keystone

[keystone_authtoken]
auth_uri = https://auth.cloud.csclub.uwaterloo.ca
auth_url = https://admin.cloud.csclub.uwaterloo.ca
memcached_servers = memcache1.cloud.csclub.uwaterloo.ca:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = $USER
password = $PASS
/etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings=mso-internet:enp94s0.134, mso-intranet:enp94s0.425

[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

[vxlan]
enable_vxlan=true
local_ip=172.19.168.23
l2_population=true

Then:

sudo systemctl restart nova-compute neutron-linuxbirdge-agent