Dans NSX-T l’ajout d’un “Uplink Profil” est on ne peut plus simple via la GUI (quand celle-ci rĂ©pond correctement đ ), de notre cĂŽtĂ© on prĂ©fĂšre (et de loin…) passer par les REST APIs, ces derniĂšres sont plus sures et plus rapides surtout si on souhaite automatiser certaine actions.Â
Le playbook ci-dessous permet de créer un Uplink Profile, sans tag, avec un vlan en 102 et une mtu en 1600 dans un manager NSX-T (version 3.2.3.1.0).
Dans le playbook nous rĂ©cupĂ©rons le nom et l’id du “Profile Uplink” afin de pouvoir les rĂ©utiliser plus tard si par exemple vous souhaitez aller plus loin dans vos actions (ajout d’un “Transport Node Profile par exemple etc…). Vous remarquerez que nous avons mis un block et un rescue afin de gĂ©rer proprement d’Ă©ventuelle(s) erreur(s), si vous le souhaitez vous pouvez ajouter des actions dans la partie rescue (comme une gestion de log par exemple đ ).
- hosts: localhost
vars:
nsx_manager: "Your_NSX-T-MANAGER"
nsx_username: "admin"
nsx_password: "PWD_admin"
uplinkProfil_name: "Uplink_Profil01"
mtuvar: "1600"
vlanvar: "102"
tasks:
- name: Create a Uplink Profile
block:
- name: Create a Hostswitch Profile on NSX manager
uri:
url: "https://{{ nsx_manager }}/api/v1/host-switch-profiles"
force_basic_auth: yes
validate_certs: no
headers:
Accept: "application/json"
Content-Type: "application/json"
user: "{{ nsx_username }}"
password: "{{ nsx_password }}"
method: POST
body: |
{
"resource_type": "UplinkHostSwitchProfile",
"display_name": "{{uplinkProfil_name}}",
"mtu": "{{mtuvar}}",
"teaming": {
"standby_list": [
{
"uplink_name": "uplink-2",
"uplink_type": "PNIC"
}
],
"active_list": [
{
"uplink_name": "uplink-1",
"uplink_type": "PNIC"
}
],
"policy": "FAILOVER_ORDER"
},
"transport_vlan": "{{vlanvar}}"
}
status_code: "201"
body_format: json
register: nsx_hostswitch
- name: Display ID "Create a Hostswitch Profile"
debug:
msg:
- "display_name : {{ nsx_hostswitch.json.display_name }}"
- "ID : {{ nsx_hostswitch.json.id }}"
when: nsx_hostswitch.json.id is defined
rescue:
- name: Display error
debug:
msg: "Uplink Profile on {{ nsx_manager }} is not created"