Als VMware Aria Automation-Cloud-Administrator können Sie eine Befehlszeilenschnittstelle verwenden, um den CCI-Zugriff (Cloud Consumption Interface) zu aktivieren und Governance-Konstrukte zu konfigurieren. Die Befehlszeilenschnittstelle verwendet das Kubernetes-Befehlszeilentool, das auch als „kubectl“ bezeichnet wird.

Eine vollständige Liste der Aktionen, die Sie mithilfe der CLI durchführen können, finden Sie unter Kubernetes-API-Referenz für die Cloud Consumption Interface.

Voraussetzungen

  • Stellen Sie sicher, dass ein Supervisor-Cluster auf einer vCenter-Instanz aktiviert und bei VMware Aria Automation registriert ist.
  • Sie müssen mindestens Organisationsmitglied in VMware Aria Automation mit der Administrator-Dienstrolle für Automation Assembler oder Automation Service Broker sein.
  • Stellen Sie sicher, dass Sie über Folgendes verfügen:
    • Das CCI kubectl-Plug-In wurde heruntergeladen.
    • Ein API-Token für den Admin-Benutzer wurde abgerufen, oder eine Variable zum Speichern des Benutzerkennworts wurde definiert.
    • Ihr Token wurde mit der Option -t verwendet, oder Ihre Administratoranmeldedaten wurden mit der Option -u zur Anmeldung beim CCI-Server verwendet, und der Standardkontext wurde in CCI geändert.
  • Stellen Sie sicher, dass ein vCenter-Konto in Automation Assembler hinzugefügt haben.

Weitere Informationen zu diesen Voraussetzungen finden Sie unter Einrichtung und Konfiguration der Cloud Consumption Interface

Schritt 1: Erstellen eines Projekts und einer Projektrollenbindung

Zum Gruppieren von Automation-Benutzern und Festlegen von Zugriff auf Infrastrukturressourcen erstellen Sie ein Projekt und eine Projektrollenbindung.

Hinweis: Informationen zum Erstellen von Projekten und Projektrollenbindungen mithilfe der Benutzeroberfläche finden Sie unter Vorgehensweise zum Hinzufügen eines Projekts für mein Automation Assembler-Entwicklungsteam..
  1. Erstellen Sie ein Projekt.
    kubectl create -f project.yaml
    Beispieldatei project.yaml.
    apiVersion: project.cci.vmware.com/v1alpha1
    kind: Project
    metadata:
      name: <project_name>
    spec:
      description: <description_of_project>
      sharedResources: true
    
  2. Erstellen Sie eine Projektrollenbindung, um Benutzern oder Gruppen innerhalb eines erstellten Projekts Rollen zuzuweisen.
    kubectl create -f projectrolebinding.yaml
    Mithilfe der folgenden Beispieldatei projectrolebinding.yaml wird ein Benutzer mit der Projektrolle admin hinzugefügt. Zu den Projektrollenwerten gehören: admin, anzeigen oder bearbeiten.
    apiVersion: authorization.cci.vmware.com/v1alpha1
    kind: ProjectRoleBinding
    metadata:
      name: cci:user:vmware.com:<user_alias>
      namespace: <project_name>
    roleRef:
      apiGroup: authorization.cci.vmware.com
      kind: ProjectRole
      name: admin
    subjects:
    - kind: User
      name: <[email protected]>

Schritt 2: Erstellen einer Region

Sie erstellen eine Region, damit Sie dieser Region Supervisoren zuweisen können.

kubectl create -f region.yaml
Beispieldatei region.yaml.
apiVersion: topology.cci.vmware.com/v1alpha1
kind: Region
metadata:
  name: <region_name>
spec:
  description: <description_of_region>

Schritt 3: Zuordnen eines Supervisors zu einer Region

Zum Verknüpfen eines Supervisors mit einer Region suchen Sie nach dem zu aktualisierenden Supervisor und aktualisieren dann die Region und die Bezeichnungen, die für die Namespace-Platzierung verwendet werden.

  1. Für die Suche nach dem zu aktualisierenden Supervisor listen Sie die Supervisoren auf. Supervisor-Ressourcen werden nach der vCenter-Datenerfassung angezeigt.
    kubectl -n cci-config get supervisors
    Bei Folgendem handelt es sich um ein Beispielergebnis.
    NAME                             AGE
    demo-self-service:domain-c50     75d
    adminannie-vcenter:domain-c8     5d18h
    scale-test-vc-01:domain-c8       56d
  2. Aktualisieren Sie den Supervisor mit der Bezeichnung adminannie-vcenter:domain-c8.
    kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
    Das folgende Beispiel enthält metadata.labels Schlüssel-Wert-Paare und Regionen spec.regionNames. Die Bezeichnungen environment: testing und fipsMode: strict können bei Entscheidungen zur Platzierung von Supervisoren verwendet werden.
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: Supervisor
    metadata:
      labels:
        environment: testing
        fipsMode: strict
      name: adminannie-vc:domain-c8
      namespace: cci-config
      uid: ccd3d154-6404-47b7-8786-bb2d49ad9f5d
    spec:
      cloudAccountName: adminannie-vc
      externalId: domain-c8
      externalName: wcp-test-dc-cluster
      regionNames:
        - <region_name>
Zur Anzeige einer Liste mit Supervisor-Regionen auf der Automation Assembler- oder Automation Service Broker-Benutzeroberfläche navigieren Sie zu:
  • Infrastruktur > Konfigurieren > Supervisor-Regionen
  • Oder klicken Sie auf die Registerkarte Supervisor-Regionen für ein Projekt, das sich unter Infrastruktur > Verwaltung > Projekte befindet.
Weitere Informationen hierzu finden Sie unter Anzeigen von Administratorkonstrukten.

Schritt 4: Erstellen einer Regionsbindung und einer Regionsbindungskonfiguration

Sie erstellen eine Regionsbindung und eine Regionsbindungskonfiguration, damit Benutzer in einem Projekt Supervisor-Namespaces für Supervisoren in einer Region erstellen können.

  1. Erstellen Sie eine Rollenbindung.
    kubectl create -f regionbinding.yaml
    Beispieldatei regionbinding.yaml.
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBinding
    metadata:
      name: <region_name>
      namespace: <project_name>

    Da eine Regionsbindung keine Platzierungseinstellungen für Supervisoren enthält, müssen Sie auch eine Regionsbindungskonfiguration erstellen.

  2. Erstellen Sie eine Regionsbindungskonfiguration für jede erstellte Regionsbindung. Sie können Übereinstimmungsausdrücke einschließen, die für die zusätzliche Filterung von Supervisoren verwendet werden. Supervisor-Bezeichnungen werden verwendet, um die Platzierung des Supervisor-Namespace in einer Teilmenge der Supervisoren in einer Region zuzulassen.
    kubectl create -f regionbindingconfig.yaml
    In der folgenden Beispieldatei regionbindingconfig.yaml können alle Supervisoren, die mit der Bezeichnung der Test-Umgebung übereinstimmen, die in diesem Projekt und dieser Region erstellten Supervisor-Namespaces hosten.
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBindingConfig
    metadata:
      name: <region_name>
      namespace: <project_name>
    spec:
      supervisorSelector:
        matchExpressions:
          - key: environment
            operator: In
            values:
              - testing

Schritt 5: Erstellen einer Supervisor-Namespace-Klasse und Hinzufügen einer Konfiguration für die Supervisor-Namespace-Klasse

Zum Festlegen von Namespace-Vorlagen mit optionalen Parametern, die zum Anpassen der Namespace-Einstellungen während der Erstellung verwendet werden können, erstellen Sie eine Supervisor-Namespace-Klasse. Anschließend können Sie eine Supervisor-Namespace-Klassenkonfiguration mit Übereinstimmungsausdrücken für die zusätzliche Filterung von Supervisoren erstellen, die für die Platzierung des Supervisor-Namespace verwendet werden.

  1. Erstellen Sie eine Supervisor-Namespace-Klasse.
    kubectl create -f supervisornamespaceclass.yaml
    In der folgenden Beispieldatei supervisornamespaceclass.yaml spiegelt die optionale Eingabe unter parameters Parameter der Namespace-Klasse wider, die Benutzer beim Erstellen des Namespace angeben. Alle Eingaben müssen Standardwerte aufweisen. Die Werte werden verwendet, um die Speicherklassen, Grenzwerte und zusätzlichen Einschränkungen anzupassen.
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: SupervisorNamespaceClass
    metadata:
      name: <class_name>
    spec:
      description: supervisor namespace class
      parameters:
        - name: podCountLimit
          type: Integer
          minimum: 100
          maximum: 1000
          default: 500

    Da die Supervisor-Namespace-Klasse keine Einstellungen für die Supervisor-Platzierung enthält, müssen Sie auch eine Supervisor-Namespace-Klassenkonfiguration erstellen.

  2. Erstellen Sie eine Supervisor-Namespace-Klassenkonfiguration.
    kubectl create -f supervisornamespaceclassconfig.yaml
    Die YAML-Datei ist mit allen Supervisor-Namespace-Konfigurationen konfiguriert, die vom Supervisor-Namespace übernommen werden sollen, und kann Folgendes enthalten:
    • Inhaltsbibliotheken, die die Images enthalten, die der VM-Dienst bei der Bereitstellung virtueller Maschinen verwendet.
    • VM-Klassen, wie z. B. T-Shirt-Größen.
    • Erzwungene Ressourcengrenzwerte für CPU, Arbeitsspeicher und Speicher.
    • Zu verwendende Speicherklassen.
    • SupervisorSelector als Entscheidungshilfe bei der Auswahl des für die Erstellung des Supervisor-Namespace zu verwendenden Supervisors.
    In der folgenden Beispieldatei supervisornamespaceclassconfig.yaml wird supervisorSelector für den Abgleich von Supervisor-Bezeichnungen verwendet.
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: SupervisorNamespaceClassConfig
    metadata:
      name: <class_name>
    spec:
      storageClasses:
        - name: management-storage-policy-thin
      vmClasses:
        - name: big-vm-class
        - name: small-vm-class
      contentSources:
        - name: global-content-library
          type: ContentLibrary
      # Below limits are an EXAMPLE! Setting them may cause unexpected behavior in your namespace
      # Either set reasonable limits, or remove the below section to get unlimited resources
      limits:
        - name: pod_count
          limit: "((parameters.podCountLimit))"
      supervisorSelector:
        matchExpressions:
          - key: environment
            operator: In
            values:
              - testing
    

Schritt 6: Verknüpfen einer Namespace-Klasse mit einem Projekt

Damit ein Supervisor-Namespace mithilfe der Supervisor-Namespace-Klasse in einem Projekt erstellt werden kann, erstellen Sie eine Supervisor-Namespace-Klassenbindung.

kubectl create -f supervisornamespaceclassbinding.yaml
Beispieldatei supervisornamespaceclassbinding.yaml.
  • namespace gibt den Namen des Projekts an, das mit der Supervisor-Namespace-Klasse verknüpft werden soll.
  • overrideParameters sind optional. Sie werden verwendet, um einen Parameterwert zu erzwingen, während die vom Benutzer angegebenen Parameterwerte bei der Erstellung des Supervisor-Namespace ignoriert werden. Zu den gültigen Typen gehören Ganzzahl, Zeichenfolge oder Boolesch.
apiVersion: infrastructure.cci.vmware.com/v1alpha1
kind: SupervisorNamespaceClassBinding
metadata:
  name: <class_name>
  namespace: <project_name>
spec:
  overrideParameters:
    - name: podCountLimit
      type: Integer
      const: 1000