Rechercher

2.4. Gestion des profils CLI

download PDF

Un fichier de configuration CLI vous permet de configurer différents profils, ou contextes, pour l'utilisation de la vue d'ensemble des outils CLI. Un contexte se compose de l'authentification de l'utilisateur et des informations du serveur OpenShift Container Platform associées à un nickname.

2.4.1. À propos des commutations entre profils CLI

Les contextes vous permettent de passer facilement d'un utilisateur à l'autre sur plusieurs serveurs OpenShift Container Platform, ou clusters, lorsque vous utilisez des opérations CLI. Les surnoms facilitent la gestion des configurations de la CLI en fournissant des références abrégées aux contextes, aux informations d'identification de l'utilisateur et aux détails du cluster. Après la première connexion à la CLI, OpenShift Container Platform crée un fichier ~/.kube/config s'il n'en existe pas déjà un. Au fur et à mesure que des détails d'authentification et de connexion sont fournis à la CLI, soit automatiquement au cours d'une opération oc login, soit en configurant manuellement les profils de la CLI, les informations mises à jour sont stockées dans le fichier de configuration :

Fichier de configuration CLI

apiVersion: v1
clusters: 1
- cluster:
    insecure-skip-tls-verify: true
    server: https://openshift1.example.com:8443
  name: openshift1.example.com:8443
- cluster:
    insecure-skip-tls-verify: true
    server: https://openshift2.example.com:8443
  name: openshift2.example.com:8443
contexts: 2
- context:
    cluster: openshift1.example.com:8443
    namespace: alice-project
    user: alice/openshift1.example.com:8443
  name: alice-project/openshift1.example.com:8443/alice
- context:
    cluster: openshift1.example.com:8443
    namespace: joe-project
    user: alice/openshift1.example.com:8443
  name: joe-project/openshift1/alice
current-context: joe-project/openshift1.example.com:8443/alice 3
kind: Config
preferences: {}
users: 4
- name: alice/openshift1.example.com:8443
  user:
    token: xZHd2piv5_9vQrg-SKXRJ2Dsl9SceNJdhNTljEKTb8k

1
La section clusters définit les détails de connexion pour les clusters OpenShift Container Platform, y compris l'adresse de leur serveur principal. Dans cet exemple, un cluster est surnommé openshift1.example.com:8443 et un autre openshift2.example.com:8443.
2
Cette section contexts définit deux contextes : l'un surnommé alice-project/openshift1.example.com:8443/alice, qui utilise le projet alice-project, le groupe openshift1.example.com:8443 et l'utilisateur alice, et l'autre surnommé joe-project/openshift1.example.com:8443/alice, qui utilise le projet joe-project, le groupe openshift1.example.com:8443 et l'utilisateur alice.
3
Le paramètre current-context indique que le contexte joe-project/openshift1.example.com:8443/alice est actuellement utilisé, ce qui permet à l'utilisateur alice de travailler dans le projet joe-project sur le cluster openshift1.example.com:8443.
4
La section users définit les informations d'identification de l'utilisateur. Dans cet exemple, le pseudo de l'utilisateur alice/openshift1.example.com:8443 utilise un jeton d'accès.

L'interface de programmation peut prendre en charge plusieurs fichiers de configuration qui sont chargés au moment de l'exécution et fusionnés avec toutes les options de remplacement spécifiées dans la ligne de commande. Une fois connecté, vous pouvez utiliser la commande oc status ou oc project pour vérifier votre environnement de travail actuel :

Vérifier l'environnement de travail actuel

$ oc status

Exemple de sortie

oc status
In project Joe's Project (joe-project)

service database (172.30.43.12:5434 -> 3306)
  database deploys docker.io/openshift/mysql-55-centos7:latest
    #1 deployed 25 minutes ago - 1 pod

service frontend (172.30.159.137:5432 -> 8080)
  frontend deploys origin-ruby-sample:latest <-
    builds https://github.com/openshift/ruby-hello-world with joe-project/ruby-20-centos7:latest
    #1 deployed 22 minutes ago - 2 pods

To see more information about a service or deployment, use 'oc describe service <name>' or 'oc describe dc <name>'.
You can use 'oc get all' to see lists of each of the types described in this example.

Liste du projet en cours

$ oc project

Exemple de sortie

Using project "joe-project" from context named "joe-project/openshift1.example.com:8443/alice" on server "https://openshift1.example.com:8443".

Vous pouvez exécuter à nouveau la commande oc login et fournir les informations requises au cours du processus interactif, afin de vous connecter en utilisant toute autre combinaison d'informations d'identification de l'utilisateur et de détails sur le cluster. Un contexte est créé sur la base des informations fournies s'il n'en existe pas déjà un. Si vous êtes déjà connecté et que vous souhaitez passer à un autre projet auquel l'utilisateur actuel a déjà accès, utilisez la commande oc project et entrez le nom du projet :

$ oc project alice-project

Exemple de sortie

Now using project "alice-project" on server "https://openshift1.example.com:8443".

À tout moment, vous pouvez utiliser la commande oc config view pour afficher votre configuration CLI actuelle, comme le montre la sortie. D'autres commandes de configuration de l'ITC sont également disponibles pour une utilisation plus avancée.

Note

Si vous avez accès aux informations d'identification de l'administrateur mais que vous n'êtes plus connecté en tant qu'utilisateur du système par défaut system:admin, vous pouvez vous reconnecter à tout moment en tant qu'utilisateur, à condition que les informations d'identification soient toujours présentes dans le fichier de configuration de l'interface de programmation. La commande suivante permet de se connecter et de passer au projet par défaut :

$ oc login -u system:admin -n default

2.4.2. Configuration manuelle des profils CLI

Note

Cette section traite de l'utilisation plus avancée des configurations de l'interface de programmation. Dans la plupart des cas, vous pouvez utiliser les commandes oc login et oc project pour vous connecter et passer d'un contexte à l'autre et d'un projet à l'autre.

Si vous souhaitez configurer manuellement vos fichiers de configuration CLI, vous pouvez utiliser la commande oc config au lieu de modifier directement les fichiers. La commande oc config comprend un certain nombre de sous-commandes utiles à cette fin :

Tableau 2.2. Sous-commandes de configuration du CLI
Sous-commandeUtilisation

set-cluster

Définit une entrée de cluster dans le fichier de configuration CLI. Si le pseudonyme de cluster référencé existe déjà, les informations spécifiées sont fusionnées.

$ oc config set-cluster <cluster_nickname> [--server=<master_ip_or_fqdn>]
[--certificate-authority=<path/to/certificate/authority>]
[--api-version=<apiversion>] [--insecure-skip-tls-verify=true]

set-context

Définit une entrée de contexte dans le fichier de configuration de la CLI. Si le pseudonyme de contexte référencé existe déjà, les informations spécifiées sont fusionnées.

$ oc config set-context <context_nickname> [--cluster=<cluster_nickname>]
[--user=<user_nickname>] [--namespace=<namespace>]

use-context

Définit le contexte actuel en utilisant le pseudonyme de contexte spécifié.

oc config use-context <context_nickname>

set

Définit une valeur individuelle dans le fichier de configuration CLI.

oc config set <property_name> <property_value> $ oc config set <property_name>

<property_name> est un nom délimité par des points où chaque jeton représente soit un nom d'attribut, soit une clé de carte. <property_value> est la nouvelle valeur à définir.

unset

Annule les valeurs individuelles dans le fichier de configuration CLI.

oc config unset <nom_de_la_propriété>

Le site <property_name> est un nom délimité par des points où chaque élément représente un nom d'attribut ou une clé de carte.

view

Affiche la configuration CLI fusionnée en cours d'utilisation.

$ oc config view

Affiche le résultat du fichier de configuration CLI spécifié.

oc config view --config=<specific_filename> $ oc config view --config=<specific_filename>

Exemple d'utilisation

  • Connectez-vous en tant qu'utilisateur utilisant un jeton d'accès. Ce jeton est utilisé par l'utilisateur alice:
$ oc login https://openshift1.example.com --token=ns7yVhuRNpDM9cgzfhhxQ7bM5s7N2ZVrkZepSRf4LC0
  • Affichez l'entrée de la grappe créée automatiquement :
$ oc config view

Exemple de sortie

apiVersion: v1
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: https://openshift1.example.com
  name: openshift1-example-com
contexts:
- context:
    cluster: openshift1-example-com
    namespace: default
    user: alice/openshift1-example-com
  name: default/openshift1-example-com/alice
current-context: default/openshift1-example-com/alice
kind: Config
preferences: {}
users:
- name: alice/openshift1.example.com
  user:
    token: ns7yVhuRNpDM9cgzfhhxQ7bM5s7N2ZVrkZepSRf4LC0

  • Mettre à jour le contexte actuel pour que les utilisateurs se connectent à l'espace de noms souhaité :
$ oc config set-context `oc config current-context` --namespace=<project_name>
  • Examiner le contexte actuel pour confirmer que les changements sont mis en œuvre :
$ oc whoami -c

Toutes les opérations CLI suivantes utilisent le nouveau contexte, sauf indication contraire dans les options CLI ou jusqu'à ce que le contexte soit modifié.

2.4.3. Charger et fusionner des règles

Vous pouvez suivre ces règles lorsque vous effectuez des opérations CLI pour l'ordre de chargement et de fusion de la configuration CLI :

  • Les fichiers de configuration CLI sont récupérés à partir de votre poste de travail, en utilisant la hiérarchie et les règles de fusion suivantes :

    • Si l'option --config est activée, seul ce fichier est chargé. L'indicateur n'est activé qu'une seule fois et aucune fusion n'a lieu.
    • Si la variable d'environnement $KUBECONFIG est définie, elle est utilisée. La variable peut être une liste de chemins, et si c'est le cas, les chemins sont fusionnés. Lorsqu'une valeur est modifiée, elle l'est dans le fichier qui définit la strophe. Lorsqu'une valeur est créée, elle l'est dans le premier fichier existant. Si aucun fichier de la chaîne n'existe, le dernier fichier de la liste est créé.
    • Dans le cas contraire, le fichier ~/.kube/config est utilisé et aucune fusion n'a lieu.
  • Le contexte à utiliser est déterminé en fonction de la première correspondance dans le flux suivant :

    • La valeur de l'option --context.
    • La valeur current-context du fichier de configuration CLI.
    • Une valeur vide est autorisée à ce stade.
  • L'utilisateur et la grappe à utiliser sont déterminés. À ce stade, vous pouvez avoir ou non un contexte ; ils sont construits sur la base de la première correspondance dans le flux suivant, qui est exécuté une fois pour l'utilisateur et une fois pour la grappe :

    • La valeur de l'option --user pour le nom de l'utilisateur et --cluster pour le nom de la grappe.
    • Si l'option --context est présente, la valeur du contexte est utilisée.
    • Une valeur vide est autorisée à ce stade.
  • Les informations sur les clusters à utiliser sont déterminées. À ce stade, vous pouvez disposer ou non d'informations sur les grappes. Chaque élément de l'information sur la grappe est construit sur la base de la première correspondance dans le flux suivant :

    • Les valeurs de l'une des options de ligne de commande suivantes :

      • --server,
      • --api-version
      • --certificate-authority
      • --insecure-skip-tls-verify
    • Si des informations sur le cluster et une valeur pour l'attribut sont présentes, utilisez-les.
    • Si vous n'avez pas d'emplacement de serveur, il y a une erreur.
  • Les informations sur l'utilisateur à utiliser sont déterminées. Les utilisateurs sont construits selon les mêmes règles que les clusters, sauf qu'il ne peut y avoir qu'une seule technique d'authentification par utilisateur ; des techniques contradictoires entraînent l'échec de l'opération. Les options de la ligne de commande sont prioritaires sur les valeurs du fichier de configuration. Les options de ligne de commande valides sont les suivantes :

    • --auth-path
    • --client-certificate
    • --client-key
    • --token
  • Pour toute information manquante, des valeurs par défaut sont utilisées et des invites sont données pour obtenir des informations supplémentaires.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.