Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Нет скина)
  • Нет скина
Collapse

Networks Engineering

  1. Главная
  2. Центры обработки данных и облако
  3. Cisco Intersight
  4. присоединение шаблона vnic ansible к политике подключения к локальной сети

присоединение шаблона vnic ansible к политике подключения к локальной сети

Запланировано Прикреплена Закрыта Перенесена Cisco Intersight
16 Сообщения 0 Posters 0 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • R Не в сети
    R Не в сети
    roxyfoxtrotter
    написал в отредактировано
    #1

    У меня есть следующая политика подключения к локальной сети, и я хочу узнать, как прикрепить к ней шаблон vnic. cisco
    .
    intersight
    .
    intersight_rest_api
    :
    <<
    :
    *
    api_info_fc resource_path
    :
    /
    vnic
    /
    EthIfs query_params
    :
    $filter
    :
    "Name eq '{{ name_of_fc_vnic_0 }}'"
    api_body
    :
    {
    "Name"
    :
    "{{ name_of_fc_vnic_0 }}"
    ,
    "MacAddressType"
    :
    "POOL"
    ,
    "MacPool"
    :
    "{{ mac_pool_fi_a_details.api_response.Moid }}"
    ,
    "Placement"
    :
    {
    "SwitchId"
    :
    "A"
    ,
    "AutoPciLink"
    :
    true
    ,
    "AutoSlotId"
    :
    true
    ,
    }
    ,
    "Cdn"
    :
    {
    "Source"
    :
    "vnic"
    }
    ,
    "FailoverEnabled"
    :
    false
    ,
    "FabricEthNetworkGroupPolicy"
    :
    [
    "{{ management_network_group_policy.api_response.Moid }}"
    ]
    ,
    "FabricEthNetworkControlPolicy"
    :
    "{{ ethernet_network_control_policy.api_response.Moid }}"
    ,
    "EthQosPolicy"
    :
    "{{ ethernet_qos_policy.api_response.Moid }}"
    ,
    "EthAdapterPolicy"
    :
    "{{ ethernet_adapter_vmware_policy.api_response.Moid }}"
    ,
    "StaticMacAddress"
    :
    ""
    ,
    "LanConnectivityPolicy"
    :
    "{{ fc_lan_connectivity_policy.api_response.Moid }}"
    ,
    "Order"
    :
    0
    }

    1 ответ Последний ответ
    0
    • D Не в сети
      D Не в сети
      dsoper
      написал в отредактировано
      #2

      Полезная нагрузка выглядит хорошо и в основном соответствует примеру на
      https://github.com/CiscoDevNet/intersight-ansible/blob/main/playbooks/attach_vhba_template.yml
      . Задача присоединения будет пропущена, если vHBA еще не существует. Можете ли вы отправить вывод с -vvv, если vHBA существует, чтобы понять, почему он не находится?

      1 ответ Последний ответ
      0
      • R Не в сети
        R Не в сети
        roxyfoxtrotter
        написал в отредактировано
        #3

        Есть какие-нибудь идеи? Я посмотрел инструменты разработчика Chrome в разделе «Сеть» и попробовал "Cdn"
        :
        {
        "Source"
        :
        "vnic"
        "Value"
        :
        "{{ vnic_template_fabA }}"
        } но это не сработало.

        1 ответ Последний ответ
        0
        • D Не в сети
          D Не в сети
          dsoper
          написал в отредактировано
          #4

          Пример создания шаблона vnic и его привязки к политикам можно найти по адресу https://github.com/CiscoDevNet/intersight-ansible/blob/main/playbooks/intersight_vnic_template.yml . Для привязки шаблонов к политикам необходимо использовать ресурс массового API.

          1 ответ Последний ответ
          0
          • R Не в сети
            R Не в сети
            roxyfoxtrotter
            написал в отредактировано
            #5

            Это создает виртуальные сетевые карты, если они отсутствуют? Я получил свой плейбук для создания шаблонов виртуальных сетевых карт, но мне также нужно создать виртуальные сетевые карты из vmnic0-vmnic7.

            1 ответ Последний ответ
            0
            • D Не в сети
              D Не в сети
              dsoper
              написал в отредактировано
              #6

              Да, vnic_name в плейбуке будет создан, если он еще не существует.

              1 ответ Последний ответ
              0
              • R Не в сети
                R Не в сети
                roxyfoxtrotter
                написал в отредактировано
                #7

                Я не понимаю, почему задача по созданию виртуальных сетевых карт пропускается. Вот мой измененный плейбук. Шаблоны виртуальных сетевых карт создаются, но отсутствующие виртуальные сетевые карты: vmnic0-vmnic7 -
                name
                :
                "Configure vNIC Templates"
                vars
                :
                api_info
                :
                &
                api_info_vnic api_private_key
                :
                "{{ api_private_key }}"
                api_key_id
                :
                "{{ api_key_id }}"
                api_uri
                :
                "{{ api_uri | default(omit) }}"
                validate_certs
                :
                "{{ validate_certs | default(omit) }}"
                state
                :
                "{{ state | default('present') }}"
                block
                :

                name
                :
                "Configure vNIC Templates in Intersight"
                cisco
                .
                intersight
                .
                intersight_rest_api
                :
                <<
                :
                *
                api_info_vnic resource_path
                :
                "/vnic/VnicTemplates"
                query_params
                :
                $filter
                :
                "Name eq '{{ item.name }}'"
                api_body
                :
                Name
                :
                "{{ item.name }}"
                Organization
                :
                Moid
                :
                "{{ intersight_org.api_response.Moid }}"
                Description
                :
                "vNIC Template for {{ item.name }}"
                Cdn
                :
                Source
                :
                "vnic"
                EnableOverride
                :
                false EthAdapterPolicy
                :
                Moid
                :
                "{{ ethernet_adapter_policy_details.api_response.Moid }}"
                EthQosPolicy
                :
                Moid
                :
                "{{ ethernet_qos_policy_details.api_response.Moid }}"
                FabricEthNetworkControlPolicy
                :
                Moid
                :
                "{{ ethernet_network_control_policy_details.api_response.Moid }}"
                FabricEthNetworkGroupPolicy
                :

                Moid
                :
                "{{ item.eth_network_group_policy }}"
                FailoverEnabled
                :
                false MacPool
                :
                Moid
                :
                "{{ item.mac_pool }}"
                SwitchId
                :
                "{{ item.switch_id }}"
                Tags
                :

                Key
                :
                "configmode"
                Value
                :
                "ansible"

                Key
                :
                "prefix"
                Value
                :
                "{{ prefix }}"
                loop
                :
                "{{ vnic_templates }}"
                loop_control
                :
                label
                :
                "{{ item.name }}"
                register
                :
                template_resp

                name
                :
                "Get LAN Connectivity Policy Moid"
                cisco
                .
                intersight
                .
                intersight_rest_api
                :
                <<
                :
                *
                api_info_vnic resource_path
                :
                /
                vnic
                /
                LanConnectivityPolicies query_params
                :
                $filter
                :
                "Name eq '{{ name_of_fc_lan_connectivity_policy_biz }}'"
                register
                :
                lan_resp

                name
                :
                "Get Moid of vNICs by Name"
                cisco
                .
                intersight
                .
                intersight_rest_api
                :
                <<
                :
                *
                api_info_vnic resource_path
                :
                /
                vnic
                /
                EthIfs query_params
                :
                $filter
                :
                "Name eq '{{ item.vnic }}'"
                loop
                :
                "{{ vnic_templates }}"
                loop_control
                :
                label
                :
                "{{ item.vnic }}"
                register
                :
                vnic_resp

                name
                :
                "Debug vnic_resp"
                debug
                :
                var
                :
                vnic_resp

                Derive profiles from template (if profiles don't already exist)

                name
                :
                "POST to derive {{ item.vnic }}"
                intersight_rest_api
                :
                resource_path
                :
                /
                bulk
                /
                MoCloners update_method
                :
                post api_body
                :
                |
                {
                "Organization"
                :
                {
                "Moid"
                :
                "{{ intersight_org.api_response.Moid }}"
                }
                ,
                "Sources"
                :
                [
                {
                "ClassId"
                :
                "mo.MoRef"
                ,
                "ObjectType"
                :
                "vnic.VnicTemplate"
                ,
                "Moid"
                :
                "{{ template_resp.api_response.Moid }}"
                }
                ]
                ,
                "Targets"
                :
                [
                {
                "Name"
                :
                "{{ item.vnic }}"
                ,
                "LanConnectivityPolicy"
                :
                "{{ lan_resp.api_response.Moid }}"
                ,
                "MacAddressType"
                :
                "POOL"
                ,
                "ObjectType"
                :
                "vnic.EthIf"
                ,
                "Placement"
                :
                {
                }
                ,
                "ClassId"
                :
                "vnic.EthIf"
                }
                ]
                }
                when
                :
                vnic_resp
                is
                not
                defined
                or
                vnic_resp
                .
                results
                is
                not
                defined
                or
                vnic_resp
                .
                results
                |
                length

                0
                or
                vnic_resp
                .
                results
                [
                0
                ]
                .
                api_response
                is
                not
                defined loop
                :
                "{{ vnic_templates }}"
                loop_control
                :
                label
                :
                "{{ item.vnic }}" .

                1 ответ Последний ответ
                0
                • R Не в сети
                  R Не в сети
                  roxyfoxtrotter
                  написал в отредактировано
                  #8

                  Я запустил плейбук в автономном режиме, но получил следующую ошибку: fatal: [localhost]: FAILED! => {
                  "msg": "Условная проверка 'vnic_resp.api_response не определена или не является vnic_resp.api_response.Results' не прошла. Ошибка: ошибка при оценке условия (vnic_resp.api_response не определено или не является vnic_resp.api_response.Results): 'dict object' не имеет атрибута 'Results'\n\nОшибка, по-видимому, находится в 'create_vnics.yml': строка 100, столбец 7, но может\nбыть и в другом месте файла, в зависимости от точной синтаксической проблемы.\n\nСтрока, вызывающая ошибку, находится, по-видимому, здесь:\n\n # POST для получения vNIC '{{ vnic_name }}'\n - name: "POST для получения vNIC '{{ vnic_name }}'"\n ^ здесь\nВозможно, мы ошибаемся, но, по-видимому, проблема заключается в\nотсутствии кавычек. Всегда заключайте в кавычки скобки выражения шаблона, когда они\nначинают значение. Например:\n\n with_items:\n - {{ foo }}\n\nДолжно быть написано так:\n\n with_items:\n - "{{ foo }}"\n"
                  }

                  1 ответ Последний ответ
                  0
                  • R Не в сети
                    R Не в сети
                    roxyfoxtrotter
                    написал в отредактировано
                    #9

                    Это сценарий, который я скопировал из репозитория github, но при выполнении задачи по созданию виртуальной сетевой карты постоянно возникает ошибка. -

                    name
                    :
                    "Configure vNIC from Template"
                    hosts
                    :
                    localhost connection
                    :
                    local gather_facts
                    :
                    false vars
                    :
                    api_info
                    :
                    &
                    api_info api_private_key
                    :
                    "ansible-automation-SecretKey.txt"
                    api_key_id
                    :
                    "xxxxxxxxxx api_uri
                    :
                    "https://cva"
                    validate_certs
                    :
                    false state
                    :
                    present prefix
                    :
                    "DC1"
                    org_name
                    :
                    "my_org"
                    template_name
                    :
                    "name_of_vnic_template_A"
                    lan_connectivity_policy
                    :
                    "fc_lan_connectivity_policy"
                    vnic_name
                    :
                    "vnic0"
                    mac_pool
                    :
                    "{{ prefix }}-Mac-Pool-A"
                    network_group
                    :
                    "{{ prefix }}-vSwitch0-Policy"
                    network_control_policy
                    :
                    "{{ prefix }}-Enable-CDP-LLDP-Policy"
                    qos_policy
                    :
                    "{{ prefix }}-EthernetQoS-Policy"
                    ethernet_adapter_policy
                    :
                    "{{ prefix }}-EthAdapter-VMware-Policy"
                    tasks
                    :

                    name
                    :
                    "Get Organization Moid"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    organization
                    /
                    Organizations query_params
                    :
                    $filter
                    :
                    "Name eq '{{ org_name }}'"
                    register
                    :
                    org_resp

                    name
                    :
                    "Get vNIC Template Moid"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    vnic
                    /
                    VnicTemplates query_params
                    :
                    $filter
                    :
                    "Name eq '{{ template_name }}'"
                    register
                    :
                    template_resp

                    name
                    :
                    "Check if FC vNIC '{{ vnic_name }}' exists"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    vnic
                    /
                    EthIfs query_params
                    :
                    $filter
                    :
                    "Name eq '{{ vnic_name }}'"
                    register
                    :
                    vnic_resp

                    name
                    :
                    "Get MAC Pool Moid"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    macpool
                    /
                    Pools query_params
                    :
                    $filter
                    :
                    "Name eq '{{ mac_pool }}'"
                    register
                    :
                    mac_resp

                    name
                    :
                    "Get Network Group Moid"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    fabric
                    /
                    EthNetworkGroupPolicies query_params
                    :
                    $filter
                    :
                    "Name eq '{{ network_group }}'"
                    register
                    :
                    network_resp

                    name
                    :
                    "Get Network Control Policy Moid"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    fabric
                    /
                    EthNetworkControlPolicies query_params
                    :
                    $filter
                    :
                    "Name eq '{{ network_control_policy }}'"
                    register
                    :
                    control_resp

                    name
                    :
                    "Get QoS Policy Moid"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    vnic
                    /
                    EthQosPolicies query_params
                    :
                    $filter
                    :
                    "Name eq '{{ qos_policy }}'"
                    register
                    :
                    qos_resp

                    name
                    :
                    "Get Ethernet Adapter Moid"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    vnic
                    /
                    EthAdapterPolicies query_params
                    :
                    $filter
                    :
                    "Name eq '{{ ethernet_adapter_policy }}'"
                    register
                    :
                    adapter_resp

                    Check if vNIC exists

                    name
                    :
                    "Get {{ vnic_name }} Moid"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    vnic
                    /
                    EthIfs query_params
                    :
                    $filter
                    :
                    "Name eq '{{ vnic_name }}'"
                    register
                    :
                    vnic_resp

                    name
                    :
                    "Get LAN Connectivity Policy Moid"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    vnic
                    /
                    LanConnectivityPolicies query_params
                    :
                    $filter
                    :
                    "Name eq '{{ lan_connectivity_policy }}'"
                    register
                    :
                    lan_resp

                    name
                    :
                    "POST to derive vNIC '{{ vnic_name }}'"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    bulk
                    /
                    MoCloners update_method
                    :
                    post api_body
                    :
                    |
                    {
                    "Organization"
                    :
                    {
                    #"Moid": "{{ org_resp.api_response.Moid }}"
                    }
                    ,
                    "Sources"
                    :
                    [
                    {
                    "ClassId"
                    :
                    "mo.MoRef"
                    ,
                    "ObjectType"
                    :
                    "vnic.VnicTemplate"
                    ,
                    Moid
                    :
                    "{{ template_resp.api_response.Moid }}"
                    }
                    ]
                    ,
                    "Targets"
                    :
                    [
                    {
                    "Name"
                    :
                    "{{ vnic_name }}"
                    ,
                    "LanConnectivityPolicy"
                    :
                    "{{ lan_resp.api_response.Moid }}"
                    ,
                    "MacAddressType"
                    :
                    "POOL"
                    ,
                    "ObjectType"
                    :
                    "vnic.EthIf"
                    ,
                    "Placement"
                    :
                    {
                    }
                    ,
                    "ClassId"
                    :
                    "vnic.EthIf"
                    }
                    ]
                    }
                    when
                    :
                    vnic_resp
                    .
                    api_response
                    is
                    not
                    defined
                    or
                    not
                    vnic_resp
                    .
                    api_response

                    name
                    :
                    "POST to update vNIC '{{ vnic_name }}'"
                    cisco
                    .
                    intersight
                    .
                    intersight_rest_api
                    :
                    <<
                    :
                    *
                    api_info resource_path
                    :
                    /
                    bulk
                    /
                    MoMergers update_method
                    :
                    post api_body
                    :
                    {
                    "Sources"
                    :
                    [
                    {
                    "ObjectType"
                    :
                    "vnic.VnicTemplate"
                    ,
                    "Moid"
                    :
                    "{{ template_resp.api_response.Moid }}"
                    }
                    ]
                    ,
                    "Targets"
                    :
                    [
                    {
                    "ObjectType"
                    :
                    "vnic.EthIf"
                    ,
                    "Moid"
                    :
                    "{{ vnic_resp.api_response.Moid }}"
                    }
                    ]
                    ,
                    "MergeAction"
                    :
                    "Replace"
                    }
                    when
                    :
                    vnic_resp
                    .
                    api_response
                    and
                    vnic_resp
                    .
                    changed fatal
                    :
                    [
                    localhost
                    ]
                    :
                    FAILED!

                    {
                    "msg"
                    :
                    "The task includes an option with an undefined variable.. 'dict object' has no attribute 'Moid'\n\nThe error appears to be in 'create_vnics.yml': line 107, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - name: "POST to derive vNIC '{{ vnic_name }}'"\n ^ here\nWe could be wrong, but this one looks like it might be an issue with\nmissing quotes. Always quote template expression brackets when they\nstart a value. For instance:\n\n with_items:\n - {{ foo }}\n\nShould be written as:\n\n with_items:\n - "{{ foo }}"\n"
                    }

                    1 ответ Последний ответ
                    0
                    • D Не в сети
                      D Не в сети
                      dsoper
                      написал в отредактировано
                      #10

                      Похоже, что условия в примере не будут работать во всех случаях, и запрос на существующий vnic должен быть более конкретным. Я поработаю над обновленным примером с исправлениями.

                      1 ответ Последний ответ
                      0
                      • D Не в сети
                        D Не в сети
                        dsoper
                        написал в отредактировано
                        #11

                        Я обновил пример на
                        https://github.com/CiscoDevNet/intersight-ansible/blob/main/playbooks/intersight_vnic_template.yml
                        , добавив более конкретный запрос и список vnics для создания или обновления из шаблона.

                        1 ответ Последний ответ
                        0
                        • R Не в сети
                          R Не в сети
                          roxyfoxtrotter
                          написал в отредактировано
                          #12

                          Я смог создать шаблоны vnic непосредственно из своей политики подключения к локальной сети. Ваш плейбук привязывает vnic к существующему шаблону vnic?

                          1 ответ Последний ответ
                          0
                          • D Не в сети
                            D Не в сети
                            dsoper
                            написал в отредактировано
                            #13

                            Да, в примере vnics присоединяются к шаблону vnic, созданному в плейбуке.

                            1 ответ Последний ответ
                            0
                            • R Не в сети
                              R Не в сети
                              roxyfoxtrotter
                              написал в отредактировано
                              #14

                              все еще получаю ошибку # Проверить, существует ли vNIC

                              • name: «Получить {{ vnic_name }} Moid»
                                intersight_rest_api:
                                resource_path: /vnic/EthIfs
                                query_params:
                                $filter: "Name eq '{{ vnic_name }}' and LanConnectivityPolicy.Moid eq '{{ lan_resp.api_response.Moid }}'"
                                регистр: vnic_resp
                                цикл: "{{ vnic_names }}"
                                loop_control:
                                loop_var: vnic_name TASK
                                [
                                Get
                                00

                              vSwitch0

                              fc

                              A Moid
                              ]
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              **
                              task path
                              :
                              create_vnics
                              .
                              yml
                              :
                              95
                              [
                              WARNING
                              ]
                              :
                              TASK
                              :
                              Get
                              00

                              vSwitch0

                              fc

                              A Moid
                              :
                              The loop variable
                              'vnic_name'
                              is
                              already
                              in
                              use
                              .
                              You should set the loop_var value
                              in
                              the loop_control option
                              for
                              the task to something
                              else
                              to avoid variable collisions
                              and
                              unexpected behavior
                              .
                              fatal
                              :
                              [
                              localhost
                              ]
                              :
                              FAILED!

                              {
                              "msg"
                              :
                              "The task includes an option
                              with
                              an undefined variable
                              .
                              .
                              'dict object'
                              has no attribute
                              'Moid'
                              \n\nThe error appears to be
                              in
                              'create_vnics.yml'
                              :
                              line
                              95
                              ,
                              column
                              7
                              ,
                              but may\nbe elsewhere
                              in
                              the file depending on the exact syntax problem
                              .
                              \n\nThe offending line appears to be
                              :
                              \n\n

                              Check if vNIC exists\n - name: "Get {{ vnic_name }} Moid"\n ^ here\nWe could be wrong, but this one looks like it might be an issue with\nmissing quotes. Always quote template expression brackets when they\nstart a value. For instance:\n\n with_items:\n - {{ foo }}\n\nShould be written as:\n\n with_items:\n - "{{ foo }}"\n"

                              1 ответ Последний ответ
                              0
                              • D Не в сети
                                D Не в сети
                                dsoper
                                написал в отредактировано
                                #15

                                Можете ли вы опубликовать полный плейбук, который вы используете? В примере из github vnic_names является списком в разделе vars, а loop_var, используемый при цикле в vnic_names, является vnic_name. Судя по вашей ошибке, vnic_name, похоже, используется где-то еще в вашем плейбуке.

                                1 ответ Последний ответ
                                0
                                • R Не в сети
                                  R Не в сети
                                  roxyfoxtrotter
                                  написал в отредактировано
                                  #16

                                  name
                                  :
                                  "Configure vNICs from Template"
                                  hosts
                                  :
                                  localhost connection
                                  :
                                  local gather_facts
                                  :
                                  false vars
                                  :
                                  api_info
                                  :
                                  &
                                  api_info api_private_key
                                  :
                                  "ansible-automation-SecretKey.txt"
                                  api_key_id
                                  :
                                  "xxxxxxxx"
                                  api_uri
                                  :
                                  "https://intersight/api/v1"
                                  validate_certs
                                  :
                                  false state
                                  :
                                  present prefix
                                  :
                                  "DC1"
                                  org_name
                                  :
                                  "my-org"
                                  template_name
                                  :
                                  "FAB-A-BIZ-MGMT"
                                  lan_connectivity_policy
                                  :
                                  "lan_connectivity_policy"
                                  mac_pool
                                  :
                                  "{{ prefix }}-Mac-Pool-A"
                                  network_group
                                  :
                                  "{{ prefix }}-vSwitch0-Policy"
                                  network_control_policy
                                  :
                                  "{{ prefix }}-Enable-CDP-LLDP-Policy"
                                  qos_policy
                                  :
                                  "{{ prefix }}-EthernetQoS-Policy"
                                  ethernet_adapter_policy
                                  :
                                  "{{ prefix }}-EthAdapter-VMware-Policy"
                                  vnic_names
                                  :

                                  "00-vSwitch0-A"

                                  "01-vSwitch0-B"
                                  tasks
                                  :

                                  name
                                  :
                                  "Get Organization Moid"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  organization
                                  /
                                  Organizations query_params
                                  :
                                  $filter
                                  :
                                  "Name eq '{{ org_name }}'"
                                  register
                                  :
                                  org_resp

                                  name
                                  :
                                  "Get MAC Pool Moid"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  macpool
                                  /
                                  Pools query_params
                                  :
                                  $filter
                                  :
                                  "Name eq '{{ mac_pool }}'"
                                  register
                                  :
                                  mac_resp

                                  name
                                  :
                                  "Get Network Group Moid"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  fabric
                                  /
                                  EthNetworkGroupPolicies query_params
                                  :
                                  $filter
                                  :
                                  "Name eq '{{ network_group }}'"
                                  register
                                  :
                                  network_resp

                                  name
                                  :
                                  "Get Network Control Policy Moid"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  fabric
                                  /
                                  EthNetworkControlPolicies query_params
                                  :
                                  $filter
                                  :
                                  "Name eq '{{ network_control_policy }}'"
                                  register
                                  :
                                  control_resp

                                  name
                                  :
                                  "Get QoS Policy Moid"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  vnic
                                  /
                                  EthQosPolicies query_params
                                  :
                                  $filter
                                  :
                                  "Name eq '{{ qos_policy }}'"
                                  register
                                  :
                                  qos_resp

                                  name
                                  :
                                  "Get Ethernet Adapter Moid"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  vnic
                                  /
                                  EthAdapterPolicies query_params
                                  :
                                  $filter
                                  :
                                  "Name eq '{{ ethernet_adapter_policy }}'"
                                  register
                                  :
                                  adapter_resp

                                  name
                                  :
                                  "Get vNIC Template Moid"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  vnic
                                  /
                                  VnicTemplates query_params
                                  :
                                  $filter
                                  :
                                  "Name eq '{{ template_name }}'"
                                  register
                                  :
                                  template_resp

                                  name
                                  :
                                  "Get LAN Connectivity Policy Moid"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  vnic
                                  /
                                  LanConnectivityPolicies query_params
                                  :
                                  $filter
                                  :
                                  "Name eq '{{ lan_connectivity_policy }}'"
                                  register
                                  :
                                  lan_resp

                                  name
                                  :
                                  "Check if each vNIC exists"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  vnic
                                  /
                                  EthIfs query_params
                                  :
                                  $filter
                                  :
                                  "Name eq '{{ item }}' and LanConnectivityPolicy.Moid eq '{{ lan_resp.api_response.Moid }}'"
                                  loop
                                  :
                                  "{{ vnic_names }}"
                                  loop_control
                                  :
                                  label
                                  :
                                  "{{ item }}"
                                  register
                                  :
                                  vnic_checks

                                  name
                                  :
                                  "POST to derive vNIC if it does not exist"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  bulk
                                  /
                                  MoCloners update_method
                                  :
                                  post api_body
                                  :

                                  {
                                  {
                                  {
                                  "Organization"
                                  :
                                  {
                                  "Moid"
                                  :
                                  org_resp
                                  .
                                  api_response
                                  .
                                  Moid
                                  }
                                  ,
                                  "Sources"
                                  :
                                  [
                                  {
                                  "ClassId"
                                  :
                                  "mo.MoRef"
                                  ,
                                  "ObjectType"
                                  :
                                  "vnic.VnicTemplate"
                                  ,
                                  "Moid"
                                  :
                                  template_resp
                                  .
                                  api_response
                                  .
                                  Moid
                                  }
                                  ]
                                  ,
                                  "Targets"
                                  :
                                  [
                                  {
                                  "Name"
                                  :
                                  item
                                  .
                                  item
                                  ,
                                  "LanConnectivityPolicy"
                                  :
                                  lan_resp
                                  .
                                  api_response
                                  .
                                  Moid
                                  ,
                                  "MacAddressType"
                                  :
                                  "POOL"
                                  ,
                                  "ObjectType"
                                  :
                                  "vnic.EthIf"
                                  ,
                                  "Placement"
                                  :
                                  {
                                  }
                                  ,
                                  "ClassId"
                                  :
                                  "vnic.EthIf"
                                  }
                                  ]
                                  }
                                  }
                                  }
                                  when
                                  :
                                  item
                                  .
                                  api_response
                                  .
                                  Moid
                                  is
                                  not
                                  defined loop
                                  :
                                  "{{ vnic_checks.results }}"
                                  loop_control
                                  :
                                  label
                                  :
                                  "{{ item.item }}"

                                  name
                                  :
                                  "POST to update vNIC if it exists and template changed"
                                  cisco
                                  .
                                  intersight
                                  .
                                  intersight_rest_api
                                  :
                                  <<
                                  :
                                  *
                                  api_info resource_path
                                  :
                                  /
                                  bulk
                                  /
                                  MoMergers update_method
                                  :
                                  post api_body
                                  :

                                  {
                                  {
                                  {
                                  "Sources"
                                  :
                                  [
                                  {
                                  "ObjectType"
                                  :
                                  "vnic.VnicTemplate"
                                  ,
                                  "Moid"
                                  :
                                  template_resp
                                  .
                                  api_response
                                  .
                                  Moid
                                  }
                                  ]
                                  ,
                                  "Targets"
                                  :
                                  [
                                  {
                                  "ObjectType"
                                  :
                                  "vnic.EthIf"
                                  ,
                                  "Moid"
                                  :
                                  item
                                  .
                                  api_response
                                  .
                                  Moid
                                  }
                                  ]
                                  ,
                                  "MergeAction"
                                  :
                                  "Replace"
                                  }
                                  }
                                  }
                                  when
                                  :
                                  item
                                  .
                                  api_response
                                  .
                                  Moid
                                  is
                                  defined
                                  and
                                  template_resp
                                  .
                                  changed loop
                                  :
                                  "{{ vnic_checks.results }}"
                                  loop_control
                                  :
                                  label
                                  :
                                  "{{ item.item }}"

                                  1 ответ Последний ответ
                                  0

                                  Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.

                                  Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

                                  С вашими комментариями этот пост может стать ещё лучше 💗

                                  Зарегистрироваться Войти
                                  Ответить
                                  • Ответить, создав новую тему
                                  Авторизуйтесь, чтобы ответить
                                  • Сначала старые
                                  • Сначала новые
                                  • По количеству голосов


                                  • Войти

                                  • Нет учётной записи? Зарегистрироваться

                                  • Login or register to search.
                                  • Первое сообщение
                                    Последнее сообщение
                                  0
                                  • Категории
                                  • Последние
                                  • Метки
                                  • Популярные
                                  • Пользователи
                                  • Группы