Gestion des ressources

Une ressource Une instance physique ou logique qui peut être provisionnée ou réservée.Les ressources peuvent inclure, par exemple, le stockage, les processeurs, la mémoire, les bases de données, les clusters et les machines virtuelles. est tout ce que vous pouvez créer à partir du catalogue et qui est géré par et contenu dans un groupe de ressources. Vous pouvez créer et gérer des ressources en accédant à votre liste des ressources dans la console IBM Cloud® ou en utilisant l'interface de ligne de commande (CLI).

Les services gérés à l'aide de IBM Cloud Identity and Access Management(IAM)contrôle d'accès et appartenant à un groupe de ressources présentent plusieurs avantages. Les groupes de ressources n'étant pas délimités par l'emplacement, vous pouvez créer des applications et des services à partir de différents emplacements dans le même groupe de ressources. Vous pouvez également utiliser le contrôle d'accès à granularité fine jusqu'au niveau d'une instance individuelle dans un groupe de ressources.

Accès requis pour la création de ressources

Pour pouvoir créer des ressources à partir du catalogue et les affecter à un groupe de ressources, les utilisateurs de votre compte doivent disposer de deux règle d'accès :

  • Une règle avec rôle Afficheur ou supérieur appliquée au groupe de ressources lui-même
  • Une règle avec rôle Editeur ou supérieur appliquée au service du compte

Création de ressources dans la console

Utilisez la procédure suivante pour créer une ressource dans la console :

  1. A partir du tableau de bord, cliquez sur Afficher les ressources dans le widget récapitulant les ressources.
  2. Cliquez sur Créer une ressource. Le catalogue s'affiche. Vous pouvez rechercher les produits ou les filtrer en fonction d'une catégorie spécifique, d'un fournisseur, d'un plan tarifaire, d'un type de conformité ou d'un type de version. Les applications, les instances de service, les clusters de conteneurs, les volumes de stockage, les serveurs virtuels et les logiciels sont des exemples de ressource.

La ressource créée s'affiche dans la liste des ressources de la page Liste des ressources.

Création de ressources à l'aide de l'interface de ligne de commande

Vous pouvez créer une ressource à l'aide de l'interface de ligne de commande IBM Cloud®. Pour plus d'informations sur l'utilisation des ressources, voir Utilisation de ressources et de groupes de ressources.

  1. Connectez-vous et sélectionnez le compte.
    ibmcloud login
    
  2. Créez une organisation en exécutant la commande ibmcloud resource service-instance-create.

Dans cette commande, NAME est le nom de l'instance de service, SERVICE_NAME or SERVICE_ID est le nom ou l'ID du service, SERVICE_PLAN_NAME or SERVICE_PLAN_ID est le nom ou l'ID du plan de service et LOCATION est l'environnement ou l'emplacement cible où créer l'instance de service.

ibmcloud resource service-instance-create NAME (SERVICE_NAME | SERVICE_ID) SERVICE_PLAN_NAME LOCATION [-d, --deployment DEPLOYMENT_NAME] [-p, --parameters @JSON_FILE | JSON_STRING ] [-g RESOURCE_GROUP] [--service-endpoints SERVICE_ENDPOINTS_TYPE] [--allow-cleanup] [--lock]

Pour répertorier les services, utilisez la commande ibmcloud catalog service-marketplace.

Par exemple, la commande suivante crée une instance de service nommée my-service-instance et utilise le plan de service test- service-plan du service test-service à l'emplacement eu-gb:

ibmcloud resource service-instance-create my-service-instance test-service test-service-plan eu-gb

Création de nouvelles instances de ressource à l'aide de l'API

Vous pouvez créer une nouvelle instance de ressource à l'aide d'un programme en appelant l'API du contrôleur de ressources, comme indiqué dans l'exemple de demande suivant. Pour plus d'informations sur l'API, voir l'API du contrôleur de ressources.

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "bluemix-global",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "0be5ad401ae913d8ff665d92680664ed",
    "tags": [
      "my-tag"
    ]
  }'
CreateResourceInstanceOptions createResourceInstanceOptions = new CreateResourceInstanceOptions.Builder()
  .name(resourceInstanceName)
  .target(targetRegion)
  .resourceGroup(resourceGroup)
  .resourcePlanId(resourcePlanId)
  .build();
Response<ResourceInstance> response = service.createResourceInstance(createResourceInstanceOptions).execute();
ResourceInstance resourceInstance = response.getResult();
System.out.printf("createResourceInstance() response:\n%s\n", resourceInstance.toString());
const params = {
  name: resourceInstanceName,
  target: targetRegion,
  resourceGroup: resourceGroupGuid,
  resourcePlanId: resourcePlanId,
};
resourceControllerService.createResourceInstance(params)
  .then(res => {
    instanceGuid = res.result.guid;
    console.log('createResourceInstance() response:\n' + JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
   });
resource_instance = resource_controller_service.create_resource_instance(
    name=resource_instance_name,
    target=target_region,
    resource_group=resource_group,
    resource_plan_id=resource_plan_id
).get_result()
print('\ncreate_resource_instance() response:\n',
      json.dumps(resource_instance, indent=2))
createResourceInstanceOptions := resourceControllerService.NewCreateResourceInstanceOptions(
  resourceInstanceName,
  targetRegion,
  resourceGroup,
  resourcePlanID,
)
resourceInstance, response, err := resourceControllerService.CreateResourceInstance(createResourceInstanceOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(resourceInstance, "", "  ")
fmt.Printf("\nCreateResourceInstance() response:\n%s\n", string(b))

Installation du logiciel à l'aide de l'API

Vous ne pouvez installer les logiciels que par le biais de la console ou de l'interface de ligne de commande. Pour afficher les étapes, passez aux instructions de l'interface utilisateur ou de l'interface de ligne de commande.

Création d'instances de ressource à l'aide de Terraform

Avant de pouvoir créer de nouvelles instances de ressources à l'aide de Terraform, assurez-vous d'avoir effectué les opérations suivantes :

  • Installez le CLI Terraform et configurez le plug-in IBM Cloud Provider pour Terraform. Pour plus d'informations, voir le tutoriel Getting started with Terraform sur IBM Cloud®. Ce plug-in résume les API IBM Cloud utilisées pour effectuer cette tâche.

  • Créez un fichier de configuration Terraform nommé main.tf. Dans ce fichier, vous définissez les ressources en utilisant le langage de configuration HashiCorp. Pour plus d'informations, voir la documentation de Terraform.

Vous pouvez créer des instances de ressource à l'aide de Terraform.

  1. Créez un argument dans votre fichier main.tf. L'exemple ci-après crée une instance de ressource à l'aide de la ressource ibm_resource_instance, name représentant un nom descriptif unique permettant d'identifier l'instance de ressource.

    data "ibm_resource_group" "group" {
    name = "test"
    }
    resource "ibm_resource_instance" "resource_instance" {
     name              = "test"
     service           = "cloud-object-storage"
     plan              = "lite"
     location          = "global"
     resource_group_id = data.ibm_resource_group.group.id
     tags              = ["tag1", "tag2"]
     //User can increase timeouts
     timeouts {
     create = "15m"
     update = "15m"
     delete = "15m"
     }
    }
    

    Vous pouvez spécifier des étiquettes (tags) associées à l'instance de ressource. Pour plus d'informations, voir les détails de la référence des arguments sur la page Terraform Resource Management.

  2. Une fois que vous avez fini de construire votre fichier de configuration, initialisez le CLI Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.

    terraform init
    
  3. Fournir les ressources à partir du fichier main.tf. Pour plus d'informations, voir Provisionnement de l'infrastructure avec Terraform.

    1. Exécutez terraform plan pour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.
      terraform plan
      
    2. Exécutez le site terraform apply pour créer les ressources définies dans le plan.
      terraform apply
      

Recherche de ressources

Vous pouvez rechercher des ressources à tout emplacement de la console IBM Cloud®. Entrez la ressource ou l'étiquette dans la zone de recherche de la barre de menus de la console. Vous pouvez également utiliser l'interface de ligne de commande (CLI) IBM Cloud pour effectuer une recherche dans vos ressources. L'interface de ligne de commande recherche des instances de service et des applications réparties dans différents emplacements et centres de données. L'API Global Search and Tagging - Search prend également en charge la recherche de ressources.

Affinage de vos résultats de recherche

Afficher tous les résultats de catalogue
Cette option permet d'afficher une recherche de catalogue filtrée. Les cinq premiers résultats s'affichent par nom. Si vous souhaitez avoir un critère de recherche plus détaillé pour les entrées de catalogue, comme la recherche de la description, vous pouvez cliquer sur ce lien et obtenir une vue des résultats de catalogue filtrés. Cette option vous permet de trouver plus rapidement les offres que vous souhaitez créer. Elle s'affiche si elle correspond à un résultat de catalogue. Cette zone ne s'affiche pas si votre requête de recherche commence par tag:.
Rechercher dans les cas de support
Cette option permet de filtrer en fonction de vos cas de support ouverts au sein de la plateforme, notamment les ressources d'infrastructure. Elle s'affiche à la fin de la recherche, notamment si vous effectuez une recherche en utilisant tag:.
Rechercher dans la documentation IBM Cloud
Cette option permet d'obtenir une recherche filtrée de la documentation. Elle s'affiche à la fin de la recherche, notamment si vous effectuez une recherche par étiquette (tag:).

Appuyez sur la touche Barre oblique (/) pour positionner votre curseur dans la zone de recherche.

Recherche avec l'interface de ligne de commande

Vous pouvez également effectuer des recherches dans toutes vos ressources en utilisant la syntaxe de requête Lucene, avec une seule commande en utilisant le CLI IBM Cloud. Les attributs de ressources les plus couramment utilisés que vous pouvez interroger et récupérer sont les suivants :

name
Nom défini par l'utilisateur de la ressource.
region
Lieu géographique où la ressource est créée. Les valeurs autorisées sont, par exemple, us-south, us-east, au-syd, eu-gb, eu-de et jp-tok.
service_name
Le nom du service tel qu'il apparaît dans le segment service-name du CRN de la ressource. Vous pouvez obtenir les valeurs autorisées dans la colonne Nom de la sortie de ibmcloud catalog service-marketplace.
resource_group_id
L'identifiant du groupe de ressources de la ressource.
type
Le type de ressource tel qu'il apparaît dans le segment resource-type du CRN de la ressource, s'il existe. Les valeurs dépendent du service propriétaire. Exemples de valeurs : k8-cluster pour le service containers-kubernetes ; k8-location et k8-connector pour le service satellite ; resource-group pour le service resource-controller ; vpc, volume, vpn, load-balancer, security-group, pour le service is ; workspace pour le service schematics.
creation_date
Date de création de la ressource.
modification_date
Date de dernière modification de la ressource.
tags
Les balises attachées à la ressource.
access_tags
Les étiquettes de gestion de l'accès attachées à la ressource.
service_tags
Les étiquettes de service attachées à la ressource.
tagReferences.tag.name
Etiquettes qui ont été associées à la ressource d'infrastructure classique. Nécessite que vous indiquiez le paramètre -p classic-infrastructure.
_objectType:
Type d'objet de la ressource d'infrastructure classique. Les valeurs autorisées sont : SoftLayer_Virtual_DedicatedHost, SoftLayer_Hardware, SoftLayer_Network_Application_Delivery_Controller, SoftLayer_Network_Subnet_IpAddress, SoftLayer_Network_Vlan, SoftLayer_Network_Vlan_Firewall, SoftLayer_Virtual_Guest. Vous devez indiquer le paramètre -p classic-infrastructure.

tagReferences.tag.name et _objectType ne sont valables que si l'on utilise l'indicateur -p classic-infrastructure.

L'utilisation de -p classic-infrastructure for _objectType SoftLayer_Virtual_DedicatedHost, SoftLayer_Network_Vlan_Firewall, SoftLayer_Virtual_Guest et SoftLayer_Hardware (pour les serveurs bare metal d'infrastructure classique uniquement) est obsolète puisque ces ressources peuvent désormais être recherchées comme toutes les autres ressources d'infrastructure non classique.

Recherche de ressources d'infrastructure classique

Pour rechercher des ressources d'infrastructure classiques, la chaîne de caractères doit être placée entre guillemets doubles afin d'obtenir une correspondance exacte avec la chaîne de caractères demandée. En outre, si vous saisissez un terme de recherche comprenant un trait d'union (-) et que vous n'entourez pas la chaîne d'un guillemet double, la recherche ne renverra pas une correspondance exacte. Les traits d'union au sein de la chaîne servent à scinder le terme en plusieurs chaînes.

Exemples de recherche

Les exemples suivants peuvent vous aider lors de la recherche de ressources de compte. Lorsque le paramètre -p classic-infrastucture n'est pas spécifié, la recherche couvre toutes les ressources à l'exception des ressources d'infrastructure classique avec _objectType SoftLayer_Network_Application_Delivery_Controller, SoftLayer_Network_Subnet_IpAddress ou SoftLayer_Hardware (sauf serveurs bare metal).

  • Pour rechercher toutes vos ressources nommées ABC, entrez la commande suivante :

    ibmcloud resource search ‘name:ABC’
    
  • Pour rechercher toutes les instances de service du concentrateur de messages, entrez la commande suivante :

    ibmcloud resource search 'service_name:messagehub'
    
  • Pour rechercher des ressources qui ne font pas partie de l'infrastructure classique et qui ont été créées entre le 16 et le 20 mai 2020, entrez la commande suivante :

    ibmcloud resource search 'creation_date:["2020-05-16T00:00:00Z" TO "2020-05-20T00:00:00Z"]'
    
  • Pour rechercher des ressources qui ne font pas partie de l'infrastructure classique et dont le nom commence par "my", classées par type, entrez la commande suivante :

    ibmcloud resource search 'name:my*' -s type
    
  • Pour rechercher des ressources qui ne sont pas des infrastructures classiques et qui ont été étiquetées avec my-tag, entrez la commande suivante :

    ibmcloud resource search 'tags:my-tag'
    
  • Pour rechercher tous les serveurs virtuels d'infrastructure classique dont le nom de domaine complet est MyVM, entrez la commande suivante :

    ibmcloud resource search “doc.fullyQualifiedDomainName:MyVM AND service_name:virtual-server"
    
  • Pour rechercher toutes les ressources de l'infrastructure classique qui ont été étiquetées avec my-tag, entrez la commande suivante :

    ibmcloud resource search 'tagReferences.tag.name:my-tag' -p classic-infrastructure
    
  • Pour rechercher toutes les infrastructures classiques de type SoftLayer_Network_Vlan, entrez la commande suivante :

    ibmcloud resource search '_objectType:SoftLayer_Network_Vlan' -p classic-infrastructure
    

Rechercher à l'aide de l'API

Pour rechercher des ressources, appelez l'API Global Search and Tagging - Search. L'exemple suivant recherche toutes les ressources associées à l'étiquette "project:myproject".

Utilisez SearchOptions.Builder pour créer un objet SearchOptions qui contient les valeurs de paramètre de la méthode search.

Instanciez la structure SearchOptions et définissez les zones pour fournir des valeurs de paramètres pour la méthode Search.

curl -X POST -H "Authorization: {iam_token}" -H "Accept: application/json" -H "Content-Type: application/json" -d '{"query": "tags:project\\:myproject OR access_tags:project\\:myproject", "fields": ["*"]}' "api.global-search-tagging.cloud.ibm.com/v3/resources/search"
SearchOptions searchOptions = new SearchOptions.Builder()
  .query("GST-sdk-*")
  .fields(new java.util.ArrayList<String>(java.util.Arrays.asList("*")))
  .searchCursor(searchCursor)
  .build();

Response<ScanResult> response = service.search(searchOptions).execute();
ScanResult scanResult = response.getResult();

System.out.println(scanResult);
const params = {
  query: 'GST-sdk-*',
  fields: ['*'],
  searchCursor: searchCursor,
};

globalSearchService.search(params)
  .then(res => {
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
response = global_search_service.search(query='GST-sdk-*',
                    fields=['*'])
scan_result = response.get_result()

print(json.dumps(scan_result, indent=2))
searchOptions := globalSearchService.NewSearchOptions()
searchOptions.SetLimit(10)
searchOptions.SetQuery("GST-sdk-*")
searchOptions.SetFields([]string{"*"})

scanResult, response, err := globalSearchService.Search(searchOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(scanResult, "", "  ")
fmt.Println(string(b))

Suppression de ressources

Lorsque vous n'avez plus besoin d'une ressource dans votre compte ou si un utilisateur de vote compte a créé une ressource et vous ne souhaitez pas qu'il l'utilise, vous pouvez supprimer l'instance de votre compte.

Suppression de ressources dans la console

Vous pouvez supprimer une ressource dans la console en procédant comme suit :

  1. A partir du tableau de bord, cliquez sur Afficher les ressources dans le widget récapitulant les ressources.
  2. Développez les sections et localisez l'instance de service que vous souhaitez supprimer.
  3. Cliquez sur l'icône Actions Icône Actions > Supprimer pour la ligne.

Suppression de ressources à l'aide de l'interface de ligne de commande

Vous pouvez supprimer une ressource à l'aide de l'interface de ligne de commande IBM Cloud®. Pour plus d'informations sur la gestion des ressources IBM Cloud, voir Utilisation de ressources et de groupes de ressources.

  1. Connectez-vous et sélectionnez le compte.

    ibmcloud login
    
  2. Supprimez une instance de service en exécutant la commande ibmcloud resource service-instance-delete, où NAME est le nom de l'instance de service, ID exclus et ID l'ID de l'instance de service, NAME exclus.

    ibmcloud resource service-instance-delete (NAME|ID) [-f, --force] [--recursive]
    

    Par exemple, la commande suivante supprime une instance de service de ressource nommée my-service-instance :

    ibmcloud resource service-instance-delete my-service-instance
    

Suppression d'instances de ressource à l'aide de l'API

Vous pouvez supprimer une instance de ressource à l'aide d'un programme en appelant l'API du contrôleur de ressources, comme indiqué dans l'exemple de demande suivant. Pour plus d'informations sur l'API, voir l'API du contrôleur de ressources.

curl -X DELETE \
https://resource-controller.cloud.ibm.com/v2/resource_instances/8d7af921-b136-4078-9666-081bd8470d94 \
  -H 'Authorization: Bearer <>'
DeleteResourceInstanceOptions deleteResourceInstanceOptions = new DeleteResourceInstanceOptions.Builder()
  .id(instanceGuid)
  .recursive(false)
  .build();

Response<Void> response = service.deleteResourceInstance(deleteResourceInstanceOptions).execute();

System.out.printf("deleteResourceInstance() response status code: %d\n", response.getStatusCode());
const params = {
  id: instanceGuid,
  recursive: false,
};

resourceControllerService.deleteResourceInstance(params)
  .then(res => {
    console.log('deleteResourceInstance() response status code: ' + res.status);
  })
  .catch(err => {
    console.warn(err)
   });
response = resource_controller_service.delete_resource_instance(
    id=instance_guid,
    recursive=False
)

print('\ndelete_resource_instance() response status code: ',
      response.get_status_code())
deleteResourceInstanceOptions := resourceControllerService.NewDeleteResourceInstanceOptions(
  instanceGUID,
)
deleteResourceInstanceOptions.SetRecursive(false)

response, err := resourceControllerService.DeleteResourceInstance(deleteResourceInstanceOptions)
if err != nil {
  panic(err)
}
fmt.Printf("\nDeleteResourceInstance() response status code: %d\n", response.StatusCode)

Suppression d'instances de ressource à l'aide de Terraform

Suivez les étapes suivantes pour supprimer des instances de ressources à l'aide de Terraform.

  1. Vous pouvez supprimer une instance de ressource en supprimant le bloc de code ci-après de votre fichier terraform. Vous devez avoir créé le site resource_instance à l'aide du fichier terraform.

    data "ibm_resource_group" "group" {
    name = "test"
    }
    resource "ibm_resource_instance" "resource_instance" {
     name              = "test"
     service           = "cloud-object-storage"
     plan              = "lite"
     location          = "global"
     resource_group_id = data.ibm_resource_group.group.id
     tags              = ["tag1", "tag2"]
     //User can increase timeouts
     timeouts {
     create = "15m"
     update = "15m"
     delete = "15m"
     }
    }
    

    Pour plus d'informations, voir les détails de la référence des arguments sur la page Terraform Resource Management.

  2. Une fois que vous avez fini de construire votre fichier de configuration, initialisez le CLI Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.

    terraform init
    
  3. Fournir les ressources à partir du fichier main.tf. Pour plus d'informations, voir Provisionnement de l'infrastructure avec Terraform.

    1. Exécutez terraform plan pour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.

      terraform plan
      
    2. Exécutez le site terraform apply pour créer les ressources définies dans le plan.

      terraform apply
      

Vous pouvez également supprimer une instance de ressource en exécutant la commande suivante : terraform destroy:

terraform destroy -target RESOURCE_TYPE.NAME -target RESOURCE_TYPE2.NAME