示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
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)
示例#7
0
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 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)
示例#9
0
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)
示例#10
0
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)
示例#11
0
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)
示例#12
0
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)
示例#13
0
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)
示例#14
0
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)
示例#15
0
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)
示例#16
0
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)
示例#17
0
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)
示例#18
0
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"])
示例#19
0
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)
示例#20
0
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)
示例#21
0
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)
示例#23
0
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)
示例#25
0
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)
示例#26
0
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)
示例#27
0
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)
示例#28
0
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)
示例#29
0
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)
示例#30
0
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)
示例#31
0
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)
示例#32
0
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)
示例#33
0
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)
示例#34
0
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)
示例#36
0
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"])
示例#37
0
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)
示例#39
0
def deprovision_vcenter(vcenter_info):
    pkgs = get_setup_vcenter_pkg()
    apt_install(pkgs)
    cleanup_vcenter(vcenter_info)
示例#40
0
def deprovision_vcenter(vcenter_info):
    pkgs = get_setup_vcenter_pkg()
    apt_install(pkgs)
    cleanup_vcenter(vcenter_info)
示例#41
0
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)
示例#42
0
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)
示例#43
0
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)
示例#44
0
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)