Skip to content

Automated Reservation Management Configuration Guide

After setting up all necessary components, you should have all of them up and running either locally as containers or as instances in nmaas. Before you can test or use the automated reservation management orchestration, some final configurations need to be made in order to correctly connect the components and enure information exchange between them.

Follow this step-by-step guide to configure each component:

  1. Configure NetBox upon your first login

    • Add webhook

      • In the menu on the left hand side choose Operations -> Webhooks
      • Add a new webhook based on the information presented in the image below

        webook setup

        Note

        replace https://no-C.rare.nmaas.eu with the correct URL to your Camunda instance

        Note

        replace YWRtaW46YWRtaW4= with the base65 encoding username:password credentials that you chose when instantiating Camunda

        Note

        if you use nmaas do not use SSL verification

    • Add notification events

      • In the Operations submenu now choose Event Rules
      • Add a new rule based on the information presented in the image below event rule
    • Add tags

      • In the menu on the left hand side choose Customization -> Tags
      • To announce that the device should be available for reservation management it must have a reservation tag
        • the default tag value is set to rarereservation
        • if you are using containers in local environment you can configure your own custom tag for these purposes
      • To test with dummy GP4L testbed devices add the following tags
        • oxidized:group:wedge-bf100-32x
        • oxidized:group:nmaas-oob
        • oxidized:group:inband-bf2556x1t
        • oxidized:model:rare
      • To use with your own device in this part you need to define your own device model and groups respecting the following formats

        • oxidized:group:name
        • oxidized:model:name

        Note

        There should be at least one model and one group that are defined and recognized by Oxidized (using only the name part of the tags). Multiple models and groups are supported by Oxidized. For more information read the Oxidized documentation.

    • Prepare for managing devices

      • Follow the NetBox instructions and add
        • site
        • device role
        • manufacturer
        • device type
    • You are now ready to add devices to NetBox
  2. (optional) Configure Oxidized

    • if you chose to use Oxidized, then you must configure it
    • upon initialisation Camunda will send an email to the admin account with the subject "SSH keys creation"
    • if you are using nmaas you need to
      • go to your nmaas profile and choose "Add a new key"
      • provide a name for the key
      • copy paste the content of the email attachment in the key box
      • add the ssh key
    • if you are using containers then you need to add the key (with read and write access) to the Git repo that is connected to Oxidized

    Note

    This key will be used to provide read and write access the Git repo that Oxidized is reading from.

    • define the groups and models
      • if you are going to play with the pre-defined GP4L groups and models then
        • in the nmaas environment you don't need to do anything, they are already available in the Oxidized git by default
        • in your local environment you need to provide their configuration to the Oxidized git
      • alternatively, you can define your own groups and models. In this case you need to provide your definitions as configurations to the Oxidized git
      • the model files should be placed in the model folder on git
      • the configuration file should be placed in the base folder on git
  3. (optional) Configure AirFlow

    • if you chose to use authorisation then you need to configure the AirFlow workflow that controls the transfer of ssh keys between Libre Booking and Bastion
    • copy/paste the code in the tests folder from the repository https://bitbucket.software.geant.org/projects/GPLOR/repos/gp4l-airflow-reservation/browse in the designated subfolder in your repository that you linked AirFlow to
    • in the config subfolder edit the bastion_send_key.json file
      • provide the correct URL to your Libre Booking instance
      • provide the base64 encoding of your LibreBooking credentials in the format user:password
      • provide the correct URL to your Bastion instance
      • provide the base64 encoding of your LibreBooking credentials in the format user:password
    • go to your AirFlow instance and check if in the DAGs list you can see the bastion_send_key_task workflow
    • ensure that the workflow is active (unpaused)
  4. Configure Libre Booking

    • most of the Libre Booking configuration will be done automatically by Camunda upon its initialisation
      • this includes defining user group, custom attributes and setting up AirFlow webhook
    • the additional configuration is done in the Libre Booking Application Configuration using the admin account
      • you can make any changes you want to the Application Configuration, the recommended ones are:
        • in reservation section
          • updates.require.approval = true
          • title.required = true
          • description.required = true
        • in the registration section
          • require.position = true
          • require.organisation = true

    Warning

    do not turn off the api or remove the AirFlowPostReservation webhook

  5. You are now ready to use the automation reservation management orchestration solution