def setup_galera_cluster(): """Task to cluster the openstack nodes with galera""" if len(env.roledefs['openstack']) <= 1: print "Single Openstack cluster, skipping galera cluster setup." return if env.roledefs['openstack'].index(env.host_string) == 0: execute('setup_passwordless_ssh', *env.roledefs['openstack']) self_host = get_control_host_string(env.host_string) self_ip = hstr_to_ip(self_host) openstack_host_password = env.passwords[env.host_string] if (getattr(env, 'openstack_admin_password', None)): openstack_admin_password = env.openstack_admin_password else: openstack_admin_password = '******' openstack_host_list = [get_control_host_string(openstack_host)\ for openstack_host in env.roledefs['openstack']] galera_ip_list = [hstr_to_ip(galera_host)\ for galera_host in openstack_host_list] keystone_ip = get_keystone_ip() internal_vip = get_openstack_internal_vip() with cd(INSTALLER_DIR): run("PASSWORD=%s ADMIN_TOKEN=%s python setup-vnc-galera.py\ --self_ip %s --keystone_ip %s --galera_ip_list %s\ --internal_vip %s --openstack_index %d" % (openstack_host_password, openstack_admin_password, self_ip, keystone_ip, ' '.join(galera_ip_list), internal_vip, (openstack_host_list.index(self_host) + 1)))
def setup_galera_cluster(): """Task to cluster the openstack nodes with galera""" if len(env.roledefs['openstack']) <= 1: print "Single Openstack cluster, skipping galera cluster setup." return if env.roledefs['openstack'].index(env.host_string) == 0: execute('setup_passwordless_ssh', *env.roledefs['openstack']) self_host = get_control_host_string(env.host_string) self_ip = hstr_to_ip(self_host) openstack_host_password = env.passwords[env.host_string] if (getattr(env, 'openstack_admin_password', None)): openstack_admin_password = env.openstack_admin_password else: openstack_admin_password = '******' openstack_host_list = [get_control_host_string(openstack_host)\ for openstack_host in env.roledefs['openstack']] galera_ip_list = [hstr_to_ip(galera_host)\ for galera_host in openstack_host_list] keystone_ip = get_keystone_ip() internal_vip = get_from_testbed_dict('ha', 'internal_vip', None) with cd(INSTALLER_DIR): run("PASSWORD=%s ADMIN_TOKEN=%s python setup-vnc-galera.py\ --self_ip %s --keystone_ip %s --galera_ip_list %s\ --internal_vip %s --openstack_index %d" % (openstack_host_password, openstack_admin_password, self_ip, keystone_ip, ' '.join(galera_ip_list), internal_vip, (openstack_host_list.index(self_host) + 1)))
def setup_rdo(rdo_url='https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-4.noarch.rpm'): """Set up RDO in the openstack node""" with settings(warn_only=True): sudo('sudo yum -y install %s' % rdo_url) execute(fix_yum_repos) with settings(warn_only=True): sudo('sudo yum install -y openstack-packstack') sudo('packstack --allinone --mariadb-pw=juniper123 --use-epel=n --nagios-install=n') openstack_password = getattr(env, 'openstack_admin_password', 'contrail123') sudo('source keystonerc_admin && keystone user-password-update --pass %s admin' % openstack_password) sudo("sed -i -e 's/export OS_PASSWORD=.*/export OS_PASSWORD=%s/' keystonerc_admin " % openstack_password) with settings(warn_only=True): sudo("service openstack-nova-compute status") sudo("service openstack-nova-compute stop") with settings(warn_only=True): sudo("service openstack-nova-compute status") with settings(warn_only=True): sudo("service neutron-server status") sudo("service neutron-server stop") with settings(warn_only=True): sudo("service neutron-server status") with settings(warn_only=True): openstackrc_file = sudo("ls /etc/contrail/openstackrc") if openstackrc_file.return_code != 0: sudo('mkdir -p /etc/contrail/') sudo("ln -s ~/keystonerc_admin /etc/contrail/openstackrc") cfgm_0_ip = testbed.env['roledefs']['cfgm'][0].split('@')[1] keystone_ip = get_keystone_ip() sudo("source /etc/contrail/openstackrc; nova service-disable $(hostname) nova-compute") sudo("openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova.network.neutronv2.api.API") sudo("openstack-config --set /etc/nova/nova.conf DEFAULT neutron_url http://%s:9696" % cfgm_0_ip) sudo("openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_auth_url http://%s:35357/v2.0" % keystone_ip) sudo("openstack-config --set /etc/nova/nova.conf DEFAULT compute_driver nova.virt.libvirt.LibvirtDriver") sudo("openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_port 5999") sudo("service openstack-nova-api restart") sudo("service openstack-nova-conductor restart") sudo("service openstack-nova-scheduler restart") sudo("service openstack-nova-novncproxy restart") sudo("service openstack-nova-consoleauth restart") sudo("iptables --flush") sudo("sudo service iptables stop; echo pass") sudo("sudo service ip6tables stop; echo pass") sudo("sudo systemctl stop firewalld; echo pass") sudo("sudo systemctl status firewalld; echo pass") sudo("sudo chkconfig firewalld off; echo pass") sudo("sudo /usr/libexec/iptables/iptables.init stop; echo pass") sudo("sudo /usr/libexec/iptables/ip6tables.init stop; echo pass") sudo("sudo service iptables save; echo pass") sudo("sudo service ip6tables save; echo pass") steps = "\n\n\n" steps += "="*160 steps += "\nSteps to bring up contrail with the RDO:\n\ 1. Get the admin_token from /etc/keystone/keystone.conf of the openstack node and populate it as service_token in the testbed.py.\n\ 2. fab install_without_openstack (This step can be executed even before fab setup_rdo)\n\ 3. fab setup_without_openstack\n" steps += "="*160 print steps
def setup_galera_cluster(): """Task to cluster the openstack nodes with galera""" if len(env.roledefs['openstack']) <= 1: print "Single Openstack cluster, skipping galera cluster setup." return if env.roledefs['openstack'].index(env.host_string) == 0: execute('setup_passwordless_ssh', *env.roledefs['openstack']) self_host = get_control_host_string(env.host_string) self_ip = hstr_to_ip(self_host) openstack_host_list = [get_control_host_string(openstack_host)\ for openstack_host in env.roledefs['openstack']] galera_ip_list = [hstr_to_ip(galera_host)\ for galera_host in openstack_host_list] keystone_ip = get_keystone_ip() internal_vip = get_openstack_internal_vip() with cd(INSTALLER_DIR): sudo("setup-vnc-galera\ --self_ip %s --keystone_ip %s --galera_ip_list %s\ --internal_vip %s --openstack_index %d" % (self_ip, keystone_ip, ' '.join(galera_ip_list), internal_vip, (openstack_host_list.index(self_host) + 1)))
def setup_galera_cluster(): """Task to cluster the openstack nodes with galera""" if len(env.roledefs['openstack']) <= 1: print "Single Openstack cluster, skipping galera cluster setup." return if env.roledefs['openstack'].index(env.host_string) == 0: execute('setup_passwordless_ssh', *env.roledefs['openstack']) self_host = get_control_host_string(env.host_string) self_ip = hstr_to_ip(self_host) openstack_host_list = [get_control_host_string(openstack_host)\ for openstack_host in env.roledefs['openstack']] galera_ip_list = [hstr_to_ip(galera_host)\ for galera_host in openstack_host_list] keystone_ip = get_keystone_ip() internal_vip = get_openstack_internal_vip() with cd(INSTALLER_DIR): sudo("setup-vnc-galera\ --self_ip %s --keystone_ip %s --galera_ip_list %s\ --internal_vip %s --openstack_index %d" % ( self_ip, keystone_ip, ' '.join(galera_ip_list), internal_vip, (openstack_host_list.index(self_host) + 1)))
def setup_rdo( rdo_url='https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-4.noarch.rpm' ): """Set up RDO in the openstack node""" with settings(warn_only=True): sudo('sudo yum -y install %s' % rdo_url) execute(fix_yum_repos) with settings(warn_only=True): sudo('sudo yum install -y openstack-packstack') sudo( 'packstack --allinone --mariadb-pw=juniper123 --use-epel=n --nagios-install=n' ) openstack_password = getattr(env, 'openstack_admin_password', 'contrail123') sudo( 'source keystonerc_admin && keystone user-password-update --pass %s admin' % openstack_password) sudo( "sed -i -e 's/export OS_PASSWORD=.*/export OS_PASSWORD=%s/' keystonerc_admin " % openstack_password) with settings(warn_only=True): sudo("service openstack-nova-compute status") sudo("service openstack-nova-compute stop") with settings(warn_only=True): sudo("service openstack-nova-compute status") with settings(warn_only=True): sudo("service neutron-server status") sudo("service neutron-server stop") with settings(warn_only=True): sudo("service neutron-server status") with settings(warn_only=True): openstackrc_file = sudo("ls /etc/contrail/openstackrc") if openstackrc_file.return_code != 0: sudo('mkdir -p /etc/contrail/') sudo("ln -s ~/keystonerc_admin /etc/contrail/openstackrc") cfgm_0_ip = testbed.env['roledefs']['cfgm'][0].split('@')[1] keystone_ip = get_keystone_ip() sudo( "source /etc/contrail/openstackrc; nova service-disable $(hostname) nova-compute" ) sudo( "openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova.network.neutronv2.api.API" ) sudo( "openstack-config --set /etc/nova/nova.conf DEFAULT neutron_url http://%s:9696" % cfgm_0_ip) sudo( "openstack-config --set /etc/nova/nova.conf DEFAULT neutron_admin_auth_url http://%s:35357/v2.0" % keystone_ip) sudo( "openstack-config --set /etc/nova/nova.conf DEFAULT compute_driver nova.virt.libvirt.LibvirtDriver" ) sudo( "openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_port 5999" ) sudo("service openstack-nova-api restart") sudo("service openstack-nova-conductor restart") sudo("service openstack-nova-scheduler restart") sudo("service openstack-nova-novncproxy restart") sudo("service openstack-nova-consoleauth restart") sudo("iptables --flush") sudo("sudo service iptables stop; echo pass") sudo("sudo service ip6tables stop; echo pass") sudo("sudo systemctl stop firewalld; echo pass") sudo("sudo systemctl status firewalld; echo pass") sudo("sudo chkconfig firewalld off; echo pass") sudo("sudo /usr/libexec/iptables/iptables.init stop; echo pass") sudo("sudo /usr/libexec/iptables/ip6tables.init stop; echo pass") sudo("sudo service iptables save; echo pass") sudo("sudo service ip6tables save; echo pass") steps = "\n\n\n" steps += "=" * 160 steps += "\nSteps to bring up contrail with the RDO:\n\ 1. Get the admin_token from /etc/keystone/keystone.conf of the openstack node and populate it as service_token in the testbed.py.\n\ 2. fab install_without_openstack (This step can be executed even before fab setup_rdo)\n\ 3. fab setup_without_openstack\n" steps += "=" * 160 print steps