Edge for Private Cloud v. 4.16.09
Utiliser un équilibreur de charge
Une installation de production d'API BaaS utilise un équilibreur de charge entre le nœud du portail API BaaS et les nœuds de la pile API BaaS. Lorsque vous configurez le portail, vous spécifiez l'adresse IP ou le nom DNS de l'équilibreur de charge, et non des nœuds Stack.
Vous pouvez utiliser un DNS circulaire à la place d'un équilibreur de charge. Dans ce scénario, vous créez une entrée DNS avec plusieurs enregistrements A correspondant aux adresses IP de la pile BaaS. Lors d'une résolution DNS, le serveur DNS renvoie automatiquement les valeurs d'enregistrement A de manière alternée.
Se connecter à Cassandra
Lors de l'installation de BaaS, vous pouvez choisir de connecter BaaS et Edge au même cluster Cassandra ou de créer un cluster Cassandra distinct pour BaaS. Les installations BaaS plus petites, c'est-à-dire celles dont le volume de trafic est plus faible, partagent souvent un cluster Cassandra avec Edge.
Pour un débit et une disponibilité élevés, ou pour séparer les clusters Cassandra dans différentes zones réseau, Apigee vous recommande d'utiliser des clusters Cassandra distincts. Les clusters distincts optimisent les performances si vous rencontrez des charges de trafic élevées sur BaaS.
Synchronisation des dates
La date et l'heure doivent être synchronisées sur tous les serveurs. Si ce n'est pas déjà fait, l'utilitaire "ntpdate" peut servir à vérifier si les serveurs sont synchronisés. Vous pouvez utiliser la commande "yum install ntp" pour installer l'utilitaire.
Sécurité Tomcat
Le programme d'installation d'API BaaS installe également le serveur Apache Tomcat sur tous les nœuds de la pile API BaaS, y compris l'UI d'administration Tomcat. Le programme d'installation laisse les identifiants d'administrateur par défaut inchangés (admin:admin).
Si nécessaire, vous pouvez modifier ces identifiants pour sécuriser Tomcat. Pour en savoir plus, consultez les pages suivantes :
- https://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html
- https://www.owasp.org/index.php/Securing_tomcat
Présentation de l'installation
Après avoir installé l'utilitaire apigee-setup d'Edge sur un nœud, utilisez-le pour installer un ou plusieurs composants BaaS sur le nœud. L'utilitaire apigee-setup se présente sous la forme suivante :
> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
Transmettez un fichier de configuration à l'utilitaire apigee-setup contenant les informations sur l'installation. Si des informations requises sont manquantes dans le fichier de configuration, l'utilitaire apigee-setup vous invite à les saisir sur la ligne de commande.
La seule exigence est que le fichier de configuration doit être accessible ou lisible par l'utilisateur "apigee".
Par exemple, utilisez la commande suivante pour installer la pile API BaaS :
> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig
L'utilitaire Apigee setup.sh est compatible avec plusieurs options d'installation des composants API BaaS. Les instructions ci-dessous utilisent les options autonomes (c, e, b et p), mais vous pouvez utiliser différentes options en fonction de la configuration de votre nœud :
|
Option |
Description |
|---|---|
|
e |
Installez uniquement ElasticSearch. |
|
b |
Installez uniquement la pile API BaaS, qui installe également Tomcat. |
|
p |
Installez uniquement le portail API BaaS, qui installe également le routeur Nginx à utiliser comme serveur Web. |
|
c |
Installez uniquement Cassandra. |
|
eb |
Installez ElasticSearch, la pile API BaaS et Tomcat sur le nœud. |
|
ebp |
Installez ElasticSearch, le portail API BaaS, la pile API BaaS et Tomcat. Le portail est si léger qu'aucune ressource supplémentaire n'est nécessaire. |
|
asa |
Installez tous les composants d'API sur un seul nœud (Cassandra, Elasticsearch, API BaaS Stack et API BaaS Portal). Utilisez cette option uniquement pour le développement et les tests, et non pour la production. |
Créer un fichier de configuration silencieux
Vous trouverez ci-dessous un exemple de fichier de configuration silencieuse pour une installation d'API BaaS à 10 nœuds. Modifiez ce fichier si nécessaire pour votre configuration. Utilisez l'option -f de setup.sh pour inclure ce fichier.
# Specify IP address or DNS name of node. IP1=192.168.1.1 # ElasticSearch IP2=192.168.1.2 # ElasticSearch IP3=192.168.1.3 # ElasticSearch IP4=192.168.1.4 # API BaaS Stack IP5=192.168.1.5 # API BaaS Stack IP6=192.168.1.6 # API BaaS Stack IP7=192.168.1.7 # API BaaS Portal IP8=192.168.1.8 # Cassandra (shared with Edge or standalone) IP9=192.168.1.9 # Cassandra (shared with Edge or standalone) IP10=192.168.1.10 # Cassandra (shared with Edge or standalone) # Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost. HOSTIP=$(hostname -i) # Define the API BaaS administrator account. AS_ADMIN="superuser" # User name - default is "superuser". AS_ADMIN_EMAIL=stackAdmin@email.com AS_PASSWD=stackAdminPWrod # Only if you are installing Cassandra. # Specify Cassandra configuration information. # Must use IP addresses for CASS_HOSTS, not DNS names. # CASS_HOSTS="$IP8:1,1 $IP9:1,1 $IP10:1,1" # If connecting to existing Cassandra nodes, # specify Cassandra IPs. # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP8 $IP9 $IP10" # Cassandra uname/pword. # Even if Cassandra authentication is disabled, # you must still pass values for these properties. CASS_USERNAME=cassandra # Default value CASS_PASSWORD=cassandra # Default value # Specify BaaS Cassandra connection information. # Specify the data center name. BAAS_CASS_LOCALDC=dc-1 # Default is dc-1. # Replication is in the form "dataCenterName:#CassandraNodes". # For example, for dc-1 with three Cassandra nodes, it is dc-1:3. BAAS_CASS_REPLICATION=dc-1:3 # ElasticSearch IPs or DNS names, separated by spaces. ES_HOSTS="$IP1 $IP2 $IP3" # API BaaS Stack information. # Default cluster name is "apigee_baas" BAAS_USERGRID_CLUSTERNAME="apigee_baas" # URL and port of the load balancer for the API BaaS Stack nodes, # or IP/DNS and port 8080 of a single Stack node with no load balancer. BAAS_USERGRID_URL=http://myloadbalancer:8443 # API BaaS Portal information. # URL and port number of load balancer, if there is one in front of the Portal, # or the URL and port of the Portal node. BAAS_PORTAL_URL="http://$IP7:9000" # Portal port. Default value is 9000. BAAS_PORTAL_LISTEN_PORT=9000 # SMTP information. BaaS requires an SMTP server. SMTPHOST=smtp.gmail.com SMTPPORT=465 SMTPUSER=your@email.com SMTPPASSWORD=yourEmailPassword SMTPSSL=y
Le tableau suivant contient des informations supplémentaires sur ces propriétés :
|
Propriété |
Remarque |
|---|---|
|
CASS_HOSTS |
Si vous installez Cassandra, spécifiez les adresses IP des nœuds Cassandra (et non les noms DNS) et incluez le modificateur ":dc,ra" qui spécifie le centre de données et le rack du nœud Cassandra. Par exemple, "192.168.124.201:1,1" correspond au centre de données 1 et au rack/à la zone de disponibilité 1, et "192.168.124.204:2,1" correspond au centre de données 2 et au rack/à la zone de disponibilité 1. |
|
CASS_USERNAME |
Nom d'utilisateur et mot de passe Cassandra. Si l'authentification Cassandra est désactivée, vous devez quand même transmettre ces valeurs. Toutefois, les valeurs sont ignorées. |
|
BAAS_CASS_LOCALDC |
Les noms de région doivent être au format dc-#, où # correspond à une valeur entière. Par exemple, dc-1, dc-2, etc. Si vous vous connectez à un cluster Cassandra installé avec Edge, vous pouvez demander cette valeur à l'administrateur système Edge. Dans une installation Edge à centre de données unique, la valeur par défaut est dc-1. Si vous avez installé Cassandra dans le cadre de l'installation d'API BaaS, vous avez ajouté le modificateur ":dc,ra" aux adresses IP Cassandra lors de l'installation de Cassandra. La première valeur, "dc", correspond au numéro du centre de données. Le nom du centre de données est la chaîne "dc-" suivie du numéro du centre de données. |
|
BAAS_CASS_REPLICATION |
Le format est "dataCenterName:#CassandraNodes". Par exemple, pour dc-1 avec trois nœuds Cassandra, il s'agit de dc-1:3. |
|
BAAS_USERGRID_URL |
Dans un environnement de production, il s'agit de l'URL et du port de l'équilibreur de charge situé devant les nœuds de la pile API BaaS, au format suivant : Dans un environnement de test ou de développement, où vous ne disposez que d'un seul nœud de pile API BaaS, il peut s'agir de l'URL et du numéro de port d'un nœud de pile API BaaS, au format suivant : http://stackIPorDNS:8080 Le numéro de port du serveur de pile API BaaS est 8080. |
|
BAAS_PORTAL_URL |
URL et numéro de port de l'équilibreur de charge, s'il y en a un devant le portail, au format : |
|
BAAS_PORTAL_LISTEN_PORT |
Le numéro de port du serveur du portail API BaaS est 9000. Si ce port n'est pas disponible, spécifiez-en un autre. Si vous définissez BAAS_PORTAL_URL sur l'URL du nœud du portail, les numéros de port doivent être identiques pour les deux propriétés. |
Facultatif : Installer Cassandra : machines 8, 9 et 10
Bien que vous puissiez connecter API BaaS au même cluster Cassandra que celui utilisé par Edge, Apigee vous recommande d'utiliser des clusters distincts.
Le cluster Cassandra peut utiliser l'authentification, ou l'authentification Cassandra peut être désactivée. Pour en savoir plus, consultez Activer l'authentification Cassandra.
- Installez l'utilitaire Edge apigee-setup sur le nœud à l'aide de la procédure Internet ou non Internet. Pour en savoir plus, consultez Installer l'utilitaire apigee-setup d'Edge.
- À l'invite de commande, exécutez le script de configuration :
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
L'option "-p c" spécifie l'installation de Cassandra.
Le fichier de configuration doit être accessible ou lisible par l'utilisateur "apigee".
La configuration termine la configuration du datastore sur le nœud.
Notez que JMX est activé par défaut pour Cassandra. L'accès à distance JMX à Cassandra ne nécessite pas de mot de passe. Vous pouvez configurer Cassandra pour qu'il utilise l'authentification pour JMX. Pour en savoir plus, consultez Surveiller.
Configurer un job Cron Cassandra
Configurez un job Cron qui utilise nodetool pour vider les verrous afin qu'il s'exécute toutes les heures sur chaque nœud Cassandra.
Si vous disposez de plusieurs nœuds Cassandra, décalez le job Cron de cinq minutes sur chaque serveur afin que tous les nœuds ne soient pas vidés en même temps.
Le job Cron doit exécuter la commande suivante :
/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks
où IP_address est l'adresse IP du nœud Cassandra.
Installer ElasticSearch : machines 1, 2 et 3
Pour installer ElasticSearch :
- Installez l'utilitaire apigee-setup d'Edge sur le nœud à l'aide de la procédure Internet ou non Internet. Pour en savoir plus, consultez Installer l'utilitaire apigee-setup d'Edge.
- Dans l'invite de commande, exécutez le script de configuration :
> /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
L'option "-p e" spécifie l'installation d'ElasticSearch.
Le fichier de configuration doit être accessible ou lisible par l'utilisateur "apigee". - (Facultatif) Si vous installez ElasticSearch sur un nœud autonome, ce qui signifie qu'il n'est pas installé avec la pile API BaaS, ajustez l'option de mémoire par défaut pour augmenter l'allocation de mémoire pour ElasticSearch de 4 Go à 6 Go :
- Ouvrez /opt/apigee/customer/application/elasticsearch.properties dans un éditeur. Si ce fichier n'existe pas, créez-le.
- Définissez la propriété setenv_elasticsearch_max_mem_size sur 6g (la valeur par défaut est 4g) :
setenv_elasticsearch_max_mem_size=6g - Enregistrez le fichier.
- Exécutez la commande suivante :
> /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart
La configuration se termine correctement sur le nœud.
Installer la pile API BaaS : machines 4, 5 et 6
Pour installer la pile API BaaS, procédez comme suit :
- Installez l'utilitaire apigee-setup d'Edge sur le nœud à l'aide de la procédure Internet ou non Internet. Pour en savoir plus, consultez Installer l'utilitaire apigee-setup d'Edge.
- À l'invite de commande, exécutez le script de configuration :
> /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
L'option "-p b" spécifie l'installation de la pile API BaaS.
Le fichier de configuration doit être accessible ou lisible par l'utilisateur "apigee".
Une fois que le programme d'installation a récupéré les identifiants d'administrateur appropriés, il installe Tomcat, crée des espaces de clés API BaaS et configure la pile API BaaS sur le serveur. SMTP est également configuré pour permettre à l'interface utilisateur d'envoyer des e-mails de confirmation de mot de passe.
Installer le portail API BaaS : machine 7
Pour installer le portail API BaaS :
- Installez l'utilitaire apigee-setup d'Edge sur le nœud à l'aide de la procédure Internet ou non Internet. Pour en savoir plus, consultez Installer l'utilitaire apigee-setup d'Edge.
- À l'invite de commande, exécutez le script de configuration :
> /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
L'option "-p p" spécifie l'installation du portail API BaaS.
Le fichier de configuration doit être accessible ou lisible par l'utilisateur "apigee".
Le programme d'installation démarre le serveur Web Nginx, puis termine la configuration du portail API BaaS.
Notez l'URL du portail API BaaS. Il s'agit de l'URL que vous saisissez dans un navigateur pour accéder à l'interface utilisateur du portail API BaaS.
Configurer des nœuds API BaaS pour un équilibreur de charge Stack ou Portal
Si vous incluez un équilibreur de charge devant les nœuds Stack ou Portal, vous devez configurer les nœuds avec l'URL correcte de l'équilibreur de charge. Par exemple, les nœuds Stack ont besoin de ces informations dans les cas suivants :
- Inclure une URL dans les réponses aux requêtes de l'API BaaS.
- Ajouter des liens dans les modèles d'e-mails lors de la réinitialisation d'un mot de passe ou de l'envoi d'autres notifications.
- Rediriger les utilisateurs vers des pages spécifiques du portail.
Si vous utilisez un équilibreur de charge devant les nœuds Stack, définissez les propriétés suivantes dans /opt/apigee/customer/application/usergrid.properties :
usergrid-deployment_swagger.basepath=http://localhost:8080 usergrid-deployment_usergrid.organization.activation.url=http://localhost:8080/management/organizations/%s/activate usergrid-deployment_usergrid.admin.activation.url=http://localhost:8080/management/users/%s/activate usergrid-deployment_usergrid.admin.resetpw.url=http://localhost:8080/management/users/%s/resetpw usergrid-deployment_usergrid.admin.confirmation.url=http://localhost:8080/management/users/%s/confirm usergrid-deployment_usergrid.user.activation.url=http://localhost:8080/%s/%s/users/%s/activate usergrid-deployment_usergrid.user.confirmation.url=http://localhost:8080/%s/%s/users/%s/confirm usergrid-deployment_usergrid.user.resetpw.url=http://localhost:8080/%s/%s/users/%s/resetpw
Remplacez http://localhost:8080 par l'URL de l'équilibreur de charge. Si l'équilibreur de charge est configuré pour utiliser TLS, utilisez le protocole HTTPS. Vous ne devez inclure le port que si vous utilisez un port non standard, c'est-à-dire un port autre que le port 80 pour HTTP et le port 443 pour HTTPS.
Vous devez également définir la propriété suivante dans /opt/apigee/customer/application/portal.properties si vous utilisez un équilibreur de charge devant les nœuds Stack :
baas.portal.config.overrideUrl=http://localhost:8080
Remplacez http://localhost:8080 par l'URL de l'équilibreur de charge de la pile.
Si vous utilisez un équilibreur de charge devant le nœud du portail, définissez les propriétés suivantes dans usergrid.properties :
usergrid-deployment_usergrid.view.management.organizations.organization.activate=http://localhost:9000 usergrid-deployment_usergrid.view.management.organizations.organization.confirm=http://localhost:9000 usergrid-deployment_usergrid.view.management.users.user.activate=http://localhost:9000 usergrid-deployment_usergrid.view.management.users.user.confirm=http://localhost:9000
Remplacez http://localhost:9000 par l'URL de l'équilibreur de charge. Si l'équilibreur de charge est configuré pour utiliser TLS, utilisez le protocole HTTPS. Vous ne devez inclure le port que si vous utilisez un port non standard, c'est-à-dire un port autre que le port 80 pour HTTP et le port 443 pour HTTPS.
Après avoir modifié usergrid.properties et portal.properties :
- Configurez le nœud Stack :
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure - Déployez les modifications sur Tomcat :
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy - Redémarrez la pile BaaS :
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart - Si vous avez modifié portal.properties, configurez le nœud du portail :
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure - Déployez les modifications :
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy - Redémarrez le portail BaaS :
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal restart
Intégrer une nouvelle organisation
L'intégration est le processus de création d'une organisation et d'un administrateur de l'organisation. Après avoir créé l'organisation et l'administrateur de l'organisation, vous pouvez vous connecter à l'interface utilisateur du portail API BaaS et envoyer des requêtes à l'API REST API BaaS.
Lorsque vous créez une organisation, l'adresse e-mail de l'administrateur de l'organisation :
- Elle doit être différente de l'adresse e-mail de l'administrateur système.
- Il doit être unique parmi toutes les autres organisations. Autrement dit, vous ne pouvez pas créer deux organisations avec la même adresse e-mail pour l'administrateur de l'organisation. Toutefois, après avoir créé l'organisation, vous pouvez ajouter des administrateurs supplémentaires qui peuvent être dupliqués dans plusieurs organisations.
Pour effectuer l'intégration, utilisez le script Python create_org_and_user.py. Si vous appelez ce script sans argument de ligne de commande, il vous invite à saisir toutes les informations :
> python create_org_and_user.py
Vous pouvez également transmettre une ou plusieurs options en tant qu'argument de ligne de commande. Vous êtes invité à fournir les informations que vous omettez dans la ligne de commande :
> python create_org_and_user.py -o '<org name>' > python create_org_and_user.py -o '<org name>' -a '<new admin email>' -p '<new admin password>'
Pour créer une organisation :
- Accédez au répertoire /opt/apigee/baas-usergrid/bin.
- Appelez le script Python create_org_and_user.py.
Vous êtes invité à saisir le nom d'utilisateur et le mot de passe de l'administrateur système BaaS afin que seul un administrateur système puisse l'exécuter. - Connectez-vous au portail API BaaS dans un navigateur Web à l'aide de l'URL que vous avez notée à la fin de l'installation de l'URL du portail API BaaS. Pour accéder au portail, saisissez l'URL du portail API BaaS au format suivant :
http://{portalExternalIP}:9000/
Remarque : L'adresse IP est l'adresse IP externe/le nom d'hôte de la machine du portail. Assurez-vous que ce port est ouvert. - Lorsque l'écran de connexion au portail s'affiche, vous pouvez :
- Connectez-vous à l'aide du nom d'utilisateur et du mot de passe de l'administrateur de l'organisation.
- Connectez-vous à l'aide du nom d'utilisateur et du mot de passe de l'administrateur système.
Accéder à l'API REST API BaaS
Pour accéder à l'API REST API BaaS, utilisez une URL au format suivant :
https://{loadBalancerIP}:8080/{your-org}/{your-app}
Dans un environnement de développement, vous pouvez installer tous les composants API BaaS sur un seul nœud, ce qui signifie que vous disposez d'une seule pile API BaaS. Vous pouvez également disposer d'un petit environnement avec un seul nœud de pile API BaaS et aucun équilibreur de charge. Dans ces types d'environnements, vous pouvez effectuer des appels d'API directement vers le nœud de la pile API BaaS :
curl -v "http://portalExternalIP:8080/status"
Pour en savoir plus sur la prise en main du portail API BaaS, consultez la documentation Apigee à l'adresse suivante : http://apigee.com/docs/content/build-apps-home.