Skip to content

Jupyter Lab Standalone on Azure

Launch Login Node

To set up a cluster, you will need to import a Flight Solo image.

  1. Go to the Microsoft Azure portal.

  2. Go to Virtual Machines, and click "Create".

  3. Select "Azure virtual machine", which will load this page:

  4. On the Basics page:

    1. Set Subscription to your subscription type.
    2. Set Resource Group to your desired resource group (where the vm will be kept after creation).
    3. Set Virtual machine name to any suitable name. (- does not work in a name)
    4. Set Image to the imported Flight Solo Image.
      1. It may be necessary to open the drop-down and/or see all images in order to find the imported image.
      2. Scroll down to see more options
    5. Set Size to your choice of size.
    6. Set Authentication type to SSH public key
    7. Set Username to any suitable username.
    8. Set SSH public key source to the most suitable option, but remember what key was used if creating compute nodes later.
    9. Fill in the Key pair name/Stored key/Use existing key as appropriate to the chosen public key source.
    10. Allow traffic to selected ports, and select SSH(22), HTTP(80) and HTTPS(443) as the allowed ports.
    11. Set the most appropriate license type.
  5. Continuing on to the next page, Disks, all necessary details should already be filled out, so this page can be skipped (unless you know what you want to change). However, it is recommended to select Delete with VM.

  6. Go on to the networking tab and fill out the necessary options.

    1. Set Virtual Network or create a new one by pressing "Create new" and setting a name. Remember what this is for if you create compute nodes.
    2. Set Subnet to one of the options in the drop-down menu, if it isn't already set. Remember what this is for if you create compute nodes.
    3. Set Public IP to an existing public IP or create a new one by pressing "Create new" and setting a name.
    4. Set NIC network security group to "Advanced", and press "Create new" to create a new security group.
      1. Click on "Add an inbound rule" to open the inbound rule creator
      2. Create rules to allow HTTP, HTTPS and SSH traffic from your IP address to the security group.
      3. When complete, press "OK" at the bottom left of the screen to return to image creation.
  7. The Management, Monitoring and Tags tabs have more options that aren't necessary for setup. Skip to the tab Advanced

  8. In the Custom data and cloud init section, there is a text box. This is where your user data can be specified

  9. Azure will take some time to review your settings. If there are no issues click "Create" to finish creation.

General Configuration

Create Node Inventory

  1. Parse your node(s) with the command flight hunter parse.

    1. This will display a list of hunted nodes, for example

      [flight@login-node.novalocal ~]$ flight hunter parse
      Select nodes: (Scroll for more nodes)  login-node.novalocal - 10.10.0.1
         compute-node-1.novalocal - 10.10.101.1
      

    2. Select the desired node to be parsed with Space, and you will be taken to the label editor

      Choose label: login-node.novalocal
      

    3. Here, you can edit the label like plain text

      Choose label: login1
      

      Tip

      You can clear the current node name by pressing Down in the label editor.

    4. When done editing, press Enter to save. The modified node label will appear next to the ip address and original node label.

      Select nodes: login-node.novalocal - 10.10.0.1 (login1) (Scroll for more nodes)  login-node.novalocal - 10.10.0.1 (login1)
         compute-node-1.novalocal - 10.10.101.1
      

    5. From this point, you can either hit Enter to finish parsing and process the selected nodes, or continue changing nodes. Either way, you can return to this list by running flight hunter parse.

    6. Save the node inventory before moving on to the next step.

      Tip

      See flight hunter parse -h for more ways to parse nodes.

Add genders

  1. Optionally, you may add genders to the newly parsed node. For example, in the case that the node should have the gender cluster and all then run the command:
    flight hunter modify-groups --add cluster,all login1
    

Jupyter Lab Standalone Configuration

  1. Configure profile

    flight profile configure
    
    1. This brings up a UI, where several options need to be set. Use up and down arrow keys to scroll through options and enter to move to the next option. Options in brackets coloured yellow are the default options that will be applied if nothing is entered.
      • Cluster type: The type of cluster setup needed, in this case select Jupyter Standalone.
      • Cluster name: The name of the cluster.
      • Default user: The user that you log in with.
      • Set user password: Set a password to be used for the chosen default user.
      • IP or FQDN for Web Access: As described here, this could be the public IP or public hostname.
  2. Apply an identity by running the command flight profile apply, E.g.

    flight profile apply standalone1 all-in-one
    
    !!! tip You can check all available identities for the current profile with flight profile identities

  3. Wait for the identity to finish applying. You can check the status of all nodes with flight profile list.

    Tip

    You can watch the progress of the application with flight profile view login1 --watch

Success

Congratulations, you've now created a Jupyter Lab Standalone environment! Learn more about Jupyter Lab in their documentation.

Verifying Functionality

  1. Put the IP/FQDN used in configuration into your browser to access the Flight Web Suite. It should look something like this:

  2. Under "Quick Access" click on "Jupyter" and enter the password set during configuration when requested; it will only need to be entered the first time you connect.

  3. On the Jupyter home page, under the "Notebook" section, click on "Python3" to open a new notebook.

  4. Enter this code, which will print out a message, wait for a bit, then print again.

    import time
    print("Starting running on Jupyter")
    time.sleep(3)
    print("Finished running - goodbye from Jupyter")
    

  5. Click the play button to run the cell, and wait for the result.