Ce guide explique comment installer et déployer Apigee Edge pour le cloud privé et les proxys d'API dans un environnement Google Distributed Cloud (GDC) isolé. Les offres GDC avec air gap, y compris Apigee Edge pour le cloud privé, ne nécessitent pas de connectivité à Google Cloud pour gérer l'infrastructure et les services. Vous pouvez utiliser un plan de contrôle local hébergé sur vos serveurs pour toutes les opérations. Pour obtenir une présentation de GDC sous air gap, consultez la présentation.
Ce guide est destiné aux opérateurs Apigee qui connaissent Apigee Edge pour le cloud privé et qui ont des connaissances de base sur Kubernetes.
Présentation des étapes requises
Pour installer et déployer Apigee Edge pour Private Cloud dans un environnement GDC isolé, l'opérateur doit procéder comme suit :
- Obtenez les fichiers d'installation d'Apigee Edge pour le cloud privé.
- Configurez un bucket de stockage.
- Configurez un nœud de dépôt.
- Déployez les nœuds Apigee.
- Configurez un nœud de contrôle.
- Configurez Ansible.
- Installez les composants Apigee.
- Déployez des pods et des services.
- Mettez à jour les adresses IP de l'outil d'importation et du transmetteur Fluent Bit.
- Intégrez une organisation Apigee.
- Testez la connectivité HTTP.
- Configurez TLS et testez HTTPS.
Avant de commencer
Avant de commencer le processus d'installation, veillez à effectuer les étapes suivantes :
- Créez un projet GDC à utiliser pour l'installation, si vous n'en avez pas déjà un. Pour en savoir plus, consultez Créer un projet.
- Téléchargez, installez et configurez la CLI
gdcloud
sur un poste de travail connecté à GDC ou dans l'environnement de déploiement continu de votre organisation. - Obtenez les identifiants requis pour utiliser la CLI
gdcloud
et l'APIkubectl
. Consultez Authentifier votre compte pour y accéder pour connaître la procédure à suivre. - Confirmez le nom d'utilisateur et le mot de passe Apigee que vous avez reçus de votre responsable de compte Apigee.
- Confirmez le nom de votre cluster d'administrateur GKE et de votre cluster d'utilisateur GKE.
Besoins en capacité
L'installation d'Apigee Edge pour le cloud privé sur GDC nécessite plusieurs machines virtuelles (VM) avec des allocations de ressources spécifiques. Ces VM entraînent des frais en fonction de leurs ressources de calcul (RAM, cœurs de processeur virtuel) et de leur stockage sur disque local. Pour en savoir plus, consultez la page Tarifs.
Le tableau suivant indique les exigences en termes de ressources pour chaque VM :
Type de VM | RAM | Cœurs du processeur virtuel | Stockage sur disque |
---|---|---|---|
Nœud de dépôt | 8 Go | 2 cœurs de processeur virtuel | 64 Go |
Nœud de contrôle | 8 Go | 2 cœurs de processeur virtuel | 64 Go |
Nœuds de gestion des API Apigee 1, 2 et 3 | 16 Go de RAM | 8 cœurs de processeur virtuel | 670 Go |
Nœuds de gestion des API Apigee 4 et 5 | 16 Go de RAM | 8 cœurs de processeur virtuel | 500 Go à 1 To |
Rôles et autorisations
Les rôles et autorisations suivants sont requis pour déployer Apigee Edge pour le cloud privé dans un environnement GDC isolé :
- Administrateur de plate-forme : attribuez le rôle
IAM Admin
. - Opérateur d'application : attribuez les rôles suivants :
Harbor Instance Admin
: dispose d'un accès complet pour gérer les instances Harbor dans un projet.LoggingTarget Creator
: crée des ressources personnaliséesLoggingTarget
dans l'espace de noms du projet.LoggingTarget Editor
: modifie les ressources personnaliséesLoggingTarget
dans l'espace de noms du projet.Project Bucket Admin
: gère les buckets de stockage et les objets qu'ils contiennent.Project Grafana Viewer
: accède à l'instance de surveillance dans l'espace de noms du projet.Project NetworkPolicy Admin
: gère les règles réseau du projet dans l'espace de noms du projet.Project VirtualMachine Admin
: gère les machines virtuelles dans l'espace de noms du projet.Secret Admin
: gère les secrets Kubernetes dans les projets.Service Configuration Admin
: dispose d'un accès en lecture et en écriture aux configurations de service dans un espace de noms de projet.Namespace Admin
: gère toutes les ressources dans les espaces de noms du projet.
- Apigee sur GDC air-gapped n'est pas fourni avec des serveurs DNS et utilise la résolution DNS locale comme solution de contournement. Si Apigee sur GDC air-gapped est déployé dans un environnement avec des serveurs DNS externes, remplacez les étapes qui configurent le DNS local par la configuration des entrées DNS dans les serveurs DNS.
- Apigee sur GDC air-gapped n'inclut pas de serveur SMTP autonome. Vous pouvez configurer un serveur SMTP à tout moment pour activer les notifications par e-mail sortantes pour la création de comptes et la réinitialisation de mots de passe à partir du serveur de gestion et de l'interface utilisateur de gestion. Les API de gestion restent disponibles pour la gestion des comptes utilisateur Apigee. Pour en savoir plus, consultez Configurer le serveur SMTP Edge.
- Apigee sur GDC sous air gap n'implémente pas la détection et la prévention des intrusions. Installez et configurez un système de prévention des intrusions (IPS), tel que Snort, pour détecter et prévenir les activités malveillantes.
- Système d'exploitation : Rocky Linux 8
- Taille de la machine : 8 Go de RAM, 2 cœurs de processeur virtuel, 64 Go de stockage sur disque local
- Connectivité :
- Entrée : TCP 22 (SSH)
- Sortie : Internet
- Consultez les notes de version d'Apigee Edge for Private Cloud pour connaître la dernière version officielle compatible avec GDC, comme indiqué dans la colonne "Edge for Private Cloud".
- Téléchargez le fichier d'installation d'Edge :
curl https://software.apigee.com/apigee/tarball/VERSION/rocky8/archive.tar -o /tmp/archive.tar -u 'APIGEE_USER:APIGEE_PASSWORD'
Où :
- APIGEE_USER est le nom d'utilisateur que vous avez reçu pour l'organisation Apigee.
- APIGEE_PASSWORD est le mot de passe que vous avez reçu pour l'organisation Apigee.
- VERSION correspond à la version d'Apigee Edge pour le cloud privé à utiliser sur GDC que vous souhaitez installer, par exemple 4.53.01.
- Téléchargez le dernier fichier
bootstrap_VERSION.sh
d'Apigee Edge pour le cloud privé sur/tmp/bootstrap_VERSION.sh
:curl https://software.apigee.com/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh
Où VERSION correspond à la dernière version d'Apigee Edge pour le cloud privé à utiliser sur GDC que vous souhaitez installer, par exemple 4.53.01.
- Installez l'utilitaire
apigee-service
Edge et les dépendances :sudo bash /tmp/bootstrap_VERSION.sh apigeeuser=APIGEE_USER apigeepassword=APIGEE_PASSWORD
Où :
- APIGEE_USER est le nom d'utilisateur que vous avez reçu pour l'organisation Apigee.
- APIGEE_PASSWORD est le mot de passe que vous avez reçu pour l'organisation Apigee.
- VERSION correspond à la version d'Apigee Edge pour le cloud privé à utiliser sur GDC que vous souhaitez installer.
- Exécutez le script d'installation sur le nœud connecté :
chmod a+x connected-node_setup.sh \ ./connected-node_setup.sh
À cette étape, le script génère les fichiers requis aux emplacements suivants (par exemple, pour la version 4.53.01) :
/opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz
/tmp/apigee-nginx/apigee-nginx.tar
/tmp/fluentbit/fluentbit.tar
/tmp/postgresql14/postgresql14.tar
/tmp/ansible-rpms.tar
/tmp/apigee-repos.tar
- Transférez les fichiers requis du nœud connecté vers une machine locale via SSH :
mkdir apigee-files
cd apigee-files
for file in /opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz /tmp/ansible-rpms.tar /tmp/apigee-nginx/apigee-nginx.tar /tmp/fluentbit/fluentbit.tar /tmp/postgresql14/postgresql14.tar /tmp/apigee-repos.tar; do scp -i SSH_PRIVATE_KEY_FILE USER@CONNECTED_NODE_IP:$file . done
Où :
- SSH_PRIVATE_KEY_FILE correspond au chemin d'accès au fichier de clé privée SSH.
- USER est le nom d'utilisateur du nœud connecté.
- CONNECTED_NODE_IP est l'adresse IP du nœud connecté.
- Authentifiez-vous auprès du cluster d'administrateur de l'organisation :
gdcloud auth login --login-config-cert WEB_TLS_CERT
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
Où :
- WEB_TLS_CERT correspond au chemin d'accès au certificat TLS Web.
- ORG_ADMIN_CLUSTER correspond au nom du cluster GKE de l'administrateur de l'organisation.
- Définissez les variables d'environnement pour le projet et le bucket :
export PROJECT=PROJECT
export BUCKET=BUCKET_NAME
Où :
- PROJECT est le nom de votre projet GDC.
- BUCKET_NAME correspond au nom du bucket que vous souhaitez créer pour stocker les fichiers de sauvegarde Apigee Edge pour Private Cloud.
- Appliquez la configuration du bucket :
kubectl apply -f - <<EOF apiVersion: object.GDC.goog/v1 kind: Bucket metadata: name: $BUCKET namespace:$PROJECT spec: description: bucket for Apigee backup files storageClass: Standard bucketPolicy : lockingPolicy : defaultObjectRetentionDays: 30 EOF
Cette configuration crée un bucket avec une période de conservation de 30 jours.
- Créez un compte de service dans le projet :
gdcloud iam service-accounts create $BUCKET-sa \ --project=$PROJECT
- Créez le rôle et la liaison de rôle pour générer un secret permettant d'accéder au bucket :
kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: $BUCKET-role namespace: $PROJECT rules: - apiGroups: - object.gdc.goog resourceNames: - $BUCKET resources: - buckets verbs: - get - read-object - write-object --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: $BUCKETrolebinding namespace: $PROJECT roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: $BUCKET-role subjects: - kind: ServiceAccount name: $BUCKET-sa namespace: $PROJECT EOF
- Obtenez l'ID et la clé d'accès à partir du secret :
export BUCKET_SECRET=$(kubectl get secret -n $PROJECT -o jsonpath="{range .items[*]}{.metadata.name}{':'}{.metadata.annotations['object\.GDC\.goog/subject']}{'\n'}{end}" | grep $BUCKET | tail -1 | cut -f1 -d :)
echo "access-key-id=$(kubectl get secret -n $PROJECT $BUCKET_SECRET -o jsonpath="{.data['access-key-id']}")"
echo "access-key=$(kubectl get secret -n $PROJECT $BUCKET_SECRET -o jsonpath="{.data['secret-access-key']}")"
Le résultat doit ressembler à ce qui suit :
access-key-id=RFdJMzRROVdWWjFYNTJFTzJaTk0= access-key=U3dSdm5FRU5WdDhMckRMRW1QRGV0bE9MRHpCZ0Ntc0cxVFJQdktqdg==
- Créez un secret à utiliser par le programme d'importation dans le cluster GKE de l'utilisateur :
- Authentifiez-vous auprès du cluster d'utilisateur GKE :
gdcloud clusters get-credentials USER_CLUSTER
où USER_CLUSTER est le nom du cluster GKE utilisateur.
- Appliquez la configuration du secret :
kubectl apply -f - <<EOF apiVersion: v1 kind: Secret metadata: namespace: $PROJECT name: $BUCKET-secret type: Opaque data: access-key-id: ACCESS_KEY_ID access-key: ACCESS_KEY EOF
Où :
- ACCESS_KEY_ID correspond à l'ID de clé d'accès obtenu à l'étape précédente.
- ACCESS_KEY correspond à la clé d'accès obtenue à l'étape précédente.
- Authentifiez-vous auprès du cluster d'utilisateur GKE :
- Obtenez le point de terminaison de stockage, le nom de domaine complet et la région du bucket :
- Authentifiez-vous auprès du cluster d'administrateur de l'organisation :
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
où ORG_ADMIN_CLUSTER est le nom du cluster GKE de l'administrateur de l'organisation.
- Obtenez le point de terminaison de stockage, le nom de domaine complet et la région du bucket :
kubectl get buckets ${BUCKET} -n $PROJECT -o jsonpath="{'endpoint: '}{.status.endpoint}{'\n'}{'bucket: '}{.status.fullyQualifiedName}{'\n'}{'region: '}{.status.region}{'\n'}"
Le résultat doit ressembler à ce qui suit :
endpoint: https://objectstorage.gpu-org.cookie.sesame.street bucket: ez9wo-apigee-backup-bucket region: cookie
- Authentifiez-vous auprès du cluster d'administrateur de l'organisation :
- Mettez à jour les valeurs suivantes dans le fichier
apigee/helm_user_cluster/values-cookie-air-gapped.yaml
:objectstorekeyname: "apigee-backup-bucket-secret" objectstoreurl: "BUCKET_ENDPOINT" objectstorebucket: "BUCKET_FQDN"
Où :
- BUCKET_ENDPOINT correspond au point de terminaison du bucket obtenu à l'étape précédente.
- BUCKET_FQDN correspond au nom de domaine complet du bucket obtenu à l'étape précédente.
- Mettez à jour
apigee/helm_user_cluster/values-cookie-air-gapped.yaml
comme indiqué ci-dessous :repo_node: enabled: true apigee_node: enabled: false control_node: enabled: false
Assurez-vous que
repo_node
est activé et queapigee_node
etcontrol_node
sont désactivés. Ces nœuds seront déployés ultérieurement. - Obtenez les identifiants du cluster d'administrateur de l'organisation :
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
où ORG_ADMIN_CLUSTER est le nom du cluster GKE de l'administrateur de l'organisation.
- Créez un environnement virtuel Python :
python3 -m venv venv / source venv/bin/activate
- Exécutez le script de déploiement pour créer le nœud de dépôt :
python apigee/solution_deploy.py gdc-air-gapped
- Configurez SSH pour le nœud du dépôt :
export NODE=repo
kubectl create -n $PROJECT -f - <<EOF apiVersion: virtualmachine.GDC.goog/v1 kind: VirtualMachineAccessRequest metadata: generateName: $NODE- spec: ssh: key: | "cat SSH_PUBLIC_KEY_FILE" ttl: 24h user: admin vm: $NODE EOF
Où SSH_PUBLIC_KEY_FILE est le nom du fichier contenant votre clé SSH publique.
- Récupérez l'adresse IP externe du nœud de dépôt :
kubectl get virtualmachineexternalaccess -n $PROJECT $NODE -ojsonpath='{.status.ingressIP}'
- Obtenez l'adresse IP interne du nœud de dépôt :
kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT $NODE -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'
apigee-4.53.01
apigee-nginx.tar
postgresql14.tar
fluentbit.tar
ansible-rpms.tar
apigee-repos.tar
- Copiez le fichier de clé privée SSH sur le nœud du dépôt :
scp -i SSH_PRIVATE_KEY_FILE ~/apigee-files/* admin@REPO_EXTERNAL_IP:/tmp
Où :
- SSH_PRIVATE_KEY_FILE est le nom du fichier contenant votre clé SSH privée.
- REPO_EXTERNAL_IP correspond à l'adresse IP externe du nœud de dépôt obtenue à l'étape précédente.
- Importez le dossier contenant les configurations Fluent Bit dans le nœud du dépôt :
scp -i SSH-PRIVATE-KEY-FILE -r apigee/scripts/fluent-bit admin@REPO_EXTERNAL_IP:/tmp/fluent-bit
Où :
- SSH_PRIVATE_KEY_FILE est le nom du fichier contenant votre clé SSH privée.
- REPO_EXTERNAL_IP est l'adresse IP externe du nœud de dépôt.
- Copiez
apigee/scripts/repo_setup.sh
sur le nœud du dépôt. - Dans le script, remplacez REPO_USER et REPO_PASSWORD par le nom d'utilisateur et le mot de passe souhaités pour le dépôt miroir.
- Exécutez le script :
chmod a+x repo_setup.sh
./repo_setup.sh
Si vous rencontrez une erreur
No such file or directory
, réexécutez le script. - Testez la connexion au dépôt miroir localement à partir du nœud du dépôt.
curl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh
curl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/apigee/release/VERSION/repodata/repomd.xml
Remplacez VERSION par la version d'Apigee Edge pour le cloud privé que vous souhaitez installer.
- Remplacez
REPO_INTERNAL_IP
,REPO_USER_NAME
etREPO_PASSWORD
dansapigee/helm/scripts/apigee_setup.sh
par les valeurs souhaitées. - Exportez les valeurs en tant que variables d'environnement :
export REPO_IP=REPO_INTERNAL_IP
export REPO_USER=REPO_USER_NAME
export REPO_PASSWORD=REPO_PASSWORD
- Activez
apigee_node
dansapigee/helm/values-cookie-air-gapped.yaml
comme indiqué :apigee_node: enabled: true
- Exécutez le script de déploiement pour créer les nœuds Apigee :
source venv/bin/activate
python apigee/solution_deploy.py gdc-air-gapped
- Authentifiez-vous auprès du cluster d'administrateur de l'organisation :
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
où ORG_ADMIN_CLUSTER est le nom du cluster GKE de l'administrateur de l'organisation.
- Créez une clé SSH pour chaque nœud :
for i in 1 2 3 4 5; do kubectl create -n $PROJECT -f - <<EOF apiVersion: virtualmachine.GDC.goog/v1 kind: VirtualMachineAccessRequest metadata: generateName: node$i spec: ssh: key: | "cat SSH_PUBLIC_KEY_FILE" ttl: 24h user: admin vm: node$i EOF done
Où SSH_PUBLIC_KEY_FILE est le nom du fichier contenant votre clé SSH publique.
- Récupérez les adresses IP externes des nœuds Apigee :
for i in 1 2 3 4 5; do kubectl get virtualmachineexternalaccess -n $PROJECT node$i -ojsonpath='{.status.ingressIP}' echo done
- Obtenez les adresses IP internes des nœuds Apigee :
for i in 1 2 3 4 5; do kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT node$i -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}' echo done
- (Facultatif) Vérifiez si les scripts de démarrage s'exécutent correctement sur les nœuds Apigee :
- Connectez-vous au nœud en SSH et exécutez la commande suivante :
sudo journalctl -u cloud-final -f
- Recherchez des journaux semblables à ceux-ci :
Aug 29 18:17:00 172.20.128.117 cloud-init[1895]: Complete! Aug 29 18:17:00 172.20.128.117 cloud-init[1895]: Finished running the command: . /var/lib/google/startup-scripts/apigee-setup
- Connectez-vous au nœud en SSH et exécutez la commande suivante :
- Remplacez
REPO_INTERNAL_IP
,REPO_USER_NAME
etREPO_PASSWORD
dansapigee/helm/scripts/control_setup.sh
par les valeurs souhaitées. - Activez
control_node
dansapigee/helm/values-cookie-air-gapped.yaml
comme indiqué :control_node: enabled: true
- Exécutez le script de déploiement pour créer le nœud de contrôle :
source venv/bin/activate
python apigee/solution_deploy.py gdc-air-gapped
- Configurez l'accès SSH au nœud de contrôle :
kubectl create -n $PROJECT -f - <<EOF apiVersion: virtualmachine.GDC.goog/v1 kind: VirtualMachineAccessRequest metadata: generateName: control- spec: ssh: key: | "cat SSH_PUBLIC_KEY_FILE" ttl: 24h user: admin vm: control EOF
- Récupérez l'adresse IP externe du nœud de contrôle :
kubectl get virtualmachineexternalaccess -n $PROJECT control -ojsonpath='{.status.ingressIP}'
- Obtenez l'adresse IP interne du nœud de contrôle :
kubectl get virtualmachines.virtualmachine.GDC.goog -n $PROJECT control -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'
- Connectez-vous en SSH au nœud de contrôle et configurez l'environnement Ansible :
cd /home/admin
cp -r /tmp/apigee-repos .
cd apigee-repos/ansible-opdk-accelerator/setup
- Remplacer les dépôts Git distants par un fichier local :
sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g' requirements.yml
sed -i 's/\.git$//g' requirements.yml
- Install Ansible requirements:
sudo chown -R admin /home/admin/apigee-repos
ansible-galaxy install -r requirements.yml -f
- Mettez à jour la configuration :
- Modifiez le fichier
main.yml
comme suit :vi ~/apigee-repos/ansible-opdk-accelerator/setup/roles/apigee-opdk-setup-ansible-controller/tasks/main.yml
- Supprimez les tâches qui nécessitent un accès GitHub :
- Extraction SSH Git des dépôts de configuration
- Extraction HTTPS Git des dépôts de configuration
- Exécutez le playbook de configuration :
cd ~/apigee-repos/ansible-opdk-accelerator/setup
ansible-playbook setup.yml
- Modifiez le fichier
- Importez la clé SSH pour les nœuds Apigee vers le nœud de contrôle :
scp -i CONTROL_SSH_PRIVATE_KEY_FILE APIGEE_NODE_SSH_PRIVATE_KEY_FILE admin@CONTROL_EXTERNAL_IP:/home/admin/.ssh/id_rsa
Où :
- CONTROL_SSH_PRIVATE_KEY_FILE est le nom du fichier contenant la clé privée SSH de votre nœud de contrôle.
- APIGEE_NODE_SSH_PRIVATE_KEY_FILE est le nom du fichier contenant la clé privée SSH de votre nœud Apigee.
- CONTROL_EXTERNAL_IP est l'adresse IP externe du nœud de contrôle.
- Créez le fichier de configuration de l'inventaire Ansible :
- Copiez le contenu du fichier
apigee/scripts/ansible/prod.cfg
dans le fichierprod.cfg
:vi ~/.ansible/multi-planet-configurations/prod.cfg
- Créez le dossier
edge-dc1
et copiez le contenu du fichierapigee/scripts/ansible/edge-dc1
dans le fichieredge-dc1
:mkdir ~/.ansible/inventory/prod
vi ~/.ansible/inventory/prod/edge-dc1
- Copiez le contenu du fichier
- Mettez à jour les adresses IP internes des nœuds Apigee dans
edge-dc1
:apigee_000 ansible_host=APIGEE_NODE1_INTERNAL_IP
apigee_001 ansible_host=APIGEE_NODE2_INTERNAL_IP
apigee_002 ansible_host=APIGEE_NODE3_INTERNAL_IP
apigee_003 ansible_host=APIGEE_NODE4_INTERNAL_IP
apigee_004 ansible_host=APIGEE_NODE5_INTERNAL_IP
Où les valeurs de APIGEE_NODE*_INTERNAL_IP sont les adresses IP internes des nœuds Apigee obtenues lors d'une étape précédente.
- Configurez le fichier
~/.apigee-secure/credentials.yml
avec les valeurs suivantes :- apigee_repo_user: 'APIGEE_REPO_USER'
- apigee_repo_password: 'APIGEE_REPO_PASSWORD'
- opdk_qpid_mgmt_username: 'OPDK_QPID_MGMT_USERNAME'
- opdk_qpid_mgmt_password: 'OPDK_QPID_MGMT_PASSWORD'
Où :
- APIGEE_REPO_USER est le nom d'utilisateur du dépôt Apigee.
- APIGEE_REPO_PASSWORD est le mot de passe du dépôt Apigee.
- OPDK_QPID_MGMT_USERNAME est le nom d'utilisateur du serveur de gestion Apigee QPID.
- OPDK_QPID_MGMT_PASSWORD correspond au mot de passe du serveur de gestion Apigee QPID.
- Ajoutez un fichier de licence Apigee Edge for Private Cloud valide. Le nom du fichier doit être
license.txt
. - Copiez le contenu du fichier
~/.apigee-secure/license.txt
dans le fichierlicense.txt
que vous venez de créer. - Configurez les valeurs suivantes dans le fichier
~/.apigee/custom-properties.yml
:- opdk_version: 'OPDK_VERSION'
- apigee_repo_url: 'APIGEE_REPO_URL'
Où :
- OPDK_VERSION correspond à la version d'Apigee Edge pour Private Cloud que vous souhaitez installer.
- APIGEE_REPO_URL est l'URL du dépôt Apigee.
- Exportez le fichier de configuration en tant que variable d'environnement :
export ANSIBLE_CONFIG=~/.ansible/multi-planet-configurations/prod.cfg
- Remplacez les dépôts Git distants par des fichiers locaux :
cd ~/apigee-repos/ansible-opdk-accelerator/installations/multi-node/
sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g' requirements.yml
sed -i 's/\.git$//g' requirements.yml
- Installez les exigences Ansible :
ansible-galaxy install -r requirements.yml -f
- Corrigez les rôles Ansible :
sed -i 's/private_address/inventory_hostname/g' ~/.ansible/roles/apigee-opdk-settings-cassandra/tasks/main.yml
sed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-server-self/tasks/main.yml
sed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/tasks/main.yml
cat << EOF >> ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/templates/response-file-template.conf.j2 QPID_MGMT_USERNAME= opdk_qpid_mgmt_username QPID_MGMT_PASSWORD= opdk_qpid_mgmt_password EOF
sed -i 's/mode: 0700/mode: 0700\n recurse: yes/g' ~/.ansible/roles/apigee-opdk-setup-postgres-config/tasks/main.yml
- Remplacez le contenu du fichier
install.yml
par celui deapigee/scripts/ansible/install.yml
. - Exécutez le playbook pour installer les composants Apigee :
ansible-playbook install.yml
- Désactivez le lien de réinitialisation du mot de passe de l'utilisateur dans l'interface utilisateur Edge. Apigee sur GDC air-gapped n'inclut pas de serveur SMTP. Suivez la procédure décrite dans Désactiver le lien de réinitialisation du mot de passe dans l' UI Edge.
- Suivez les instructions de la section
Créer des instances de registre Harbor pour créer une instance Harbor dans le projet GDC
dev-apigee
. - Suivez les instructions de
Créer des projets Harbor pour créer un projet Harbor nommé
apigee
. - Suivez les instructions de la section Configurer le contrôle des accès pour configurer le contrôle des accès pour le projet Harbor.
- Suivez les instructions de la section Se connecter à Docker et Helm pour configurer l'authentification Docker.
- Mettez à jour les adresses IP dans le fichier
apigee/apigee_user_cluster.toml
comme indiqué :mgmt-server-proxy = "APIGEE_NODE1_EXTERNAL_IP" router-proxy1 = "APIGEE_NODE2_EXTERNAL_IP" router-proxy2 = "APIGEE_NODE3_EXTERNAL_IP"
Où :
- APIGEE_NODE1_EXTERNAL_IP correspond à l'adresse IP externe du nœud Apigee 1 obtenue lors d'une étape précédente.
- APIGEE_NODE2_EXTERNAL_IP correspond à l'adresse IP externe du nœud Apigee 2 obtenue lors d'une étape précédente.
- APIGEE_NODE3_EXTERNAL_IP correspond à l'adresse IP externe du nœud Apigee3 obtenue lors d'une étape précédente.
- Placez le fichier de certificat SSL (
server.crt
) et le fichier de clé (server.key
) pour configurer HTTPS dans les dossiersapigee/mgmt-server-proxy
etapigee/router-proxy
.Pour générer des certificats autosignés, utilisez la commande suivante :
openssl req -newkey rsa:4096 -x509 -nodes -keyout server.key -new -out server.crt -subj "/CN=*.apigeetest.com" -sha256 -days 365
- Mettez à jour la valeur de
SSH-PASSWORD
pour l'utilisateur racine dans le conteneur d'importation du fichierapigee/uploader/Dockerfile
:RUN echo 'root:SSH_PASSWORD' | chpasswd
- Obtenez les identifiants du cluster d'utilisateur :
gdcloud clusters get-credentials USER_CLUSTER
où USER_CLUSTER est le nom du cluster GKE utilisateur.
- Exécutez le script de déploiement pour déployer les pods et les services :
source venv/bin/activate
python apigee/solution_deploy_user_cluster.py gdc-air-gapped
- Récupérez les adresses IP externes des services :
kubectl get svc -n $PROJECT_ID
- Mettre à jour
SSH_PASSWORD
,root
etUPLOADER_EXTERNAL_IP
dansapigee/helm/scripts/backup_setup.sh
:sshpass -p SSH_PASSWORD scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null apigee-backup* root@UPLOADER_EXTERNAL_IP:/temp/
Où :
- SSH_PASSWORD est le mot de passe de l'utilisateur racine.
- UPLOADER_EXTERNAL_IP correspond à l'adresse IP externe du service d'importation obtenue lors d'une étape précédente.
- Mettre à jour
FLUENTBIT_EXTERNAL_IP
dansapigee/helm/scripts/apigee_setup.sh
:export FLUENTBIT_EXTERNAL_IP=FLUENTBIT_EXTERNAL_IP
- Arrêtez les VM :
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
export PROJECT=dev-apigee
for i in 1 2 3 4 5; do gdcloud compute instances stop node$i --project $PROJECT done
- Redéployez le chart Helm :
python apigee/solution_deploy.py gdc-air-gapped
- Démarrez les VM :
for i in 1 2 3 4 5; do GDCloud compute instances start node$i --project $PROJECT done
- Mettez à jour les valeurs suivantes dans
apigee/scripts/apigee_org_setup.sh
comme indiqué. Mettez à jour les autres paramètres si nécessaire.IP1=APIGEE_NODE1_INTERNAL_IP VHOST_ALIAS="APIGEE_NODE2_EXTERNAL_IP:9001 APIGEE_NODE3_EXTERNAL_IP:9001"
Où :
- APIGEE_NODE1_INTERNAL_IP correspond à l'adresse IP interne du nœud 1 Apigee obtenue lors d'une étape précédente.
- APIGEE_NODE2_EXTERNAL_IP correspond à l'adresse IP externe du nœud Apigee 2 obtenue lors d'une étape précédente.
- APIGEE_NODE3_EXTERNAL_IP correspond à l'adresse IP externe du nœud Apigee3 obtenue lors d'une étape précédente.
- Exécutez le script sur node1 pour intégrer l'organisation :
chmod a+x apigee_org_setup.sh
./apigee_org_setup.sh
- Recherchez l'adresse IP externe du service
apigee-elb
:gdcloud clusters get-credentials USER_CLUSTER
export PROJECT=dev-apigee
kubectl get svc apigee-elb -n $PROJECT
où USER_CLUSTER est le nom du cluster GKE utilisateur.
Ce service sert de point de terminaison pour l'UI Edge, l'API Management et le proxy d'API.
- APIGEE_ELB_EXTERNAL_IP correspond à l'adresse IP externe du service
apigee-elb
obtenue lors d'une étape précédente. - ORG_NAME est le nom de l'organisation Apigee.
- ENV_NAME est le nom de l'environnement Apigee.
- Connectez-vous à l'interface utilisateur Edge.
- Sur la page Proxys d'API, cliquez sur Créer pour créer un proxy d'API.
- Sur la page Détails du proxy, saisissez les valeurs suivantes :
- Type de proxy : sélectionnez Aucune cible.
- Nom du proxy :
ok
- Base Path
/ok
- Cible :
http://APIGEE_ELB_EXTERNAL_IP:9001
- Cliquez sur Créer pour créer le proxy d'API.
- Envoyez une requête HTTP à
/ok
:curl -i http://APIGEE_ELB_EXTERNAL_IP:9001/ok
- Vérifiez que la réponse est
200 OK
. - Suivez les étapes de la section Créer un keystore/truststore et un alias pour créer un certificat autosigné avec les valeurs suivantes :
- KeyStore : myTestKeystore
- KeyAlias : myKeyAlias
- Nom commun : apigeetest.com
- Effectuez un appel d'API pour créer l'hôte virtuel nommé
api.apigeetest.com
:curl -v -H "Content-Type:application/xml" \ -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e//virtualhosts" \ -d '<VirtualHost name="secure"> <HostAliases> <HostAlias>api.apigeetest.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> <OCSPStapling>off</OCSPStapling> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>myTestKeystore</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> </VirtualHost>'
Où :
- APIGEE_ELB_EXTERNAL_IP correspond à l'adresse IP externe du service
apigee-elb
obtenue lors d'une étape précédente. - ORG_NAME est le nom de l'organisation Apigee.
- ENV_NAME est le nom de l'environnement Apigee dans lequel l'hôte virtuel doit être créé.
- APIGEE_ELB_EXTERNAL_IP correspond à l'adresse IP externe du service
- Créez un proxy d'API à l'aide de l'hôte virtuel sécurisé.
- Sur les routeurs, configurez la résolution DNS pour les hôtes virtuels :
echo '127.0.0.1 api.apigeetest.com' | sudo tee -a /etc/hosts
- Vérifiez que les hôtes virtuels fonctionnent localement en envoyant une requête HTTPS au point de terminaison :
curl https://api.apigeetest.com:9005/ok -v -k
- Configurez la résolution DNS pour le point de terminaison :
echo 'APIGEE_ELB_EXTERNAL_IP apigeetest.com' | sudo tee -a /etc/hosts
Où APIGEE_ELB_EXTERNAL_IP est l'adresse IP externe du service
apigee-elb
obtenue lors d'une étape précédente. - Accédez à
https://apigeetest.com/ok
dans un navigateur Web et vérifiez que cela fonctionne. - Générez un fichier keystore à partir du fichier de certificat SSL et du fichier de clé :
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out keystore.pkcs12
keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks
- Placez le fichier keystore dans le dossier Apigee sur node1 :
scp -i SSH_PRIVATE_KEY_FILE keystore.jks admin@APIGEE_NODE1_EXTERNAL_IP:/home/admin/
Où :
- SSH_PRIVATE_KEY_FILE est le nom du fichier contenant la clé privée SSH de votre nœud Apigee.
- APIGEE_NODE1_EXTERNAL_IP correspond à l'adresse IP externe du nœud Apigee 1 obtenue lors d'une étape précédente.
- Connectez-vous en SSH à node1 et déplacez le fichier keystore dans le dossier Apigee :
sudo mv keystore.jks /opt/apigee/customer/application/
- Créez le fichier de configuration SSL :
sudo vi /tmp/sslConfigFile
- Mettez à jour la valeur de
KEY-PASS-PHRASE
comme indiqué :HTTPSPORT=9443 DISABLE_HTTP=n KEY_ALGO=JKS KEY_FILE_PATH=/opt/apigee/customer/application/keystore.jks KEY_PASS=KEY_PASS_PHRASE
- Configurez SSL à l'aide du fichier de configuration :
sudo chown apigee:apigee /tmp/sslConfigFile
/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f /tmp/sslConfigFile
- Configurez la résolution DNS pour l'interface utilisateur Edge :
echo 'APIGEE_ELB_EXTERNAL_IP ui.apigeetest.com' | sudo tee -a /etc/hosts
Où APIGEE_ELB_EXTERNAL_IP est l'adresse IP externe du service
apigee-elb
obtenue lors d'une étape précédente. - Accédez à
https://ui.apigeetest.com:9443
dans un navigateur Web et vérifiez que cela fonctionne. Pour en savoir plus, consultez le guide. - Configurez le propriétaire du fichier keystore (utilisez le même que pour l'interface utilisateur Edge) :
sudo chown apigee:apigee /opt/apigee/customer/application/keystore.jks
- Créez le fichier de propriétés :
sudo vi /opt/apigee/customer/application/management-server.properties
- Redémarrez le serveur de gestion pour que les modifications prennent effet :
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Vérifiez que le protocole HTTPS fonctionne localement :
curl -u "opdk@apigee.com:Apigee123!" "https://localhost:8443/v1/users" -k
- Depuis le client, accédez à https://apigeetest.com:8443/v1/users dans le navigateur. Saisissez le nom d'utilisateur et le mot de passe de l'administrateur pour confirmer que les identifiants sont correctement configurés.
Pour en savoir plus sur l'attribution de rôles et d'autorisations GDC en mode air-gap, consultez Accorder et révoquer l'accès.
Limites
Les limites suivantes s'appliquent à Apigee sur GDC air-gapped :
Obtenir les fichiers requis
Pour obtenir les fichiers d'installation, vous devez d'abord configurer un nœud connecté, puis télécharger les fichiers.
Configurer un nœud connecté
Le nœud connecté est une seule VM en dehors de GDC que vous utilisez pour télécharger les fichiers d'installation. Cette VM nécessite un accès à Internet et n'est utilisée que pour le processus d'installation.
Le nœud connecté nécessite la capacité et la configuration suivantes :
Pour créer le nœud connecté, suivez les instructions de la section Créer et démarrer une instance de VM. Une fois la VM créée, suivez les instructions de la section Se connecter à des VM Linux. pour vous connecter à la VM. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez Systèmes d'exploitation compatibles avec GDC.
Télécharger les fichiers d'installation
Pour télécharger les fichiers d'installation :
Configurer le bucket de stockage
Au cours de cette étape, l'opérateur GDC configure un bucket de stockage dans le projet GDC pour stocker les fichiers de sauvegarde Apigee Edge pour le cloud privé.
Créer un bucket de stockage
Pour créer un bucket de stockage dans le projet GDC :
Configurer l'accès aux buckets
Pour configurer l'accès au bucket de stockage :
Configurer le nœud de dépôt
Dans cette étape, l'opérateur GDC configure un nœud de dépôt pour héberger le dépôt miroir Apigee Edge pour le cloud privé.
Créer un nœud de dépôt
Pour créer un nœud de dépôt :
Configurer l'accès aux nœuds du dépôt
Pour configurer l'accès au nœud de dépôt :
Importer des fichiers d'installation
Lors de cette étape, l'opérateur GDC importe la dernière version des fichiers suivants dans le nœud de dépôt :
Pour importer les fichiers d'installation :
Configurer le dépôt miroir
Pour configurer le dépôt miroir :
Déployer des nœuds Apigee
Lors de cette étape, l'opérateur GDC déploie les nœuds de gestion des API Apigee.
Créer des nœuds Apigee
Pour créer les nœuds de gestion de l'API Apigee :
Configurer l'accès aux nœuds Apigee
Configurez l'accès aux nœuds de gestion de l'API Apigee :
Configurer le nœud de contrôle
Dans cette étape, l'opérateur GDC configure un nœud de contrôle pour gérer les installations Apigee.
Créer un nœud de contrôle
Pour créer un nœud de contrôle :
Configurer l'accès au nœud de contrôle
Pour configurer l'accès au nœud de contrôle :
Configurer Ansible
Au cours de cette étape, l'opérateur GDC configure l'environnement sur le nœud de contrôle.
Pour configurer l'environnement Ansible :
Installer les composants Apigee
Au cours de cette étape, l'opérateur GDC installe les composants Apigee à l'aide d'Ansible.
Pour installer les composants Apigee :
Déployer des pods et des services
À cette étape, vous allez déployer les pods et services d'importateur, de proxy inverse, d'équilibreur de charge et de journalisation.
Pour déployer les pods et les services :
Mettre à jour les adresses IP de l'outil d'importation et du transmetteur Fluent Bit
Dans cette étape, vous allez mettre à jour les adresses IP de l'outil d'importation et du transmetteur Fluent Bit dans les scripts de sauvegarde et de configuration d'Apigee.
La mise à jour du script de démarrage nécessite le redémarrage des nœuds Apigee. Pour redémarrer les nœuds :
Intégrer l'organisation Apigee
Au cours de cette étape, l'opérateur GDC intègre l'organisation Apigee en exécutant un script de configuration sur node1.
Pour intégrer l'organisation Apigee :
Tester la connectivité HTTP
Dans cette étape, vous allez tester la connectivité HTTP pour l'API Management et le proxy d'API.
Pour tester la connectivité HTTP :
Tester l'API Management
Pour tester l'API Management, envoyez une requête HTTP au point de terminaison :
curl -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e/ENV_NAME/provisioning/axstatus"
Où :
Tester le proxy d'API
Pour tester le proxy d'API :
Configurer TLS et tester HTTPS
Lors de cette étape, l'opérateur GDC configure Transport Layer Security (TLS) pour le proxy d'API, l'UI Edge et l'API Management.
Configurer TLS pour le proxy d'API
Configurer TLS pour l'interface utilisateur Edge
Pour configurer TLS pour l'interface utilisateur Edge :
Configurer TLS pour l'API Management
Pour configurer TLS pour l'API Management :
Remplacez la valeur de KEY_PASS_PHRASE
par le mot de passe du keystore, comme indiqué :
conf_webserver_ssl.enabled=true # Leave conf_webserver_http.turn.off set to false # because many Edge internal calls use HTTP. conf_webserver_http.turn.off=false conf_webserver_ssl.port=8443 conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks # Enter the obfuscated keystore password below. conf_webserver_keystore.password=KEY_PASS_PHRASE