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 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • 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
                                • Категории
                                • Последние
                                • Метки
                                • Популярные
                                • Пользователи
                                • Группы