def provision_dvs_fab(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) dvs_params = {} dvs_params['name'] = vcenter_info['dv_switch_fab']['dv_switch_name'] dvs_params['dvportgroup_name'] = vcenter_info['dv_port_group_fab'][ 'dv_portgroup_name'] dvs_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group_fab'][ 'number_of_ports'] dvs_params['dvportgroup_uplink'] = vcenter_info['dv_port_group_fab'][ 'uplink'] dvs_params['datacenter_mtu'] = vcenter_info['datacenter_mtu'] dvs_params['vcenter_server'] = vcenter_info['server'] dvs_params['vcenter_username'] = vcenter_info['username'] dvs_params['vcenter_password'] = vcenter_info['password'] dvs_params['cluster_name'] = vcenter_info['cluster'] dvs_params['datacenter_name'] = vcenter_info['datacenter'] dvs_params['esxi_info'] = esxi_info dvs_params['host_list'] = host_list dvs_fab(dvs_params)
def provision_dvs_fab(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) dvs_params = {} for dc in vcenter_info['datacenters']: dc_info = vcenter_info['datacenters'][dc] for dvs in dc_info['dv_switches']: if dvs == 'dv_switch_fab': dv_switch_fab = dc_info['dv_switches'][dvs] break break dvs_params['name'] = dv_switch_fab['dv_switch_name'] dvs_params['dvportgroup_name'] = dv_switch_fab['dv_port_group_fab'][ 'dv_portgroup_name'] dvs_params['dvportgroup_num_ports'] = dv_switch_fab['dv_port_group_fab'][ 'number_of_ports'] dvs_params['dvportgroup_uplink'] = dv_switch_fab['dv_port_group_fab'][ 'uplink'] dvs_params['datacenter_mtu'] = get_vcenter_datacenter_mtu(vcenter_info) dvs_params['vcenter_server'] = vcenter_info['server'] dvs_params['vcenter_username'] = vcenter_info['username'] dvs_params['vcenter_password'] = vcenter_info['password'] dvs_params['cluster_name'] = esxi_info['cluster'] dvs_params['datacenter_name'] = esxi_info['datacenter'] dvs_params['esxi_info'] = esxi_info dvs_params['host_list'] = host_list dvs_fab(dvs_params)
def provision_vcenter(vcenter_info, esxi_info): apt_install(['contrail-vmware-utils']) vcenter_params = {} vcenter_params['server'] = vcenter_info['server'] vcenter_params['username'] = vcenter_info['username'] vcenter_params['password'] = vcenter_info['password'] vcenter_params['datacenter_name'] = vcenter_info['datacenter'] vcenter_params['cluster_name'] = vcenter_info['cluster'] vcenter_params['dvswitch_name'] = vcenter_info['dv_switch']['dv_switch_name'] vcenter_params['dvportgroup_name'] = vcenter_info['dv_port_group']['dv_portgroup_name'] vcenter_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group']['number_of_ports'] hosts = [] vms = [] for host in esxi_info.keys(): esxi_data = esxi_info[host] data = esxi_data['esxi'] esx_list=[data['esx_ip'],data['esx_username'],data['esx_password'],data['esx_ssl_thumbprint']] hosts.append(esx_list) modified_vm_name = esxi_data['esx_vm_name']+"-"+vcenter_info['datacenter']+"-"+_get_var(esxi_data['contrailvm_ip']) vms.append(modified_vm_name) vcenter_params['hosts'] = hosts vcenter_params['vms'] = vms Vcenter(vcenter_params)
def provision_dvs_fab(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) dvs_params = {} for dc in vcenter_info['datacenters']: dc_info = vcenter_info['datacenters'][dc] for dvs in dc_info['dv_switches']: if dvs == 'dv_switch_fab': dv_switch_fab = dc_info['dv_switches'][dvs] break break dvs_params['name'] = dv_switch_fab['dv_switch_name'] dvs_params['dvportgroup_name'] = dv_switch_fab['dv_port_group_fab']['dv_portgroup_name'] dvs_params['dvportgroup_num_ports'] = dv_switch_fab['dv_port_group_fab']['number_of_ports'] dvs_params['dvportgroup_uplink'] = dv_switch_fab['dv_port_group_fab']['uplink'] dvs_params['datacenter_mtu'] = get_vcenter_datacenter_mtu(vcenter_info) dvs_params['vcenter_server'] = vcenter_info['server'] dvs_params['vcenter_username'] = vcenter_info['username'] dvs_params['vcenter_password'] = vcenter_info['password'] dvs_params['cluster_name'] = esxi_info['cluster'] dvs_params['datacenter_name'] = esxi_info['datacenter'] dvs_params['esxi_info'] = esxi_info dvs_params['host_list'] = host_list dvs_fab(dvs_params)
def provision_vcenter(vcenter_info, esxi_info): apt_install(['contrail-vmware-utils']) vcenter_params = {} vcenter_params['server'] = vcenter_info['server'] vcenter_params['username'] = vcenter_info['username'] vcenter_params['password'] = vcenter_info['password'] vcenter_params['datacenter_name'] = vcenter_info['datacenter'] vcenter_params['cluster_name'] = vcenter_info['cluster'] vcenter_params['dvswitch_name'] = vcenter_info['dv_switch']['dv_switch_name'] vcenter_params['dvportgroup_name'] = vcenter_info['dv_port_group']['dv_portgroup_name'] vcenter_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group']['number_of_ports'] hosts = [] vms = [] for host in esxi_info.keys(): esxi_data = esxi_info[host] data = esxi_data['esxi'] esx_list=[data['esx_ip'],data['esx_username'],data['esx_password'],data['esx_ssl_thumbprint']] hosts.append(esx_list) modified_vm_name = esxi_data['esx_vm_name']+"-"+vcenter_info['datacenter']+"-"+esxi_data['contrailvm_ip'] vms.append(modified_vm_name) vcenter_params['hosts'] = hosts vcenter_params['vms'] = vms Vcenter(vcenter_params)
def provision_vcenter(vcenter_info, hosts, clusters, vms): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) vcenter_params = {} vcenter_params['server'] = vcenter_info['server'] vcenter_params['username'] = vcenter_info['username'] vcenter_params['password'] = vcenter_info['password'] vcenter_params['datacenter_name'] = vcenter_info['datacenter'] vcenter_params['datacenter_mtu'] = vcenter_info['datacenter_mtu'] vcenter_params['cluster_name'] = vcenter_info['cluster'] vcenter_params['dvswitch_name'] = vcenter_info['dv_switch'][ 'dv_switch_name'] if 'dv_switch_version' in vcenter_info['dv_switch']: vcenter_params['dvswitch_version'] = vcenter_info['dv_switch'][ 'dv_switch_version'] else: vcenter_params['dvswitch_version'] = None vcenter_params['dvportgroup_name'] = vcenter_info['dv_port_group'][ 'dv_portgroup_name'] vcenter_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group'][ 'number_of_ports'] vcenter_params['hosts'] = hosts vcenter_params['vms'] = vms vcenter_params['clusters'] = clusters Vcenter(vcenter_params)
def install_storage_compute_node(*args): """Installs storage pkgs in one or list of nodes. USAGE:fab install_compute_storage_node:[email protected],[email protected]""" for host_string in args: with settings(host_string=host_string): pkg = ['contrail-storage'] if detect_ostype() == 'Ubuntu': apt_install(pkg) else: yum_install(pkg)
def provision_vcenter_features(vcenter_info, esxi_info, host_list): apt_install(['contrail-vmware-utils']) vcenter_params = {} vcenter_params['vcenter_server'] = vcenter_info['server'] vcenter_params['vcenter_username'] = vcenter_info['username'] vcenter_params['vcenter_password'] = vcenter_info['password'] vcenter_params['cluster_name'] = vcenter_info['cluster'] vcenter_params['datacenter_name'] = vcenter_info['datacenter'] vcenter_params['esxi_info'] = esxi_info vcenter_params['host_list'] = host_list vcenter_fab(vcenter_params)
def provision_pci_fab(vcenter_info, esxi_info, host_list): apt_install(['contrail-vmware-utils']) pci_params = {} pci_params['vcenter_server'] = vcenter_info['server'] pci_params['vcenter_username'] = vcenter_info['username'] pci_params['vcenter_password'] = vcenter_info['password'] pci_params['cluster_name'] = vcenter_info['cluster'] pci_params['datacenter_name'] = vcenter_info['datacenter'] pci_params['esxi_info'] = esxi_info pci_params['host_list'] = host_list pci_fab(pci_params)
def provision_pci_fab(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) pci_params = {} pci_params['vcenter_server'] = vcenter_info['server'] pci_params['vcenter_username'] = vcenter_info['username'] pci_params['vcenter_password'] = vcenter_info['password'] pci_params['cluster_name'] = vcenter_info['cluster'] pci_params['datacenter_name'] = vcenter_info['datacenter'] pci_params['esxi_info'] = esxi_info pci_params['host_list'] = host_list pci_fab(pci_params)
def provision_vcenter_features(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) vcenter_params = {} vcenter_params["vcenter_server"] = vcenter_info["server"] vcenter_params["vcenter_username"] = vcenter_info["username"] vcenter_params["vcenter_password"] = vcenter_info["password"] vcenter_params["cluster_name"] = vcenter_info["cluster"] vcenter_params["datacenter_name"] = vcenter_info["datacenter"] vcenter_params["esxi_info"] = esxi_info vcenter_params["host_list"] = host_list vcenter_fab(vcenter_params)
def provision_pci_fab(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) pci_params = {} pci_params["vcenter_server"] = vcenter_info["server"] pci_params["vcenter_username"] = vcenter_info["username"] pci_params["vcenter_password"] = vcenter_info["password"] pci_params["cluster_name"] = vcenter_info["cluster"] pci_params["datacenter_name"] = vcenter_info["datacenter"] pci_params["esxi_info"] = esxi_info pci_params["host_list"] = host_list pci_fab(pci_params)
def provision_vcenter_features(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) vcenter_params = {} vcenter_params['vcenter_server'] = vcenter_info['server'] vcenter_params['vcenter_username'] = vcenter_info['username'] vcenter_params['vcenter_password'] = vcenter_info['password'] vcenter_params['cluster_name'] = vcenter_info['cluster'] vcenter_params['datacenter_name'] = vcenter_info['datacenter'] vcenter_params['esxi_info'] = esxi_info vcenter_params['host_list'] = host_list vcenter_fab(vcenter_params)
def provision_vcenter(vcenter_info, datacenter, datacenter_mtu, dv_switches, clusters, hosts, vms): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) vcenter_params = {} vcenter_params['server'] = vcenter_info['server'] vcenter_params['username'] = vcenter_info['username'] vcenter_params['password'] = vcenter_info['password'] vcenter_params['datacenter_name'] = datacenter vcenter_params['datacenter_mtu'] = datacenter_mtu vcenter_params['dv_switches'] = dv_switches vcenter_params['clusters'] = clusters vcenter_params['hosts'] = hosts vcenter_params['vms'] = vms Vcenter(vcenter_params)
def upgrade_kernel_node(*args): """upgrades the kernel image in given nodes.""" for host_string in args: with settings(host_string=host_string): dist, version, extra = get_linux_distro() print "upgrading apparmor before upgrading kernel" if version == '12.04': apt_install(["apparmor"]) print "Installing 3.13.0-34 kernel headers" apt_install(["linux-headers-3.13.0-34"]) apt_install(["linux-headers-3.13.0-34-generic"]) print "Upgrading the kernel to 3.13.0-34" apt_install(["linux-image-3.13.0-34-generic"]) elif version == '14.04': print "Upgrading the kernel to 3.13.0-35" apt_install(["linux-image-3.13.0-35-generic", "linux-image-extra-3.13.0-35-generic"])
def provision_vcenter(vcenter_info, hosts, clusters, vms): apt_install(['contrail-vmware-utils']) vcenter_params = {} vcenter_params['server'] = vcenter_info['server'] vcenter_params['username'] = vcenter_info['username'] vcenter_params['password'] = vcenter_info['password'] vcenter_params['datacenter_name'] = vcenter_info['datacenter'] vcenter_params['cluster_name'] = vcenter_info['cluster'] vcenter_params['dvswitch_name'] = vcenter_info['dv_switch']['dv_switch_name'] vcenter_params['dvportgroup_name'] = vcenter_info['dv_port_group']['dv_portgroup_name'] vcenter_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group']['number_of_ports'] vcenter_params['hosts'] = hosts vcenter_params['vms'] = vms vcenter_params['clusters'] = clusters Vcenter(vcenter_params)
def provision_sr_iov_fab(vcenter_info, esxi_info, host_list): apt_install(['contrail-vmware-utils']) sr_iov_params = {} sr_iov_params['dvs_name'] = vcenter_info['dv_switch_sr_iov']['dv_switch_name'] sr_iov_params['dvportgroup_name'] = vcenter_info['dv_port_group_sr_iov']['dv_portgroup_name'] sr_iov_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group_sr_iov']['number_of_ports'] sr_iov_params['vcenter_server'] = vcenter_info['server'] sr_iov_params['vcenter_username'] = vcenter_info['username'] sr_iov_params['vcenter_password'] = vcenter_info['password'] sr_iov_params['cluster_name'] = vcenter_info['cluster'] sr_iov_params['datacenter_name'] = vcenter_info['datacenter'] sr_iov_params['esxi_info'] = esxi_info sr_iov_params['host_list'] = host_list sr_iov_fab(sr_iov_params)
def provision_vcenter(vcenter_info, hosts, clusters, vms, update_dvs): apt_install(["contrail-vmware-utils"]) vcenter_params = {} vcenter_params["server"] = vcenter_info["server"] vcenter_params["username"] = vcenter_info["username"] vcenter_params["password"] = vcenter_info["password"] vcenter_params["datacenter_name"] = vcenter_info["datacenter"] vcenter_params["cluster_name"] = vcenter_info["cluster"] vcenter_params["dvswitch_name"] = vcenter_info["dv_switch"]["dv_switch_name"] vcenter_params["dvportgroup_name"] = vcenter_info["dv_port_group"]["dv_portgroup_name"] vcenter_params["dvportgroup_num_ports"] = vcenter_info["dv_port_group"]["number_of_ports"] vcenter_params["hosts"] = hosts vcenter_params["vms"] = vms vcenter_params["clusters"] = clusters vcenter_params["update_dvs"] = update_dvs Vcenter(vcenter_params)
def provision_dvs_fab(vcenter_info, esxi_info, host_list): apt_install(['contrail-vmware-utils']) dvs_params = {} dvs_params['name'] = vcenter_info['dv_switch_fab']['dv_switch_name'] dvs_params['dvportgroup_name'] = vcenter_info['dv_port_group_fab']['dv_portgroup_name'] dvs_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group_fab']['number_of_ports'] dvs_params['dvportgroup_uplink'] = vcenter_info['dv_port_group_fab']['uplink'] dvs_params['vcenter_server'] = vcenter_info['server'] dvs_params['vcenter_username'] = vcenter_info['username'] dvs_params['vcenter_password'] = vcenter_info['password'] dvs_params['cluster_name'] = vcenter_info['cluster'] dvs_params['datacenter_name'] = vcenter_info['datacenter'] dvs_params['esxi_info'] = esxi_info dvs_params['host_list'] = host_list dvs_fab(dvs_params)
def provision_dvs_fab(vcenter_info, esxi_info, host_list): apt_install(["contrail-vmware-utils"]) dvs_params = {} dvs_params["name"] = vcenter_info["dv_switch_fab"]["dv_switch_name"] dvs_params["dvportgroup_name"] = vcenter_info["dv_port_group_fab"]["dv_portgroup_name"] dvs_params["dvportgroup_num_ports"] = vcenter_info["dv_port_group_fab"]["number_of_ports"] dvs_params["dvportgroup_uplink"] = vcenter_info["dv_port_group_fab"]["uplink"] dvs_params["vcenter_server"] = vcenter_info["server"] dvs_params["vcenter_username"] = vcenter_info["username"] dvs_params["vcenter_password"] = vcenter_info["password"] dvs_params["cluster_name"] = vcenter_info["cluster"] dvs_params["datacenter_name"] = vcenter_info["datacenter"] dvs_params["esxi_info"] = esxi_info dvs_params["host_list"] = host_list dvs_fab(dvs_params)
def provision_vcenter(vcenter_info, hosts, clusters, vms): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) vcenter_params = {} vcenter_params['server'] = vcenter_info['server'] vcenter_params['username'] = vcenter_info['username'] vcenter_params['password'] = vcenter_info['password'] vcenter_params['datacenter_name'] = vcenter_info['datacenter'] vcenter_params['datacenter_mtu'] = vcenter_info['datacenter_mtu'] vcenter_params['cluster_name'] = vcenter_info['cluster'] vcenter_params['dvswitch_name'] = vcenter_info['dv_switch']['dv_switch_name'] vcenter_params['dvportgroup_name'] = vcenter_info['dv_port_group']['dv_portgroup_name'] vcenter_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group']['number_of_ports'] vcenter_params['hosts'] = hosts vcenter_params['vms'] = vms vcenter_params['clusters'] = clusters Vcenter(vcenter_params)
def provision_sr_iov_fab(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) sr_iov_params = {} sr_iov_params["dvs_name"] = vcenter_info["dv_switch_sr_iov"]["dv_switch_name"] sr_iov_params["dvportgroup_name"] = vcenter_info["dv_port_group_sr_iov"]["dv_portgroup_name"] sr_iov_params["dvportgroup_num_ports"] = vcenter_info["dv_port_group_sr_iov"]["number_of_ports"] sr_iov_params["vcenter_server"] = vcenter_info["server"] sr_iov_params["vcenter_username"] = vcenter_info["username"] sr_iov_params["vcenter_password"] = vcenter_info["password"] sr_iov_params["cluster_name"] = vcenter_info["cluster"] sr_iov_params["datacenter_name"] = vcenter_info["datacenter"] sr_iov_params["datacenter_mtu"] = vcenter_info["datacenter_mtu"] sr_iov_params["esxi_info"] = esxi_info sr_iov_params["host_list"] = host_list sr_iov_fab(sr_iov_params)
def provision_sr_iov_fab(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) sr_iov_params = {} sr_iov_params['dvs_name'] = vcenter_info['dv_switch_sr_iov']['dv_switch_name'] sr_iov_params['dvportgroup_name'] = vcenter_info['dv_port_group_sr_iov']['dv_portgroup_name'] sr_iov_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group_sr_iov']['number_of_ports'] sr_iov_params['vcenter_server'] = vcenter_info['server'] sr_iov_params['vcenter_username'] = vcenter_info['username'] sr_iov_params['vcenter_password'] = vcenter_info['password'] sr_iov_params['cluster_name'] = vcenter_info['cluster'] sr_iov_params['datacenter_name'] = vcenter_info['datacenter'] sr_iov_params['datacenter_mtu'] = vcenter_info['datacenter_mtu'] sr_iov_params['esxi_info'] = esxi_info sr_iov_params['host_list'] = host_list sr_iov_fab(sr_iov_params)
def provision_dvs_fab(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) dvs_params = {} dvs_params['name'] = vcenter_info['dv_switch_fab']['dv_switch_name'] dvs_params['dvportgroup_name'] = vcenter_info['dv_port_group_fab']['dv_portgroup_name'] dvs_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group_fab']['number_of_ports'] dvs_params['dvportgroup_uplink'] = vcenter_info['dv_port_group_fab']['uplink'] dvs_params['datacenter_mtu'] = vcenter_info['datacenter_mtu'] dvs_params['vcenter_server'] = vcenter_info['server'] dvs_params['vcenter_username'] = vcenter_info['username'] dvs_params['vcenter_password'] = vcenter_info['password'] dvs_params['cluster_name'] = vcenter_info['cluster'] dvs_params['datacenter_name'] = vcenter_info['datacenter'] dvs_params['esxi_info'] = esxi_info dvs_params['host_list'] = host_list dvs_fab(dvs_params)
def provision_dvs_fab(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) dvs_params = {} dvs_params["name"] = vcenter_info["dv_switch_fab"]["dv_switch_name"] dvs_params["dvportgroup_name"] = vcenter_info["dv_port_group_fab"]["dv_portgroup_name"] dvs_params["dvportgroup_num_ports"] = vcenter_info["dv_port_group_fab"]["number_of_ports"] dvs_params["dvportgroup_uplink"] = vcenter_info["dv_port_group_fab"]["uplink"] dvs_params["datacenter_mtu"] = vcenter_info["datacenter_mtu"] dvs_params["vcenter_server"] = vcenter_info["server"] dvs_params["vcenter_username"] = vcenter_info["username"] dvs_params["vcenter_password"] = vcenter_info["password"] dvs_params["cluster_name"] = vcenter_info["cluster"] dvs_params["datacenter_name"] = vcenter_info["datacenter"] dvs_params["esxi_info"] = esxi_info dvs_params["host_list"] = host_list dvs_fab(dvs_params)
def provision_vcenter(vcenter_info, esxi_info): apt_install(['contrail-vmware-utils']) vcenter_params = {} vcenter_params['server'] = vcenter_info['server'] vcenter_params['username'] = vcenter_info['username'] vcenter_params['password'] = vcenter_info['password'] vcenter_params['datacenter_name'] = vcenter_info['datacenter'] vcenter_params['cluster_name'] = vcenter_info['cluster'] vcenter_params['dvswitch_name'] = vcenter_info['dv_switch']['dv_switch_name'] vcenter_params['dvportgroup_name'] = vcenter_info['dv_port_group']['dv_portgroup_name'] vcenter_params['dvportgroup_num_ports'] = vcenter_info['dv_port_group']['number_of_ports'] hosts = [] vms = [] for host in esxi_info.keys(): esxi_data = esxi_info[host] vm_name = "ContrailVM" ssh_session = ssh(esxi_data['ip'], esxi_data['username'], esxi_data['password']) get_ssl_thumbprint = ("openssl x509 -in /etc/vmware/ssl/rui.crt -fingerprint -sha1 -noout") out, err = execute_cmd_out(ssh_session, get_ssl_thumbprint) out = out.split() out = out[1].split('=') ssl_thumbprint = out[1] print 'ssl thumbprint of the ESXi host %s is %s' % (esxi_data['ip'], ssl_thumbprint) esx_list=esxi_data['ip'],esxi_data['username'],esxi_data['password'],ssl_thumbprint hosts.append(esx_list) modified_vm_name = vm_name+"-"+vcenter_info['datacenter']+"-"+esxi_data['ip'] vms.append(modified_vm_name) vcenter_params['hosts'] = hosts vcenter_params['vms'] = vms Vcenter(vcenter_params)
def provision_sr_iov_fab(vcenter_info, esxi_info, host_list): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) sr_iov_params = {} sr_iov_params['dvs_name'] = vcenter_info['dv_switch_sr_iov'][ 'dv_switch_name'] sr_iov_params['dvportgroup_name'] = vcenter_info['dv_port_group_sr_iov'][ 'dv_portgroup_name'] sr_iov_params['dvportgroup_num_ports'] = vcenter_info[ 'dv_port_group_sr_iov']['number_of_ports'] sr_iov_params['vcenter_server'] = vcenter_info['server'] sr_iov_params['vcenter_username'] = vcenter_info['username'] sr_iov_params['vcenter_password'] = vcenter_info['password'] sr_iov_params['cluster_name'] = vcenter_info['cluster'] sr_iov_params['datacenter_name'] = vcenter_info['datacenter'] sr_iov_params['datacenter_mtu'] = vcenter_info['datacenter_mtu'] sr_iov_params['esxi_info'] = esxi_info sr_iov_params['host_list'] = host_list sr_iov_fab(sr_iov_params)
def provision_vcenter(vcenter_info, hosts, clusters, vms): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) vcenter_params = {} vcenter_params["server"] = vcenter_info["server"] vcenter_params["username"] = vcenter_info["username"] vcenter_params["password"] = vcenter_info["password"] vcenter_params["datacenter_name"] = vcenter_info["datacenter"] vcenter_params["datacenter_mtu"] = vcenter_info["datacenter_mtu"] vcenter_params["cluster_name"] = vcenter_info["cluster"] vcenter_params["dvswitch_name"] = vcenter_info["dv_switch"]["dv_switch_name"] if "dv_switch_version" in vcenter_info["dv_switch"]: vcenter_params["dvswitch_version"] = vcenter_info["dv_switch"]["dv_switch_version"] else: vcenter_params["dvswitch_version"] = None vcenter_params["dvportgroup_name"] = vcenter_info["dv_port_group"]["dv_portgroup_name"] vcenter_params["dvportgroup_num_ports"] = vcenter_info["dv_port_group"]["number_of_ports"] vcenter_params["hosts"] = hosts vcenter_params["vms"] = vms vcenter_params["clusters"] = clusters Vcenter(vcenter_params)
def upgrade_kernel_node(*args): """upgrades the kernel image in given nodes.""" for host_string in args: with settings(host_string=host_string): execute('create_install_repo_node', host_string) dist, version, extra = get_linux_distro() if version == '12.04': print "upgrading apparmor before upgrading kernel" apt_install(["apparmor"]) print "Installing 3.13.0-34 kernel headers" apt_install(["linux-headers-3.13.0-34"]) apt_install(["linux-headers-3.13.0-34-generic"]) print "Upgrading the kernel to 3.13.0-34" apt_install(["linux-image-3.13.0-34-generic"]) default_grub='Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-34-generic' execute('set_grub_default_node', host_string, value=default_grub) elif version == '14.04': print "Installing 3.13.0-85 kernel headers" apt_install(["linux-headers-3.13.0-85", "linux-headers-3.13.0-85-generic"]) print "Upgrading the kernel to 3.13.0-85" apt_install(["linux-image-3.13.0-85-generic", "linux-image-extra-3.13.0-85-generic"]) default_grub='Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-85-generic' execute('set_grub_default_node', host_string, value=default_grub) elif 'red hat' in dist.lower() and version.startswith('7'): print "Upgrading RHEL kernel to version 3.10.0-327.10.1" pkg_install(["kernel-3.10.0-327.10.1.el7.x86_64", "kernel-tools-3.10.0-327.10.1.el7.x86_64", "kernel-tools-libs-3.10.0-327.10.1.el7.x86_64", "kernel-headers-3.10.0-327.10.1.el7.x86_64"], disablerepo=False) default_grub='Red Hat Enterprise Linux Server (3.10.0-327.10.1.el7.x86_64) 7.2 (Maipo)' execute('set_grub_default_node', host_string, value=default_grub) elif 'centos linux' in dist.lower() and version.startswith('7'): print "Upgrading Centos kernel to version 3.10.0-327.10.1" pkg_install(["kernel-3.10.0-327.10.1.el7.x86_64", "kernel-tools-3.10.0-327.10.1.el7.x86_64", "kernel-tools-libs-3.10.0-327.10.1.el7.x86_64", "kernel-headers-3.10.0-327.10.1.el7.x86_64"], disablerepo=False) default_grub='CentOS Linux (3.10.0-327.10.1.el7.x86_64) 7 (Core)' execute('set_grub_default_node', host_string, value=default_grub)
def upgrade_kernel_node(*args): """upgrades the kernel image in given nodes.""" for host_string in args: with settings(host_string=host_string): dist, version, extra = get_linux_distro() print "upgrading apparmor before upgrading kernel" if version == '12.04': apt_install(["apparmor"]) print "Installing 3.13.0-34 kernel headers" apt_install(["linux-headers-3.13.0-34"]) apt_install(["linux-headers-3.13.0-34-generic"]) print "Upgrading the kernel to 3.13.0-34" apt_install(["linux-image-3.13.0-34-generic"]) elif version == '14.04': print "Installing 3.13.0-40 kernel headers" apt_install([ "linux-headers-3.13.0-40", "linux-headers-3.13.0-40-generic" ]) print "Upgrading the kernel to 3.13.0-40" apt_install([ "linux-image-3.13.0-40-generic", "linux-image-extra-3.13.0-40-generic" ])
def deprovision_vcenter(vcenter_info): apt_install(["contrail-vmware-utils"]) cleanup_vcenter(vcenter_info)
def upgrade_biosdevname_node(*args): """upgrades the biosdevname in given nodes.""" for host_string in args: with settings(host_string=host_string): print "upgrading biosdevname package" apt_install(["biosdevname"])
def zookeeper_rolling_restart(): zoo_cfg = "/etc/zookeeper/conf/zoo.cfg" cfgm_nodes = copy.deepcopy(env.roledefs['cfgm']) database_nodes = copy.deepcopy(env.roledefs['database']) if (len(database_nodes) % 2) != 1: print "Recommended to run odd number of zookeeper(database) nodes." print "Add a new node to the existing clusters testbed,py and install contrail-install-packages in it.\n\ Installing/Provisioning will be done as part of Upgrade" exit(0) if cfgm_nodes == database_nodes: print "No need for rolling restart." old_nodes = list(set(cfgm_nodes).difference(set(database_nodes))) new_nodes = list(set(database_nodes).difference(set(cfgm_nodes))) for new_node in new_nodes: zk_index = (database_nodes.index(new_node) + len(cfgm_nodes) + 1) with settings(host_string=new_node, password=env.passwords[new_node]): pdist = detect_ostype() # Install zookeeper in the new node. execute('create_install_repo_node', new_node) if pdist in ['centos']: yum_install(['contrail-openstack-database']) elif pdist in ['Ubuntu']: apt_install(['contrail-openstack-database']) run("ln -sf /bin/true /sbin/chkconfig") run("chkconfig zookeeper on") # Fix zookeeper configs run("sudo sed 's/^#log4j.appender.ROLLINGFILE.MaxBackupIndex=/log4j.appender.ROLLINGFILE.MaxBackupIndex=/g' /etc/zookeeper/conf/log4j.properties > log4j.properties.new") run("sudo mv log4j.properties.new /etc/zookeeper/conf/log4j.properties") if pdist in ['centos']: run('echo export ZOO_LOG4J_PROP="INFO,CONSOLE,ROLLINGFILE" >> /usr/lib/zookeeper/bin/zkEnv.sh') if pdist in ['Ubuntu']: run('echo ZOO_LOG4J_PROP="INFO,CONSOLE,ROLLINGFILE" >> /etc/zookeeper/conf/environment') #put cluster-unique zookeeper's instance id in myid run('sudo echo "%s" > /var/lib/zookeeper/myid' % (zk_index)) # Add new nodes to existing zookeeper quorum with settings(host_string=cfgm_nodes[0], password=env.passwords[cfgm_nodes[0]]): for new_node in new_nodes: zk_index = (database_nodes.index(new_node) + len(cfgm_nodes) + 1) run('echo "server.%d=%s:2888:3888" >> %s' % (zk_index, hstr_to_ip(new_node), zoo_cfg)) tmp_dir= tempfile.mkdtemp() get(zoo_cfg, tmp_dir) # Restart zookeeper in all nodes to make new nodes join zookeeper quorum for zookeeper_node in cfgm_nodes + new_nodes: with settings(host_string=zookeeper_node, password=env.passwords[zookeeper_node]): put(tmp_dir+'/zoo.cfg', zoo_cfg) # Start Zookeeper in new database node run("service zookeeper restart") print "Waiting 5 seconds for the new nodes in the zookeeper quorum to be synced." sleep(5) # Shutdown onld nodes one by one and also make sure leader/follower election is complete. # after each shut downs zoo_nodes = cfgm_nodes + database_nodes for old_node in old_nodes: zoo_nodes.remove(old_node) with settings(host_string=old_node, password=env.passwords[old_node]): # Stop Zookeeper in old cfgm node run("service zookeeper stop") retries = 3 while retries: zookeeper_status = verfiy_zookeeper(*zoo_nodes) if 'leader' in zookeeper_status.values() and 'standalone' not in zookeeper_status.values(): print zookeeper_status break else: retries -= 1 if retries: continue print "Zookeepr leader/follower election has problems. Fix it and retry upgrade" print zookeeper_status exit(1) # Correct the server id in zoo.cfg for the new nodes in the zookeeper quorum with settings(host_string=database_nodes[0], password=env.passwords[database_nodes[0]]): run("sed -i '/^server.*3888/d' %s" % zoo_cfg) for zookeeper_node in database_nodes: zk_index = (database_nodes.index(zookeeper_node) + 1) run('echo "server.%d=%s:2888:3888" >> %s' % (zk_index, hstr_to_ip(zookeeper_node), zoo_cfg)) tmp_dir= tempfile.mkdtemp() get(zoo_cfg, tmp_dir) # Correct the myid in myid file for the new nodes in the zookeeper quorum for zookeeper_node in database_nodes: zk_index = (database_nodes.index(zookeeper_node) + 1) with settings(host_string=zookeeper_node, password=env.passwords[zookeeper_node]): #put cluster-unique zookeeper's instance id in myid run('sudo echo "%s" > /var/lib/zookeeper/myid' % (zk_index)) run("service zookeeper stop") # Restart all the zookeeper nodes in the new quorum for zookeeper_node in database_nodes: with settings(host_string=zookeeper_node, password=env.passwords[zookeeper_node]): put(tmp_dir+'/zoo.cfg', zoo_cfg) run("service zookeeper restart") # Mkae sure leader/folower election is complete with settings(host_string=zookeeper_node, password=env.passwords[zookeeper_node]): retries = 3 while retries: zookeeper_status = verfiy_zookeeper(*database_nodes) if 'leader' in zookeeper_status.values() and 'standalone' not in zookeeper_status.values(): print zookeeper_status break else: retries -= 1 if retries: continue print "Zookeepr leader/follower election has problems. Fix it and retry upgrade" print zookeeper_status exit(1)
def deprovision_vcenter(vcenter_info): pkgs = get_setup_vcenter_pkg() apt_install(pkgs) cleanup_vcenter(vcenter_info)
def upgrade_kernel_node(*args): """upgrades the kernel image in given nodes.""" for host_string in args: with settings(host_string=host_string): execute('create_install_repo_node', host_string) dist, version, extra = get_linux_distro() if version == '12.04': print "upgrading apparmor before upgrading kernel" apt_install(["apparmor"]) print "Installing 3.13.0-34 kernel headers" apt_install(["linux-headers-3.13.0-34"]) apt_install(["linux-headers-3.13.0-34-generic"]) print "Upgrading the kernel to 3.13.0-34" apt_install(["linux-image-3.13.0-34-generic"]) default_grub='Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-34-generic' execute('set_grub_default_node', host_string, value=default_grub) elif version == '14.04': print "Installing 3.13.0-83 kernel headers" apt_install(["linux-headers-3.13.0-83", "linux-headers-3.13.0-83-generic"]) print "Upgrading the kernel to 3.13.0-83" apt_install(["linux-image-3.13.0-83-generic", "linux-image-extra-3.13.0-83-generic"]) default_grub='Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-83-generic' execute('set_grub_default_node', host_string, value=default_grub) elif 'red hat' in dist.lower() and version == '7.0': print "Upgrading kernel to version 3.10.0-229" pkg_install(["kernel-3.10.0-229.el7.x86_64", "kernel-tools-3.10.0-229.el7.x86_64", "kernel-tools-libs-3.10.0-229.el7.x86_64", "kernel-headers-3.10.0-229.el7.x86_64"], disablerepo=False)
def upgrade_kernel_node(*args, **kwargs): """upgrades the kernel image in given nodes.""" for host_string in args: with settings(host_string=host_string): execute('create_install_repo_node', host_string) dist, version, extra = get_linux_distro() if version == '12.04': print "upgrading apparmor before upgrading kernel" apt_install(["apparmor"]) print "Installing 3.13.0-34 kernel headers" apt_install(["linux-headers-3.13.0-34"]) apt_install(["linux-headers-3.13.0-34-generic"]) print "Upgrading the kernel to 3.13.0-34" apt_install(["linux-image-3.13.0-34-generic"]) default_grub = 'Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-34-generic' execute('set_grub_default_node', host_string, value=default_grub) elif version == '14.04': if 'version' in kwargs: kernel_ver = kwargs.get('version') else: kernel_ver = "3.13.0-106" print "Installing " + kernel_ver + " kernel headers" apt_install([ "linux-headers-" + kernel_ver, "linux-headers-" + kernel_ver + "-generic" ]) print "Upgrading the kernel to " + kernel_ver apt_install([ "linux-image-" + kernel_ver + "-generic", "linux-image-extra-" + kernel_ver + "-generic" ]) default_grub = 'Advanced options for Ubuntu>Ubuntu, with Linux ' + kernel_ver + '-generic' execute('set_grub_default_node', host_string, value=default_grub) elif 'red hat' in dist.lower() and version.startswith('7'): print "Upgrading RHEL kernel to version 3.10.0-327.10.1" pkg_install([ "kernel-3.10.0-327.10.1.el7.x86_64", "kernel-tools-3.10.0-327.10.1.el7.x86_64", "kernel-tools-libs-3.10.0-327.10.1.el7.x86_64", "kernel-headers-3.10.0-327.10.1.el7.x86_64" ], disablerepo=False) default_grub = 'Red Hat Enterprise Linux Server (3.10.0-327.10.1.el7.x86_64) 7.2 (Maipo)' execute('set_grub_default_node', host_string, value=default_grub) elif 'centos linux' in dist.lower() and version.startswith('7'): print "Upgrading Centos kernel to version 3.10.0-327.10.1" pkg_install([ "kernel-3.10.0-327.10.1.el7.x86_64", "kernel-tools-3.10.0-327.10.1.el7.x86_64", "kernel-tools-libs-3.10.0-327.10.1.el7.x86_64", "kernel-headers-3.10.0-327.10.1.el7.x86_64" ], disablerepo=False) default_grub = 'CentOS Linux (3.10.0-327.10.1.el7.x86_64) 7 (Core)' execute('set_grub_default_node', host_string, value=default_grub)
def zookeeper_rolling_restart(): zoo_cfg = "/etc/zookeeper/conf/zoo.cfg" cfgm_nodes = copy.deepcopy(env.roledefs['cfgm']) database_nodes = copy.deepcopy(env.roledefs['database']) if (len(database_nodes) % 2) != 1: print "Recommended to run odd number of zookeeper(database) nodes." print "Add a new node to the existing clusters testbed,py and install contrail-install-packages in it.\n\ Installing/Provisioning will be done as part of Upgrade" exit(0) if cfgm_nodes == database_nodes: print "No need for rolling restart." old_nodes = list(set(cfgm_nodes).difference(set(database_nodes))) new_nodes = list(set(database_nodes).difference(set(cfgm_nodes))) for new_node in new_nodes: zk_index = (database_nodes.index(new_node) + len(cfgm_nodes) + 1) with settings(host_string=new_node, password=env.passwords[new_node]): pdist = detect_ostype() # Install zookeeper in the new node. execute('create_install_repo_node', new_node) if pdist in ['centos']: yum_install(['contrail-openstack-database']) elif pdist in ['Ubuntu']: apt_install(['contrail-openstack-database']) run("ln -sf /bin/true /sbin/chkconfig") run("chkconfig zookeeper on") # Fix zookeeper configs run("sudo sed 's/^#log4j.appender.ROLLINGFILE.MaxBackupIndex=/log4j.appender.ROLLINGFILE.MaxBackupIndex=/g' /etc/zookeeper/conf/log4j.properties > log4j.properties.new" ) run("sudo mv log4j.properties.new /etc/zookeeper/conf/log4j.properties" ) if pdist in ['centos']: run('echo export ZOO_LOG4J_PROP="INFO,CONSOLE,ROLLINGFILE" >> /usr/lib/zookeeper/bin/zkEnv.sh' ) if pdist in ['Ubuntu']: run('echo ZOO_LOG4J_PROP="INFO,CONSOLE,ROLLINGFILE" >> /etc/zookeeper/conf/environment' ) #put cluster-unique zookeeper's instance id in myid run('sudo echo "%s" > /var/lib/zookeeper/myid' % (zk_index)) # Add new nodes to existing zookeeper quorum with settings(host_string=cfgm_nodes[0], password=env.passwords[cfgm_nodes[0]]): for new_node in new_nodes: zk_index = (database_nodes.index(new_node) + len(cfgm_nodes) + 1) run('echo "server.%d=%s:2888:3888" >> %s' % (zk_index, hstr_to_ip(new_node), zoo_cfg)) tmp_dir = tempfile.mkdtemp() get(zoo_cfg, tmp_dir) # Restart zookeeper in all nodes to make new nodes join zookeeper quorum for zookeeper_node in cfgm_nodes + new_nodes: with settings(host_string=zookeeper_node, password=env.passwords[zookeeper_node]): put(tmp_dir + '/zoo.cfg', zoo_cfg) # Start Zookeeper in new database node run("service zookeeper restart") print "Waiting 5 seconds for the new nodes in the zookeeper quorum to be synced." sleep(5) # Shutdown onld nodes one by one and also make sure leader/follower election is complete. # after each shut downs zoo_nodes = cfgm_nodes + database_nodes for old_node in old_nodes: zoo_nodes.remove(old_node) with settings(host_string=old_node, password=env.passwords[old_node]): # Stop Zookeeper in old cfgm node run("service zookeeper stop") retries = 3 while retries: zookeeper_status = verfiy_zookeeper(*zoo_nodes) if 'leader' in zookeeper_status.values( ) and 'standalone' not in zookeeper_status.values(): print zookeeper_status break else: retries -= 1 if retries: continue print "Zookeepr leader/follower election has problems. Fix it and retry upgrade" print zookeeper_status exit(1) # Correct the server id in zoo.cfg for the new nodes in the zookeeper quorum with settings(host_string=database_nodes[0], password=env.passwords[database_nodes[0]]): run("sed -i '/^server.*3888/d' %s" % zoo_cfg) for zookeeper_node in database_nodes: zk_index = (database_nodes.index(zookeeper_node) + 1) run('echo "server.%d=%s:2888:3888" >> %s' % (zk_index, hstr_to_ip(zookeeper_node), zoo_cfg)) tmp_dir = tempfile.mkdtemp() get(zoo_cfg, tmp_dir) # Correct the myid in myid file for the new nodes in the zookeeper quorum for zookeeper_node in database_nodes: zk_index = (database_nodes.index(zookeeper_node) + 1) with settings(host_string=zookeeper_node, password=env.passwords[zookeeper_node]): #put cluster-unique zookeeper's instance id in myid run('sudo echo "%s" > /var/lib/zookeeper/myid' % (zk_index)) run("service zookeeper stop") # Restart all the zookeeper nodes in the new quorum for zookeeper_node in database_nodes: with settings(host_string=zookeeper_node, password=env.passwords[zookeeper_node]): put(tmp_dir + '/zoo.cfg', zoo_cfg) run("service zookeeper restart") # Mkae sure leader/folower election is complete with settings(host_string=zookeeper_node, password=env.passwords[zookeeper_node]): retries = 3 while retries: zookeeper_status = verfiy_zookeeper(*database_nodes) if 'leader' in zookeeper_status.values( ) and 'standalone' not in zookeeper_status.values(): print zookeeper_status break else: retries -= 1 if retries: continue print "Zookeepr leader/follower election has problems. Fix it and retry upgrade" print zookeeper_status exit(1)
def upgrade_kernel_node(*args): """upgrades the kernel image in given nodes.""" for host_string in args: with settings(host_string=host_string): dist, version, extra = get_linux_distro() if version == '12.04': print "upgrading apparmor before upgrading kernel" apt_install(["apparmor"]) print "Installing 3.13.0-34 kernel headers" apt_install(["linux-headers-3.13.0-34"]) apt_install(["linux-headers-3.13.0-34-generic"]) print "Upgrading the kernel to 3.13.0-34" apt_install(["linux-image-3.13.0-34-generic"]) elif version == '14.04': print "Installing 3.13.0-40 kernel headers" apt_install(["linux-headers-3.13.0-40", "linux-headers-3.13.0-40-generic"]) print "Upgrading the kernel to 3.13.0-40" apt_install(["linux-image-3.13.0-40-generic", "linux-image-extra-3.13.0-40-generic"]) elif 'red hat' in dist.lower() and version == '7.0': print "Upgrading kernel to version 3.10.0-229" pkg_install(["kernel-3.10.0-229.el7.x86_64", "kernel-tools-3.10.0-229.el7.x86_64", "kernel-tools-libs-3.10.0-229.el7.x86_64", "kernel-headers-3.10.0-229.el7.x86_64"], disablerepo=False)