For AI agents: the complete documentation index is available at https://docs.us.ovhcloud.com/en/llms.txt, the full documentation bundle is available at https://docs.us.ovhcloud.com/en/llms-full.txt, and this page is available as Markdown at https://docs.us.ovhcloud.com/en/hosted-private-cloud/nutanix-on-ovhcloud/setting-up-ncm-self-service-calm-nutanix.md.
  • English

Setting Up NCM Self-Service (CALM) in Nutanix

View as Markdown

Learn how to set up NCM Self-Service (Calm) on your Prism Central.

NCM Self-Service (CALM) is a heterogeneous orchestration solution that allows the automation and management of deployments. It runs on Prism Central and allows the administration of various environments (Nutanix Cluster, bare metal server, etc...).

Warning

NOTE: This tutorial will show you how to use one or more OVHcloud solutions with external tools, and will describe the actions to be carried out in a specific context. You may need to adapt the instructions according to your situation.

 

Requirements

  • a Nutanix cluster in your OVHcloud account
  • access to the OVHcloud Control Panel
  • you must be connected to the cluster via Prism Central
  • have Self-Service (CALM) licenses (available through the Nutanix on OVHcloud packaged service with limitations for the Starter Pack)
  • An additional VLAN in your cluster that distributes IPAM IP addresses and has internet access

 

Instructions

We will enable CALM, create two applications for our Nutanix cluster, and publish them on the application portals which are:

  • An Nginx Web server with Linux Ubuntu.
  • An IIS Web server on a Windows server.

 

Activating CALM

Before deploying CALM, you must configure an IP address for the ISCSI Data Services IP.

From the Prism Central dashboard, click on your Cluster in the Cluster Quick Access section.

Calm - Setting up NCM self service Nutanix - step 1

In the Prism Element, click on the cluster settings in the top left-hand corner.

Calm - Setting up NCM self service Nutanix - step 2

Verify the IP Address in the ISCSI Data Services IP field and click Save.

Calm - Setting up NCM self service Nutanix - step 3

Go back to Prism Central, go to the main menu on the left, and click on Calm in the Services section.

Calm - Setting up NCM self service Nutanix - step 4

Click Enable App. Orchestration(Calm).

Calm - Setting up NCM self service Nutanix - step 5

Select the Enable App Management check box and click Save.

Calm - Setting up NCM self service Nutanix - step 6

CALM is being activated.

Calm - Setting up NCM self service Nutanix - step 7

Warning

NOTE: An error message appears during CALM deployment. Ignore it, exit the window. and wait until the installation is complete.

Calm - Setting up NCM self service Nutanix - step 8

 

Creating a project

You need to create a project to deploy applications.

From the Prism Central menu, click on Calm in the Services section.

Calm - Setting up NCM self service Nutanix - step 9

Click the Projects icon in the vertical menu bar.

Calm - Setting up NCM self service Nutanix - step 10

Click the + Create Project button.

Calm - Setting up NCM self service Nutanix - step 11

Type the project name in Project Name field and click Create.

Calm - Setting up NCM self service Nutanix - step 12

Click + Add infrastructure.

Calm - Setting up NCM self service Nutanix - step 13

Click Add infrastructure.

Calm - Setting up NCM self service Nutanix - step 14

Select NTNX_LOCAL_AZ from accounts.

Calm - Setting up NCM self service Nutanix - step 15

Click Configure Resources.

Calm - Setting up NCM self service Nutanix - step 16

Select your Cluster from Select clusters to be added to this project and click + Select VLANs.

Calm - Setting up NCM self service Nutanix - step 17

Check the production VLAN box and click Confirm and Select Default.

Calm - Setting up NCM self service Nutanix - step 18

Click Confirm.

Calm - Setting up NCM self service Nutanix - step 19

Click Save.

Calm - Setting up NCM self service Nutanix - step 20

In the tab bar go to Environments and click Create Environment.

Calm - Setting up NCM self service Nutanix - step 21

Type a Name in the Name field and click Next.

Calm - Setting up NCM self service Nutanix - step 22

Click Select Infrastructure.

Calm - Setting up NCM self service Nutanix - step 23

Click NTNX_LOCAL_AZ.

Calm - Setting up NCM self service Nutanix - step 24

Click Required for launching blueprints from marketplace to the right of VM Configuration.

Calm - Setting up NCM self service Nutanix - step 25

Enter this information:

  • Cluster: choose your cluster
  • vCPUs: 4
  • Core per vCPU: 1
  • Memory (GiB): 4
  • Image: WS2022EN-SYSPREPED
Warning

NOTE: The image is generated from a VM WINDOWS Server 2022 on which a sysprep was applied to reset the default configuration. When used with CALM, it is possible to automate the installation of a Windows OS from this type of image and apply settings stored in an XML file to it.

Then scroll down the window.

Calm - Setting up NCM self service Nutanix - step 26

Click the + button to the right of NETWORK ADAPTERS (NICs).

Calm - Setting up NCM self service Nutanix - step 27

Choose the network adapter in the production VLAN, check the Check log-in upon create box and scroll up in the window.

Calm - Setting up NCM self service Nutanix - step 28

Go to the Linux tab, and enter this information:

  • Cluster: choose your cluster
  • vCPUs: 4
  • Core per vCPU: 1
  • Memory (GiB): 4
  • Image: jammy-server-cloudimg-amd64.img
Warning

NOTE: The image is pre-configured for UBUNTU Cloud-init use and can be downloaded from the Internet at Ubuntu Cloud Images. CALM allows the automation and customization of a Linux installation through these types of images and YAML configuration files.

Then scroll down the window.

Calm - Setting up NCM self service Nutanix - step 29

Click the + button to the right of NETWORK ADAPTERS (NICs).

Calm - Setting up NCM self service Nutanix - step 30

Choose the network adapter in the production VLAN, check the Check log-in upon create box and click Next.

Calm - Setting up NCM self service Nutanix - step 31

Click + Add Credential.

Calm - Setting up NCM self service Nutanix - step 32

Click + Add Credential.

Calm - Setting up NCM self service Nutanix - step 33

Enter this information:

  • Name: WindowsAccount
  • Username: administrator
  • Password: administrator account password

Then, click + Add Credential.

Calm - Setting up NCM self service Nutanix - step 34

Enter this information:

  • Name: LinuxAccount
  • Username: administrator
  • Password: administrator account password

Then click Save Environment.

Calm - Setting up NCM self service Nutanix - step 35

Click Marketplace Usage.

Calm - Setting up NCM self service Nutanix - step 36

Click Update.

Calm - Setting up NCM self service Nutanix - step 37

Click Next.

Calm - Setting up NCM self service Nutanix - step 38

Click Not ready for marketplace usage to the right of VM Configuration.

Calm - Setting up NCM self service Nutanix - step 39

Scroll down the window.

Calm - Setting up NCM self service Nutanix - step 40

Choose WindowsAccount from Credential and scroll up the window.

Calm - Setting up NCM self service Nutanix - step 41

Click the Linux tab in Credential and scroll down the window.

Calm - Setting up NCM self service Nutanix - step 42

Choose LinuxAccount from Credential and click Next.

Calm - Setting up NCM self service Nutanix - step 43

Click Save Environment.

Calm - Setting up NCM self service Nutanix - step 44

Your environment is ready for application creation and distribution.

Calm - Setting up NCM self service Nutanix - step 45

 

Creating applications

We will create two applications, test how they work, and publish them to the cluster marketplace.

Creating IIS Web Application on Windows

Look at the vertical bar on the left edge of the screen.

  1. Choose Blueprints.
  2. Open the Create Blueprint menu.
  3. Click on Multi VM/Pod Blueprint.

Calm - Setting up NCM self service Nutanix - step 46

Choose the name of your blueprint from Name and click on Proceed.

Calm - Setting up NCM self service Nutanix - step 47

Type the name in Application Profile Name and click on Credentials at the top.

Calm - Setting up NCM self service Nutanix - step 48

We will create the Windows account. It will be used inside sysprep as variable, in the configuration of the blueprint installation tasks and for the remote connection test.

Click on the + button next to Credentials.

Calm - Setting up NCM self service Nutanix - step 49

Enter this information:

  • Name: WindowsAccount
  • Username: administrator
  • Password: Administrator account password

And click on Done.

Calm - Setting up NCM self service Nutanix - step 50

Click Back.

Calm - Setting up NCM self service Nutanix - step 51

Click the + button in the left window next to Service.

Calm - Setting up NCM self service Nutanix - step 52

Enter this information:

  • Name: VM IIS
  • Operation System: Windows

And click on Clone from environment.

Calm - Setting up NCM self service Nutanix - step 53

Scroll down the window on the right and check the Guest Customization box. Next, click Sysprep.

Copy the contents of the sysprep file below to Script:

Warning

NOTE: This file is generated from the Windows ADK tools downloadable via this link and has been adapted by adding variables from Nutanix CALM such as '@@{WindowsAccount.secret}@@' that represents the password of the WindowsAccount.

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
                <UILanguage>en-US</UILanguage>
                <WillShowUI>Never</WillShowUI>
            </SetupUILanguage>
            <InputLocale>0409:00000409</InputLocale>
            <SystemLocale>en-US</SystemLocale>
            <UILanguage>en-US</UILanguage>
            <UserLocale>en-US</UserLocale>
        </component>
        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UserData>
                <AcceptEula>true</AcceptEula>
                <FullName>Nutanix Doc</FullName>
                <Organization>Nutanix Doc</Organization>
            </UserData>
            <EnableFirewall>true</EnableFirewall>
            <EnableNetwork>true</EnableNetwork>
        </component>
    </settings>
    <settings pass="specialize">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <TimeZone>Central Standard Time</TimeZone>
            <AutoLogon>
                <Password>
                    <Value>@@{WindowsAccount.secret}@@</Value>
                    <PlainText>true</PlainText>
                </Password>
                <Enabled>true</Enabled>
                <Username>administrator</Username>
                <LogonCount>1</LogonCount>
            </AutoLogon>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UserAccounts>
                <AdministratorPassword>
                    <Value>@@{WindowsAccount.secret}@@</Value>
                    <PlainText>true</PlainText>
                </AdministratorPassword>
            </UserAccounts>
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <ProtectYourPC>1</ProtectYourPC>
                <HideLocalAccountScreen>true</HideLocalAccountScreen>
            </OOBE>
            <FirstLogonCommands>
                <SynchronousCommand wcm:action="add">
                    <CommandLine>powershell Set-NetConnectionProfile -NetworkCategory Private</CommandLine>
                    <Order>1</Order>
                </SynchronousCommand>
                <SynchronousCommand wcm:action="add">
                    <CommandLine>powershell Set-WSManQuickConfig -Force</CommandLine>
                    <Order>2</Order>
                </SynchronousCommand>
            </FirstLogonCommands>
        </component>
        <component name="Microsoft-Windows-International-Core" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UILanguage>en-US</UILanguage>
            <UserLocale>en-US</UserLocale>
            <SystemLocale>en-US</SystemLocale>
            <InputLocale>0409:00000409</InputLocale>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:c:/w2022/sources/install.wim#Windows Server 2022 SERVERSTANDARD" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

Calm - Setting up NCM self service Nutanix - step 54

Continue to scroll through the window. Check the Check log-in upon create box and choose WindowsAccount from Credential.

Calm - Setting up NCM self service Nutanix - step 55

We will now create tasks in Powershell that will run after Windows installation and customization. Each of these tasks runs in sequence.

In the left-hand window, go to Install below the Package category and click on + Task.

Calm - Setting up NCM self service Nutanix - step 56

Enter this information:

  • Task Name: IIS Installation
  • Type: Execute
  • Script Type: Powershell
  • Credential: WindowsAccount

Copy this content to Script:

Install-WindowsFeature -name Web-Server -IncludeManagementTools

if ($?) {
exit 0
}

Click + Task.

Calm - Setting up NCM self service Nutanix - step 57

Fill in this information:

Task Name: Customize IIS Type: Execute Script Type: Powershell Credential: WindowsAccount

Copy this content to Script:

echo "<!DOCTYPE html>" | out-file "C:\inetpub\wwwroot\default.htm"
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value "<html>"
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value "<head>"
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value "<title>IIS on Windows AHV VM</title>"
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value "</head>"
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value "<body>"
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value ""
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value "<h1>IIS on Windows AHV VM</h1>"
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value "<p>Deployed with CALM</p>"
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value ""
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value "</body>"
Add-Content -Path C:\inetpub\wwwroot\default.htm -Value "</html>"

Then click + Task.

Calm - Setting up NCM self service Nutanix - step 58

Enter this information:

Task Name: reboot VM Type: Execute Script Type: Powershell Credential: WindowsAccount

Copy this content to Script:

restart-computer -force

Click Save at the top of the window.

Calm - Setting up NCM self service Nutanix - step 59

The application is created; click Launch to test your application.

Calm - Setting up NCM self service Nutanix - step 60

Type a Name in Application Name and click Deploy.

Calm - Setting up NCM self service Nutanix - step 61

A new window will appear, click on Audit to see the steps for deploying your application. When the deployment is complete you can see at the top of the window the RUNNING indication that the application is deployed and active.

Calm - Setting up NCM self service Nutanix - step 62

In our case, the IIS server is active and displays a message on the IP address of the virtual machine in HTTP.

Calm - Setting up NCM self service Nutanix - step 63

 

Creating the Nginx web application on Linux Ubuntu

We will create another application under Linux Ubuntu with Nginx installed as a WEB server.

Go to the Blueprints icon in the CALM vertical menu bar, and click on Multi VM/Pod Blueprint from the Create Blueprint menu.

Calm - Setting up NCM self service Nutanix - step 46

Type the Name in Name and click Proceed.

Calm - Setting up NCM self service Nutanix - step 65

Click Credentials.

Calm - Setting up NCM self service Nutanix - step 66

Click Credentials +.

Calm - Setting up NCM self service Nutanix - step 67

Enter this information for the Linux administration account:

  • Name: LinuxAccount
  • Username: administrator
  • Password: Administrator account password

Then click Done.

Calm - Setting up NCM self service Nutanix - step 68

Click on Credentials +.

Calm - Setting up NCM self service Nutanix - step 69

Enter this information about the Prism Central administration account:

  • Name: PC_ADMIN
  • Username: admin
  • Password: Prism Central Password
Warning

NOTE: This password is used if you use EScript (Python Scripts) in your deployment tasks, it will be used when using the Prism Central API. In this example, you will find an EScript that will resize the Ubuntu NGINX virtual machine storage.

Then click Done.

Calm - Setting up NCM self service Nutanix - step 70

Click Back.

Calm - Setting up NCM self service Nutanix - step 71

Type Linux Application in Application Profile Name and click + in the upper-right corner of the Service window.

Calm - Setting up NCM self service Nutanix - step 72

Enter this information:

  • Service Name: Ubuntu
  • VM Name: Ubuntu NGINX

Then click on Clone from environment and scroll down the window on the right.

Calm - Setting up NCM self service Nutanix - step 73

Check Guest Customization and copy the content below into the Script box.

#cloud-config
users:
- name: @@{LinuxAccount.username}@@
  groups: sudo
  sudo: ALL=(ALL) NOPASSWD:ALL
  shell: /bin/bash
  lock-passwd: false
chpasswd:
 list: |
   @@{LinuxAccount.username}@@:@@{LinuxAccount.secret}@@
 expire: False
ssh_pwauth: true
Warning

NOTE: This file is the Linux initialization file with cloud-init images, it uses the information from the LinuxAccount account that comes from CALM through macro-instructions that have this form: @@{LinuxAccount.username}@@ for the user account and @@{LinuxAccount.secret}@@ for the password.

Scroll down the window on the right.

Calm - Setting up NCM self service Nutanix - step 74

Choose LinuxAccount from Check log-in upon create.

Calm - Setting up NCM self service Nutanix - step 75

In the left window, go to Install below Package and click on + Task.

Calm - Setting up NCM self service Nutanix - step 76

Enter the information for your virtual machine's disk resize task.

  • Task Name: Disk resize
  • Type: Execute
  • Script Type: EScript

Then copy the content below into the Script box.

Warning

NOTE: This script uses the passwords that come from CALM through variables that have this form: @@{PC_ADMIN.username}@@ for the user account and @@{PC_ADMIN.secret}@@ for the password.

>vmUuid = '@@{id}@@'
diskSize = 50 # GB
pcAddress = '127.0.0.1'
pcUsername = '@@{PC_ADMIN.username}@@'
pcPassword = '@@{PC_ADMIN.secret}@@'

# ============== DO NO CHANGE AFTER THIS ===============

usrPass = '{}:{}'.format(pcUsername,pcPassword)
b64Pass = base64.b64encode(usrPass)

# Get VM
api_url = 'https://{}:9440/api/nutanix/v3/vms/{}'.format(pcAddress,vmUuid)
headers = {'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Basic {}'.format(b64Pass)}

r = urlreq(api_url, verb='GET', headers=headers, verify=False)
if r.ok:
    resp = json.loads(r.content)

else:
    print("Post request failed", r.content)
    exit(1)

# Power off VM and extend disk
del resp['status']

disk_size_mib = diskSize * 1024
disk_size_bytes = disk_size_mib * 1024**2

resp['spec']['resources']['disk_list'][0]['disk_size_mib'] = disk_size_mib
resp['spec']['resources']['disk_list'][0]['disk_size_bytes'] = disk_size_bytes
resp['spec']['resources']['power_state'] = 'OFF'

payload = resp

r = urlreq(api_url, verb='PUT', params=json.dumps(payload), headers=headers, verify=False)
if r.ok:
    resp = json.loads(r.content)
    taskUuid = resp['status']['execution_context']['task_uuid']

else:
    print("Post request failed", r.content)
    exit(1)


# Monitor task
state = ""
while state != "SUCCEEDED":
    api_url = 'https://{}:9440/api/nutanix/v3/tasks/{}'.format(pcAddress,taskUuid)

    sleep(2)
    r = urlreq(api_url, verb='GET', headers=headers, verify=False)
    if r.ok:
        resp = json.loads(r.content)
        state = resp['status']
        if state == "FAILED":
            print("Task failed", resp['progress_message'])
            exit(1)

    else:
        print("Post request failed", r.content)
        exit(1)

# Wait for VM to power off
api_url = 'https://{}:9440/api/nutanix/v3/vms/{}'.format(pcAddress,vmUuid)
r = urlreq(api_url, verb='GET', headers=headers, verify=False)
if r.ok:
    resp = json.loads(r.content)
    power_state = resp['status']['resources']['power_state']

else:
    print("Post request failed", r.content)
    exit(1)

state = ""
while state != "OFF":
    api_url = 'https://{}:9440/api/nutanix/v3/vms/{}'.format(pcAddress,vmUuid)

    sleep(2)
    r = urlreq(api_url, verb='GET', headers=headers, verify=False)
    if r.ok:
        resp = json.loads(r.content)
        state = resp['status']['resources']['power_state']
        if state == "FAILED":
            print("Task failed", resp['progress_message'])
            exit(1)

    else:
        print("Post request failed", r.content)
        exit(1)

# Power on VM
del resp['status']

resp['spec']['resources']['power_state'] = 'ON'

api_url = 'https://{}:9440/api/nutanix/v3/vms/{}'.format(pcAddress,vmUuid)
payload = resp

r = urlreq(api_url, verb='PUT', params=json.dumps(payload), headers=headers, verify=False)
if r.ok:
    resp = json.loads(r.content)
    taskUuid = resp['status']['execution_context']['task_uuid']

else:
    print("Post request failed", r.content)
    exit(1)

# Monitor task
state = ""
while state != "SUCCEEDED":
    api_url = 'https://{}:9440/api/nutanix/v3/tasks/{}'.format(pcAddress,taskUuid)

    sleep(2)
    r = urlreq(api_url, verb='GET', headers=headers, verify=False)
    if r.ok:
        resp = json.loads(r.content)
        state = resp['status']
        if state == "FAILED":
            print("Task failed", resp['progress_message'])
            exit(1)

    else:
        print("Post request failed", r.content)
        exit(1)

print("OS disk extended to {} GB".format(diskSize))

# Wait until VM boots
sleep(60) 

Click + Task.

Calm - Setting up NCM self service Nutanix - step 77

Enter this information about the Linux service verification task:

  • Task Name: Service restart
  • Type: Execute
  • Script Type: Shell
  • Credential: LinuxAccount

Then copy the content below to Script:

sudo sed 's/#$nrconf{restart} = '"'"'i'"'"';/$nrconf{restart} = '"'"'a'"'"';/g' /etc/needrestart/needrestart.conf

Click + Task to add a new task in sequence.

Calm - Setting up NCM self service Nutanix - step 78

Enter this information about the UBUNTU update task:

  • Task Name: Service restart
  • Type: Execute
  • Script Type: Shell
  • Credential: LinuxAccount

Then copy the content below to Script:

sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y

And click + Task to add a new task in sequence.

Calm - Setting up NCM self service Nutanix - step 79

Enter this information about the NGINX and CURL installation task:

  • Task Name: Service restart
  • Type: Execute
  • Script Type: Shell
  • Credential: LinuxAccount

Then copy the content below to Script:

sudo DEBIAN_FRONTEND=noninteractive apt install nginx curl -y

Click + Task to add a new task in sequence.

Calm - Setting up NCM self service Nutanix - step 80

Enter this information about the last NGINX customization task:

  • Task Name: Service restart
  • Type: Execute
  • Script Type: Shell
  • Credential: LinuxAccount

Then copy the content below to Script:

sudo ls -l /var/www/html/
sudo rm -rf /var/www/html/index.nginx-debian.html
sudo touch /var/www/html/index.nginx-debian.html
sudo chown $USER:$USER /var/www/html/index.nginx-debian.html
sudo ls -l /var/www/html/
sudo echo '<!DOCTYPE html>' > /var/www/html/index.nginx-debian.html
sudo echo '<html>' >> /var/www/html/index.nginx-debian.html
sudo echo '<head>' >> /var/www/html/index.nginx-debian.html
sudo echo '<title>NGINX on Linux AHV VM</title>' >> /var/www/html/index.nginx-debian.html
sudo echo '</head>' >> /var/www/html/index.nginx-debian.html
sudo echo '<body>' >> /var/www/html/index.nginx-debian.html
sudo echo '' >> /var/www/html/index.nginx-debian.html
sudo echo '<h1>Nginx on Linux AHV VM</h1>' >> /var/www/html/index.nginx-debian.html
sudo echo '<p>Deployed with CALM</p>' >> /var/www/html/index.nginx-debian.html
sudo echo '' >> /var/www/html/index.nginx-debian.html
sudo echo '</body>' >> /var/www/html/index.nginx-debian.html
sudo echo '</html>' >> /var/www/html/index.nginx-debian.html
sudo cat /var/www/html/index.nginx-debian.html

Click + Save to finish creating your blueprint.

Calm - Setting up NCM self service Nutanix - step 81

Click Launch to test your blueprint.

Calm - Setting up NCM self service Nutanix - step 82

Type the name of your test deployment in Application Name and click Deploy.

Calm - Setting up NCM self service Nutanix - step 83

Deployment begins.

Calm - Setting up NCM self service Nutanix - step 84

Click Audit to view your deployment progress.

Calm - Setting up NCM self service Nutanix - step 85

Once the deployment is complete, you can access the IP address of your NGINX VM via HTTP to view the welcome message.

Calm - Setting up NCM self service Nutanix - step 86

 

Publishing applications

Go to the Blueprints icon in the CALM vertical bar on the left and click on the WS 2022 IIS map.

Calm - Setting up NCM self service Nutanix - step 87

Click Publish.

Calm - Setting up NCM self service Nutanix - step 88

Apply these values:

  • Name: WS 2022 IIS
  • Publish with secrets: enabled
  • Initial Version: 1.0.0

Then click on Change on the left.

Calm - Setting up NCM self service Nutanix - step 89

Click Upload from computer.

Calm - Setting up NCM self service Nutanix - step 90

Choose the image on your computer and click Open.

Calm - Setting up NCM self service Nutanix - step 91

Name your Icon IIS and click on the blue validation button.

Calm - Setting up NCM self service Nutanix - step 92

Click Select & continue.

Calm - Setting up NCM self service Nutanix - step 93

Click Submit for approval.

Calm - Setting up NCM self service Nutanix - step 94

The Windows application is in the marketplace awaiting approval.

 

Click the UBUNTU 22 NGINX blueprint.

Calm - Setting up NCM self service Nutanix - step 95

Click Publish.

Calm - Setting up NCM self service Nutanix - step 96

Apply these values:

  • Name: UBUNTU 22 NGINX
  • Publish with secrets: enabled
  • Initial Version: 1.0.0

Then click Change on the left.

Calm - Setting up NCM self service Nutanix - step 97

Click Upload from computer.

Calm - Setting up NCM self service Nutanix - step 98

Choose the image on your computer and click Open.

Calm - Setting up NCM self service Nutanix - step 99

Name your icon NGINX and click the blue validation button.

Calm - Setting up NCM self service Nutanix - step 100

Select your icon and click Select & continue.

Calm - Setting up NCM self service Nutanix - step 101

Click Submit for approval.

Calm - Setting up NCM self service Nutanix - step 102

The Linux application is in the marketplace awaiting approval.

 

Adding applications published on the CALM portal

First:

  1. Click on the Marketplace Manager icon.
  2. Go to the Approval Pending tab.
  3. Check the UBUNTU 22 NGINX application.
  4. Click the validation icon on the right.

Calm - Setting up NCM self service Nutanix - step 103

Check the WS 2022 IIS application and click the validation icon on the right.

Calm - Setting up NCM self service Nutanix - step 104

Next:

  1. Go to the Approved tab.
  2. Click on the Source column to display the local applications first.
  3. Check WS 2022 IIS.
  4. Select NCM Self Service Project 01 at the bottom right.
  5. Click Apply.

Calm - Setting up NCM self service Nutanix - step 105

Click Publish.

Calm - Setting up NCM self service Nutanix - step 106

The Windows application is published.

Calm - Setting up NCM self service Nutanix - step 107

Check Ubuntu 22 NGINX, select NCM Self Service Project 01 on the right, and click Apply.

Calm - Setting up NCM self service Nutanix - step 108

Click Publish.

Calm - Setting up NCM self service Nutanix - step 109

The Ubuntu application is published.

Calm - Setting up NCM self service Nutanix - step 110

Click the Marketplace icon at the top of the vertical menu bar on the left and click Get below the UBUNTU 22 NGINX application.

Calm - Setting up NCM self service Nutanix - step 111

Click Launch.

Calm - Setting up NCM self service Nutanix - step 112

Type a Name in Application Name and click Deploy to deploy an application.

Calm - Setting up NCM self service Nutanix - step 113

 

Deleting a deployed application

Deleting a deployed application is as simple as deploying it.

Click on the Blueprints icons on the left and check a deployed application.

Calm - Setting up NCM self service Nutanix - step 114

From the Action menu, click Delete.

Calm - Setting up NCM self service Nutanix - step 115

Click Confirm.

Calm - Setting up NCM self service Nutanix - step 116

You can view the progress of a deletion as you would for a deployment.

Calm - Setting up NCM self service Nutanix - step 117

The application is completely deleted.

Calm - Setting up NCM self service Nutanix - step 118

 

Go further

Browse all the Nutanix guides.

Browse the rest of the OVHcloud US documentation for guides on our other products and services.

Learn more about Nutanix on OVHcloud on the OVHcloud US website.