Mise en place de NCM Self Service (CALM)

Comment activer Self Service (CALM) dans votre Prism Central

Dernière mise à jour le 16/01/2023

Objectif

Découvrez comment mettre en place NCM Self-Service (Calm) sur votre Prism Central

OVHcloud vous met à disposition des services dont la configuration, la gestion et la responsabilité vous incombent. Il vous appartient donc de ce fait d’en assurer le bon fonctionnement.

Ce guide a pour but de vous accompagner au mieux sur des tâches courantes. Néanmoins, nous vous recommandons de faire appel à un prestataire spécialisé si vous éprouvez des difficultés ou des doutes concernant l’administration, l’utilisation ou la mise en place d’un service sur un serveur.

Prérequis

  • Disposer d'un cluster Nutanix dans votre compte OVHcloud.
  • Être connecté à votre espace client OVHcloud.
  • Être connecté sur le cluster via Prism Central.
  • Avoir des licences en BYOL pour Self Service (CALM). Ces licences ne sont pas disponibles avec les Pack Standard et Advanced proposés par OVHcloud.
  • Posséder un VLAN supplémentaire dans votre cluster qui distribue des adresses IP en IPAM et possède un accès à Internet.

Présentation

NCM Self Service (CALM) est une solution d'orchestration hétérogène qui permet l'automatisation et la gestion de déploiements, il fonctionne sur Prism Central et autorise l'administration de divers environnements (cluster Nutanix, serveur bare metal, etc...).

En pratique

Nous allons activer CALM, créer deux applications pour notre cluster Nutanix et les publier sur les portails d'applications qui sont :

  • Un serveur WEB Nginx sous Linux Ubuntu.
  • Un serveur WEB IIS sous Windows server.

Activation de CALM

Avant de déployer CALM, il faut configurer une adresse IP pour le ISCSI Data Services IP.

Depuis le tableau de bord Prism Central, cliquez sur votre Cluster dans la rubrique Cluster Quick Access.

00 Activate CALM 01

Dans Prism Element, cliquez en haut à gauche sur les paramètres de votre cluster.

00 Activate CALM 02

Saisissez une adresse IP dans ISCSI Data Services IP (elle ne doit pas être utilisée dans l'étendue du réseau d'administration) puis cliquez sur Save.

00 Activate CALM 03

Revenez sur Prism Central, allez dans le menu principal à gauche et cliquez sur Calm dans la rubrique Services

00 Activate CALM 04

Cliquez sur Enable App. Orchestration(Calm).

00 Activate CALM 05

Cochez la case Enable App Management et cliquez sur Save.

00 Activate CALM 06

L'activation de CALM est en cours.

00 Activate CALM 07

Un message d'erreur apparait pendant le déploiement de CALM. N'en tenez pas compte, quittez la fenêtre et patientez jusqu'a que l'installation soit terminée.

00 Activate CALM 08

Création d'un projet

Il est nécessaire de créer un projet pour déployer des applications.

Via le menu de Prism Central, cliquez sur Calm dans la rubrique Services.

01 create Project 01

Cliquez sur l'icône Projects dans la barre de menu verticale.

01 create Project 02

Cliquez sur le bouton + Create Project.

01 create Project 03

Saisissez le nom du projet dans Project Name et cliquez sur Create

01 create Project 04

Cliquez sur + Add infrastructure.

01 create Project 05

Cliquez sur Add infrastructure.

01 create Project 06

Sélectionnez NTNX_LOCAL_AZ dans accounts.

01 create Project 07

Cliquez sur Configure Resources.

01 create Project 08

Sélectionnez votre Cluster dans Select clusters to be added to this project et cliquez sur + Select VLANs.

01 create Project 09

Cochez le VLAN production et cliquez sur Confirm and Select Default.

01 create Project 10

Cliquez sur Confirm.

01 create Project 11

Cliquez sur Save.

01 create Project 12

Dans la barre d'onglets, rendez-vous sur Environments et cliquez sur Create Environment.

01 create Project 13

Saisissez un Nom dans Name et cliquez sur Next.

01 create Project 14

Cliquez sur Select Infrastucture.

01 create Project 15

Cliquez sur NTNX_LOCAL_AZ.

01 create Project 16

Cliquez sur Required for lauching blueprints from marketplace à droite de VM Configuration

01 create Project 17

Renseignez ces informations :

  • Cluster : sélection de votre cluster
  • vCPUs : 4
  • Core per vCPU : 1
  • Memory (GiB) : 4
  • Image : WS2022EN-SYSPREPED

L'image est générée à partir d'une VM WINDOWS Server 2022 sur laquelle on a appliqué un sysprep pour remettre la configuration par défaut. Lors d'une utilisation avec CALM, il est possible d'automatiser l'installation d'un OS Windows à partir de ce type d'image et de lui appliquer des paramètres stockés dans un fichier XML.

Faites ensuite défiler la fenêtre vers le bas.

01 create Project 18

Cliquez sur le bouton + à droite de NETWORK ADAPTERS (NICs).

01 create Project 19

Choisissez la carte réseau dans le VLAN production, cochez la case Check log-in upon create et faites défiler la fenêtre vers le haut.

01 create Project 20

Allez sur l'onglet Linux, saisissez ces informations :

  • Cluster : sélection de votre cluster
  • vCPUs : 4
  • Core per vCPU : 1
  • Memory (GiB) : 4
  • Image : jammy-server-cloudimg-amd64.img

L'image est préconfigurée pour l'utilisation de cloud-init d'UBUNTU, elle est téléchargeable sur Internet à cette adresse Ubuntu Cloud Images. CALM permet l'automatisation et la personnalisation d'une installation Linux au travers de ce type d'images et de fichiers de configuration YAML.

Faites ensuite défiler la fenêtre vers le bas.

01 create Project 21

Cliquez sur le bouton + à droite de NETWORK ADAPTERS (NICs).

01 create Project 22

Choisissez la carte réseau dans le VLAN production, cochez la case Check log-in upon create et cliquez sur Next.

01 create Project 23

Cliquez sur + Add Credential.

01 create Project 24

Cliquez sur + Add Credential.

01 create Project 25

Saisissez ces informations :

  • Name : WindowsAccount
  • Username : administrator
  • Password : mot de passe du compte administrator

Cliquez ensuite sur + Add Credential.

01 create Project 26

Saisissez ces informations :

  • Name : LinuxAccount
  • Username : administrator
  • Password : mot de passe du compte administrator

Cliquez ensuite sur Save Environment.

01 create Project 27

Cliquez sur Marketplace Usage.

02 add credential to environment 01

Cliquez sur Update.

02 add credential to environment 02

Cliquez sur Next.

02 add credential to environment 03

Cliquez sur Not ready for marketplace usage à droite de VM Configuration.

02 add credential to environment 04

Faites défiler la fenêtre vers le bas.

02 add credential to environment 05

Choisissez WindowsAccount dans Credential et faites défiler la fenêtre vers le haut.

02 add credential to environment 06

Cliquez sur l'onglet Linux dans Credential et faites défiler la fenêtre vers le bas.

02 add credential to environment 07

Choisissez LinuxAccount dans Credential et cliquez sur Next.

02 add credential to environment 08

Cliquez sur Save Environment.

02 add credential to environment 09

Votre environnement est prêt pour la création et la diffusion d'applications.

02 add credential to environment 10

Création d'applications

Nous allons créer deux applications, tester leur bon fonctionnement et les publier dans le marketplace du cluster.

Création de l'application WEB IIS sous Windows

Dans la barre verticale, choisissez Blueprints, faites défiler le menu Create Blueprint et cliquez sur sur Multi VM/Pod Blueprint.

03 Create Windows Blueprint 01

Choisissez le nom de votre plan dans Name et cliquez sur Proceed.

03 Create Windows Blueprint 02

Saisissez le nom dans Application Profile Name et cliquez sur Credentials en haut.

03 Create Windows Blueprint 03

Nous allons créer le compte Windows. Il sera utilisé à l'intérieur de sysprep en tant que variable, dans la configuration des tâches d'installation du plan et pour le test de connexion distant.

Cliquez sur bouton + à côté de Credentials.

03 Create Windows Blueprint 04

Saisissez ces informations :

  • Name : WindowsAccount
  • Username : administrator
  • Password : Mot de passe du compte administrator

Cliquez ensuite sur Done.

03 Create Windows Blueprint 05

Cliquez sur Back.

03 Create Windows Blueprint 06

Cliquez sur le bouton + dans la fenêtre de gauche à côté de Service.

03 Create Windows Blueprint 07

Saisissez ces informations :

  • Name : VM IIS
  • Operation System : Windows

Cliquez ensuite sur Clone from environment.

03 Create Windows Blueprint 08

Faites défiler la fenêtre de droite vers le bas, cochez Guest Customization, cliquez sur Sysprep puis copiez le contenu du fichier sysprep ci-dessous dans Script :

Ce fichier est généré à partir des outils Windows ADK téléchargeables via ce lien et a été ensuite adapté en rajoutant des variables venant de Nutanix CALM, comme @@{WindowsAccount.secret}@@ qui représente le mot de passe du compte 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>

03 Create Windows Blueprint 09

Continuez de faire défiler la fenêtre et vérifiez que Check log-in upon create est coché puis choisissez WindowsAccount dans Credential.

03 Create Windows Blueprint 10

Nous allons maintenant créer des tâches en Powershell qui s'exécuteront après l'installation et la personnalisation de Windows. Chacune de ces tâches s'exécute l'une après l'autre.

Dans la fenêtre de gauche, positionnez-vous sur Install en dessous de la catégorie Package et cliquez sur + Task.

03 Create Windows Blueprint 11

Renseignez ces informations :

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

Copiez ce contenu dans Script :

Install-WindowsFeature -name Web-Server -IncludeManagementTools

if ($?) {
exit 0
}

Cliquez ensuite sur + Task.

03 Create Windows Blueprint 12

Complétez ces informations :

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

Copiez ce contenu dans 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>"

Cliquez ensuite sur + Task.

03 Create Windows Blueprint 13

Saisissez ces informations :

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

Copiez ce contenu dans Script :

restart-computer -force

Cliquez ensuite sur Save en haut de la fenêtre.

03 Create Windows Blueprint 14

L'application est créée, cliquez sur Launch pour tester votre application.

03 Create Windows Blueprint 15

Saisissez un Nom dans Application Name et cliquez sur Deploy.

03 Create Windows Blueprint 16

Une nouvelle fenêtre apparait, cliquez sur Audit pour voir les étapes du déploiement de votre application. Lorsque le déploiement est terminé, vous pouvez voir en haut de la fenêtre l'indication RUNNING qui vous indique que l'application est déployée et active.

03 Create Windows Blueprint 17

Dans notre cas, le serveur IIS est actif et affiche un message sur l'adresse IP de la machine virtuelle en HTTP.

03 Create Windows Blueprint 18

Création de l'application WEB Nginx sous Linux Ubuntu

Nous allons créer une autre application sous Linux Ubuntu avec Nginx installé en tant que serveur WEB.

Rendez-vous sur l'icône Blueprints dans la barre de menu verticale de CALM, cliquez sur Multi VM/Pod Blueprint depuis le menu Create Blueprint.

04 create Linux blueprint 01

Saisissez le Nom dans Name et cliquez sur Proceed.

04 create Linux blueprint 02

Cliquez sur Credentials.

04 create Linux blueprint 03

Cliquez sur Credentials +.

04 create Linux blueprint 04

Saisissez ces informations concernant le compte d'administration Linux :

  • Name : LinuxAccount
  • Username : administrator
  • Password : Mot de passe du compte administrator

Cliquez ensuite sur Done.

04 create Linux blueprint 05

Cliquez sur Credentials +.

04 create Linux blueprint 06

Saisissez ces informations concernant le compte d'administration de Prism Central :

  • Name : PC_ADMIN
  • Username : admin
  • Password : Mot de passe de Prism Central

Ce mot de passe sert si vous utilisez des EScript (Scripts en python) dans vos tâches de déploiements, il sera utilisé lors de l'utilisation de l'API Prism Central. Dans cet exemple vous trouverez un EScript qui redimensionnera le stockage de la machine virtuelle Ubuntu NGINX.

Cliquez ensuite sur Done.

04 create Linux blueprint 07

Cliquez sur Back.

04 create Linux blueprint 08

Saisissez Linux Application dans Application Profile Name et cliquez sur + dans la fenêtre de gauche à droite de Service.

04 create Linux blueprint 09

Saisissez ces informations :

  • Service Name : Ubuntu
  • VM Name : Ubuntu NGINX

Cliquez ensuite sur Clone from environment et faites défiler la fenêtre de droite vers le bas.

04 create Linux blueprint 10

Cochez Guest Customization, copiez le contenu ci-dessous dans script.

#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

Il s'agit du fichier d'initialisation de Linux avec des images cloud-init. Il utilise les informations du compte LinuxAccount qui vient de CALM au travers de macro-instructions qui ont cette forme @@{LinuxAccount.username}@@ pour le compte utilisateur et @@{LinuxAccount.secret}@@ pour le mot de passe.

Faites défiler la fenêtre de droite vers le bas.

04 create Linux blueprint 11

Choisissez LinuxAccount dans Check log-in upon create.

04 create Linux blueprint 12

Dans la fenêtre de gauche, rendez-vous sur Install en dessous de Package et cliquez sur + Task.

04 create Linux blueprint 13

Saisissez les informations de la tâche de redimensionnement du disque de votre machine virtuelle.

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

Copiez ensuite le contenu de ce script :

Ce script utilise les mots de passe qui viennent de CALM au travers de variables qui ont cette forme @@{PC_ADMIN.username}@@ pour le compte utilisateur et @@{PC_ADMIN.secret}@@ pour le mot de passe.

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) 

Cliquez ensuite sur + Task.

04 create Linux blueprint 14

Renseignez ces informations sur la tâche de vérification des services sur Linux :

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

Copiez ensuite le contenu ci-dessous dans Script :

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

Cliquez sur + Task pour ajouter une nouvelle tâche à la suite.

04 create Linux blueprint 15

Renseignez ces informations sur la tâche de mise à jour UBUNTU:

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

Copiez ensuite le contenu ci-dessous dans Script :

sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y

Cliquez à nouveau sur + Task pour ajouter une nouvelle tâche à la suite.

04 create Linux blueprint 16

Renseignez ces informations sur la tâche d'installation de Nginx et Curl :

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

Copiez ensuite le contenu ci-dessous dans Script :

sudo DEBIAN_FRONTEND=noninteractive apt install nginx curl -y

Cliquez à nouveau sur + Task pour ajouter une nouvelle tâche à la suite.

04 create Linux blueprint 17

Saisissez ces informations concernant la dernière tâche de personnalisation de NGINX':

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

Copiez ensuite le contenu ci-dessous dans 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

Enfin, cliquez sur + Save pour finaliser la création de votre plan.

04 create Linux blueprint 18

Cliquez sur Launch pour tester votre plan.

04 create Linux blueprint 19

Saisissez le nom de votre déploiement de test dans Application Name et cliquez sur Deploy.

04 create Linux blueprint 20

Le déploiement se lance.

04 create Linux blueprint 21

Cliquez sur Audit pour voir l'avancement du déploiement.

04 create Linux blueprint 22

Une fois le déploiement terminé, vous pouvez accéder en HTTP à l'adresse IP de votre VM NGINX pour visualiser le message de bienvenue.

04 create Linux blueprint 23

Publication des applications

Allez sur l'icône Blueprints dans la barre verticale de CALM à gauche et cliquez sur le plan WS 2022 IIS.

05 publish Windows Application 01

Cliquez sur Publish.

05 publish Windows Application 02

Appliquez ces valeurs :

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

Cliquez ensuite à gauche sur Change.

05 publish Windows Application 03

Cliquez sur Upload from computer.

05 publish Windows Application 04

Choisissez l'image sur votre ordinateur et cliquez sur Ouvrir.

05 publish Windows Application 05

Nommez votre icône IIS et cliquez sur le bouton bleu de validation.

05 publish Windows Application 06

Cliquez sur Select & continue.

05 publish Windows Application 07

Cliquez sur Submit for approval.

05 publish Windows Application 08

L'application Windows est dans le marketplace en attente d'approbation.

Cliquez sur le plan UBUNTU 22 NGINX.

06 publish Windows Application 01

Cliquez sur Publish.

06 publish Windows Application 02

Appliquez ces valeurs :

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

Cliquez ensuite à gauche sur Change.

06 publish Windows Application 03

Cliquez sur Upload from computer.

06 publish Windows Application 04

Choisissez l'image sur votre ordinateur et cliquez sur Ouvrir.

06 publish Windows Application 05

Nommez votre icône NGINX et cliquez sur le bouton bleu de validation.

06 publish Windows Application 06

Sélectionnez votre icône et cliquez sur Select & continue.

06 publish Windows Application 07

Cliquez sur Submit for approval.

06 publish Windows Application 08

L'application Linux se trouve dans la marketplace en attente d'approbation.

Ajout des applications publiées sur le portail de CALM

Cliquez sur l'icône du Marketplace Manager, allez sur l'onglet Approval Pending, cochez l'application UBUNTU 22 NGINX et cliquez sur l'icône de validation à droite.

07 approve Application 02

Cochez l'application WS 2022 IIS et cliquez sur l'icône de validation à droite.

07 approve Application 02

Allez sur l'onglet Approved, cliquez sur la colonne Source pour afficher les applications locales en premier, cochez WS 2022 IIS. Sélectionnez en bas à droite NCM Self Service Project 01 et cliquez sur Apply.

08 ADD to market place 01

Cliquez sur Publish.

08 ADD to market place 02

L'application Windows est publiée.

08 ADD to market place 03

Cochez Ubuntu 22 NGINX, Sélectionnez à droite NCM Self Service Project 01 et cliquez sur Apply.

08 ADD to market place 04

Cliquez sur Publish.

08 ADD to market place 05

L'application Ubuntu est publiée.

08 ADD to market place 06

Cliquez sur l'icône Marketplace en haut de la barre de menu verticale à gauche et cliquez sur Get en dessous de l'application UBUNTU 22 NGINX.

08 ADD to market place 07

Cliquez sur Launch.

08 ADD to market place 08

Saisissez un Nom dans Application Name et cliquez sur Deploy pour déployer une application.

08 ADD to market place 09

Suppression d'une application déployée

La suppression d'une application déployée est aussi simple que son déploiement.

Cliquez sur l'icône des Blueprints à gauche et cochez une application déployée.

09 delete deployed APP 01

Via le menu Action cliquez sur Delete.

09 delete deployed APP 02

Cliquez sur Confirm.

09 delete deployed APP 03

Il est possible de suivre la suppression comme pour un déploiement.

09 delete deployed APP 04

L'application est maintenant supprimée.

09 delete deployed APP 05

Aller plus loin

Échangez avec notre communauté d'utilisateurs sur https://community.ovh.com/.

Nutanix NCM Self Service (CALM).


Cette documentation vous a-t-elle été utile ?

N’hésitez pas à nous proposer des suggestions d’amélioration afin de faire évoluer cette documentation.

Images, contenu, structure… N’hésitez pas à nous dire pourquoi afin de la faire évoluer ensemble !

Vos demandes d’assistance ne seront pas traitées par ce formulaire. Pour cela, utilisez le formulaire "Créer un ticket" .

Merci beaucoup pour votre aide ! Vos retours seront étudiés au plus vite par nos équipes..


Ces guides pourraient également vous intéresser...

OVHcloud Community

Accedez à votre espace communautaire. Posez des questions, recherchez des informations, publiez du contenu et interagissez avec d’autres membres d'OVHcloud Community.

Echanger sur OVHcloud Community

Conformément à la Directive 2006/112/CE modifiée, à partir du 01/01/2015, les prix TTC sont susceptibles de varier selon le pays de résidence du client
(par défaut les prix TTC affichés incluent la TVA française en vigueur).