Innhold
- 1 Initielt oppsett
- 1.1 Nettverk
- 1.2 Installasjon av software requirements
- 1.3 Installere pakker
- 1.4 Konfigurere Open vSwitch
- 1.5 Konfigurere autentisering
- 1.6 Konfigurere database
- 1.7 Konfigurere message broker (QPID)
- 1.8 Konfigurere nettverk
- 1.9 Konfigurere QPID til neutron på compute-node
- 1.10 Konfigurere Virtual Interface Plugging
- 1.11 Konfigurere firewall
- 1.12 Starte tjenestene
- 1.13 Konfigurere Glance
- 1.14 Konfigurere plugin (Open vSwitch)
- 1.15 Konfigurere lagring (gluster)
- 1.16 Til slutt
- 2 Konsoll (VNC)
- 3 Migrering
Notat
Dokumentasjon fra Red Hat: https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/
1 Initielt oppsett
Involverte maskiner:
- rhos-compute02.uio.no (compute)
Involverte nett:
| 129.240.148.192/26 | iaas-mgmt, vlan864 |
| 129.240.149.0/26 | iaas-admin, vlan846 |
| 129.240.149.64/26 | iaas-storage, vlan847 |
| 129.240.149.128/26 | iaas-ekstern, vlan848 |
| 129.240.149.192/26 | iaas-api, vlan849 |
1.1 Nettverk
Konfigurerte API-nett og storage-nett:
# cat ifcfg-em2 DEVICE="em2" BOOTPROTO="static" IPADDR="129.240.149.231" NETMASK="255.255.255.192" IPV6INIT="yes" HWADDR="B8:AC:6F:97:1A:6C" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="98b9845b-4231-4b9c-a42f-0324dde83c31" # cat ifcfg-em3 DEVICE="em3" BOOTPROTO="static" IPADDR="129.240.149.104" NETMASK="255.255.255.192" IPV6INIT="yes" HWADDR="B8:AC:6F:97:1A:6E" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="6d8b3724-41ac-490b-b7de-09ecd5e3f139"
1.2 Installasjon av software requirements
Installerte yum priorities-plugin:
yum install -y yum-plugin-priorities
Legger til openstack-repo rhel-x86_64-server-6-ost-4 og RHSS-repo rhel-x86_64-server-rhsclient-6:
rhn-channel -a -c rhel-x86_64-server-6-ost-4 \
-c rhel-x86_64-server-rhsclient-6
Legger inn i /etc/yum/pluginconf.d/rhnplugin.conf:
[rhel-x86_64-server-6-ost-4] priority = 1
Oppdaterer:
yum -y update
Rebootet:
reboot
1.3 Installere pakker
Følgende installeres:
yum -y install openstack-nova-common \ openstack-nova-compute \ openstack-ceilometer-compute \ openstack-ceilometer-common \ openstack-utils \ openstack-neutron \ openvswitch \ openstack-neutron-openvswitch \ python-cinderclient \ glusterfs-api \ glusterfs-libs \ glusterfs-fuse \ glusterfs \ openstack-nova-console
1.4 Konfigurere Open vSwitch
Starte tjenesten og sørge for at den kjører ved boot:
service openvswitch start chkconfig openvswitch on
Lager intern bridge:
ovs-vsctl add-br br-int
Lager /etc/sysconfig/network-scripts/ifcfg-br-int med innhold:
DEVICE=br-int DEVICETYPE=ovs TYPE=OVSBridge ONBOOT=yes BOOTPROTO=none
Starte agenten og sørge for at den kjører ved boot:
service neutron-openvswitch-agent start chkconfig neutron-openvswitch-agent on
Sørge for at ovs-cleanup kjører ved boot:
chkconfig neutron-ovs-cleanup on
1.5 Konfigurere autentisering
Sette auth_strategy:
openstack-config --set /etc/nova/nova.conf \ DEFAULT auth_strategy keystone
Sette authentication host:
openstack-config --set /etc/nova/api-paste.ini \ filter:authtoken auth_host rhos-controller-api.uio.no
Sette admin_tenant_name:
openstack-config --set /etc/nova/api-paste.ini \ filter:authtoken admin_tenant_name services
Sette admin_user:
openstack-config --set /etc/nova/api-paste.ini \ filter:authtoken admin_user nova
Sette passord:
openstack-config --set /etc/nova/api-paste.ini \ filter:authtoken admin_password $NOVA_PASS
1.6 Konfigurere database
Sette database connection:
openstack-config --set /etc/nova/nova.conf \
DEFAULT sql_connection \
mysql://nova:${NOVA_DBPASS}@rhos-controller-api.uio.no/nova
1.7 Konfigurere message broker (QPID)
Sette rpc_backend:
openstack-config --set /etc/nova/nova.conf \ DEFAULT rpc_backend nova.openstack.common.rpc.impl_qpid
Sette hostname:
openstack-config --set /etc/nova/nova.conf \ DEFAULT qpid_hostname rhos-controller-api.uio.no
1.8 Konfigurere nettverk
Sette network api til "neutron":
openstack-config --set /etc/nova/nova.conf \ DEFAULT network_api_class nova.network.neutronv2.api.API
Sette URL for neutron API:
openstack-config --set /etc/nova/nova.conf \ DEFAULT neutron_url http://rhos-network-api.uio.no:9696/
Sette neutron_admin_tenant_name:
openstack-config --set /etc/nova/nova.conf \ DEFAULT neutron_admin_tenant_name services
Sette neutron_admin_username:
openstack-config --set /etc/nova/nova.conf \ DEFAULT neutron_admin_username neutron
Sette neutron_admin_password:
openstack-config --set /etc/nova/nova.conf \ DEFAULT neutron_admin_password $NEUTRON_PASS
Sette neutron_admin_auth_url:
openstack-config --set /etc/nova/nova.conf \ DEFAULT neutron_admin_auth_url http://rhos-controller-api.uio.no:35357/v2.0
Sette security_group_api:
openstack-config --set /etc/nova/nova.conf \ DEFAULT security_group_api neutron
Sette firewall_driver:
openstack-config --set /etc/nova/nova.conf \ DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
1.9 Konfigurere QPID til neutron på compute-node
Sette RPC backend til QPID:
openstack-config --set /etc/neutron/neutron.conf \ DEFAULT rpc_backend neutron.openstack.common.rpc.impl_qpid
Sette QPID hostname:
openstack-config --set /etc/neutron/neutron.conf \ DEFAULT qpid_hostname rhos-controller-api.uio.no
1.10 Konfigurere Virtual Interface Plugging
Konfigurere til å bruke nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver, siden vi bruke Open vSwitch:
openstack-config --set /etc/nova/nova.conf \ DEFAULT libvirt_vif_driver \ nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
1.11 Konfigurere firewall
Fikse iptables:
iptables -A INPUT -p tcp -m multiport --dports 5900:5999 -j ACCEPT iptables-save > /etc/sysconfig/iptables
1.12 Starte tjenestene
Starte og sørge for at kjører ved boot:
service messagebus start chkconfig messagebus on service libvirtd start chkconfig libvirtd on service openstack-nova-compute start chkconfig openstack-nova-compute on
1.13 Konfigurere Glance
Sette glance_host:
openstack-config --set /etc/nova/nova.conf DEFAULT \ glance_host rhos-controller-api.uio.no
1.14 Konfigurere plugin (Open vSwitch)
Lage symlink:
ln -s /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \ /etc/neutron/plugin.iniSette på tunneling, sette type GRE og tunnel id range:
openstack-config --set /etc/neutron/plugin.ini \ OVS enable_tunneling True openstack-config --set /etc/neutron/plugin.ini \ OVS tenant_network_type gre openstack-config --set /etc/neutron/plugin.ini \ OVS tunnel_id_ranges "1:1000"
Sette hvilke bridger som skal brukes til tunnellering:
openstack-config --set /etc/neutron/plugin.ini \ OVS integration_bridge br-int openstack-config --set /etc/neutron/plugin.ini \ OVS tunnel_bridge br-tun
Lokal IP/nett som skal brukes for GRE ut (em1 på hver host):
openstack-config --set /etc/neutron/plugin.ini \ OVS local_ip $(ip addr list em1 | awk '/inet / {print $2}' | cut -d/ -f1)Sette core_plugin til OVS:
openstack-config --set /etc/neutron/neutron.conf \ DEFAULT core_plugin \ neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
Sette firewall driver:
openstack-config --set /etc/neutron/plugin.ini \ securitygroup firewall_driver \ neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
1.15 Konfigurere lagring (gluster)
Editere /etc/nova/nova.conf, sette:
openstack-config --set /etc/nova/nova.conf \ DEFAULT instances_path /gluster/nova/instances
Lage mountpoint:
mkdir -p /gluster/nova/instances
Montere:
mount -t glusterfs rhos-storage01-data:/nova-vol /gluster/nova/instances
Endre eierskap (BUG i dok.: må gjøres etter montering):
chown -R nova:nova /gluster/nova/
Legge til i fstab:
rhos-storage01-data:/nova-vol /gluster/nova/instances glusterfs defaults,_netdev 0 0
Restarte nova-tjenesten:
service openstack-nova-compute restart
2 Konsoll (VNC)
2.1 Firewall
Fikse iptables:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6080 -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6081 -j ACCEPT iptables-save > /etc/sysconfig/iptables
2.2 Konfigurasjon
Sette verdier i /etc/nova/nova.conf:
openstack-config --set /etc/nova/nova.conf \
DEFAULT vncserver_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf \
DEFAULT vncserver_proxyclient_address \
$(ip addr list em1 | awk '/inet / {print $2}' | cut -d/ -f1)
openstack-config --set /etc/nova/nova.conf \
DEFAULT novncproxy_base_url http://rhos-controller.uio.no:6080/vnc_auto.html
Editere /etc/libvirt/qemu.conf:
vnc_listen = "0.0.0.0"
Deretter restart tjenester:
service libvirtd restart service openstack-nova-compute restart
3 Migrering
Dokumentasjon: http://docs.openstack.org/trunk/config-reference/content/section_configuring-compute-migrations.html
3.1 Firewall
Fikse iptables:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 16509 -j ACCEPT iptables -A INPUT -p tcp -m multiport --dports 49152:49261 -j ACCEPT iptables-save > /etc/sysconfig/iptables
3.2 Konfigurere libvirt og qemu
Editere /etc/libvirt/libvirtd.conf:
listen_tls = 0 listen_tcp = 1 auth_tcp = "none"
Editere /etc/sysconfig/libvirtd:
LIBVIRTD_ARGS="--listen"
Restarte libvirtd:
service libvirtd restart
3.4 SSH for nova
nova før:
# getent passwd nova nova:x:162:162:OpenStack Nova Daemons:/var/lib/nova:/sbin/nologin
Sette nytt shell:
usermod -s /bin/bash nova
Etterpå:
# getent passwd nova nova:x:162:162:OpenStack Nova Daemons:/var/lib/nova:/bin/bash
Lage ssh-nøkkel for nova:
# su - nova $ ssh-keygen
Offentlig nøkkel for alle compute-noder legges inn i authorized_keys på alle compute-noder. FIXME: Bruke samme nøkkel overalt?
SELinux må endres for å tillate sshd å lese på nova-brukeren sitt hjemmeområde:
# cat /var/log/audit/audit.log | audit2allow -m foo
module foo 1.0;
require {
type nova_var_lib_t;
type sshd_t;
class dir { search getattr };
class file { read getattr open };
}
#============= sshd_t ==============
allow sshd_t nova_var_lib_t:dir { search getattr };
allow sshd_t nova_var_lib_t:file { read getattr open };
Laget en modul:
# cat /var/log/audit/audit.log | audit2allow -M nova_sshd ******************** IMPORTANT *********************** To make this policy package active, execute: semodule -i nova_sshd.pp
Lastet den inn:
semodule -i nova_sshd.pp